aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2017-08-10 06:02:26 -0400
committerIngo Molnar <mingo@kernel.org>2017-08-10 06:02:26 -0400
commit1ccb2f4e8e435a53bb378e8b092087f091754aa6 (patch)
treeba120509947138915e06ad39cca5f065bd99f42f
parentc3a3800fe46f00ceeeb181cc07cc4fdaed4574f1 (diff)
parent9b231d9f47c6114d317ce28cff92a74ad80547f5 (diff)
Merge branch 'perf/urgent' into perf/core, to pick up fixes
Signed-off-by: Ingo Molnar <mingo@kernel.org>
-rw-r--r--Documentation/admin-guide/pm/cpufreq.rst8
-rw-r--r--Documentation/device-mapper/dm-raid.txt1
-rw-r--r--Documentation/devicetree/bindings/ata/sata_rcar.txt14
-rw-r--r--Documentation/devicetree/bindings/crypto/inside-secure-safexcel.txt2
-rw-r--r--Documentation/devicetree/bindings/gpio/gpio-exar.txt5
-rw-r--r--Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt2
-rw-r--r--Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt1
-rw-r--r--Documentation/devicetree/bindings/mmc/img-dw-mshc.txt1
-rw-r--r--Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt2
-rw-r--r--Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt16
-rw-r--r--Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt1
-rw-r--r--Documentation/gpio/gpio-legacy.txt2
-rw-r--r--Documentation/media/kapi/dtv-core.rst443
-rw-r--r--Documentation/media/typical_media_device.svg3054
-rw-r--r--Documentation/media/uapi/dvb/dvbstb.svg668
-rw-r--r--Documentation/media/uapi/v4l/bayer.svg1013
-rw-r--r--Documentation/media/uapi/v4l/constraints.svg356
-rw-r--r--Documentation/media/uapi/v4l/crop.svg253
-rw-r--r--Documentation/media/uapi/v4l/fieldseq_bt.svg170
-rw-r--r--Documentation/media/uapi/v4l/fieldseq_tb.svg175
-rw-r--r--Documentation/media/uapi/v4l/nv12mt.svg764
-rw-r--r--Documentation/media/uapi/v4l/nv12mt_example.svg2474
-rw-r--r--Documentation/media/uapi/v4l/selection.svg6957
-rw-r--r--Documentation/media/uapi/v4l/subdev-image-processing-crop.svg10
-rw-r--r--Documentation/media/uapi/v4l/subdev-image-processing-full.svg10
-rw-r--r--Documentation/media/uapi/v4l/subdev-image-processing-scaling-multi-source.svg10
-rw-r--r--Documentation/media/uapi/v4l/vbi_525.svg614
-rw-r--r--Documentation/media/uapi/v4l/vbi_625.svg388
-rw-r--r--Documentation/media/uapi/v4l/vbi_hsync.svg238
-rw-r--r--Documentation/media/uapi/v4l/vidioc-g-fmt.rst6
-rw-r--r--Documentation/media/v4l-drivers/imx.rst7
-rw-r--r--Documentation/media/v4l-drivers/index.rst1
-rw-r--r--Documentation/power/runtime_pm.txt3
-rw-r--r--MAINTAINERS26
-rw-r--r--Makefile2
-rw-r--r--arch/arc/mm/dma.c2
-rw-r--r--arch/arm/Kconfig2
-rw-r--r--arch/arm/boot/dts/armada-388-gp.dts4
-rw-r--r--arch/arm/boot/dts/da850-evm.dts21
-rw-r--r--arch/arm/boot/dts/da850-lcdk.dts7
-rw-r--r--arch/arm/boot/dts/dm8168-evm.dts34
-rw-r--r--arch/arm/boot/dts/dm816x.dtsi2
-rw-r--r--arch/arm/boot/dts/dra71-evm.dts4
-rw-r--r--arch/arm/boot/dts/exynos4.dtsi3
-rw-r--r--arch/arm/boot/dts/rk3288.dtsi4
-rw-r--r--arch/arm/boot/dts/sun8i-a83t.dtsi16
-rw-r--r--arch/arm/boot/dts/sunxi-h3-h5.dtsi2
-rw-r--r--arch/arm/boot/dts/tango4-vantage-1172.dts2
-rw-r--r--arch/arm/include/asm/kexec.h5
-rw-r--r--arch/arm/include/asm/ucontext.h6
-rw-r--r--arch/arm/kernel/machine_kexec.c11
-rw-r--r--arch/arm/kernel/setup.c3
-rw-r--r--arch/arm/kernel/signal.c78
-rw-r--r--arch/arm/mach-davinci/board-da850-evm.c4
-rw-r--r--arch/arm/mach-davinci/clock.c9
-rw-r--r--arch/arm/mach-ep93xx/clock.c20
-rw-r--r--arch/arm/mach-ixp4xx/include/mach/io.h34
-rw-r--r--arch/arm/mach-mmp/devices.c2
-rw-r--r--arch/arm/mach-mvebu/platsmp.c2
-rw-r--r--arch/arm/mach-omap1/board-ams-delta.c12
-rw-r--r--arch/arm/mach-omap1/board-osk.c4
-rw-r--r--arch/arm/mach-omap2/board-generic.c2
-rw-r--r--arch/arm/mach-omap2/hsmmc.c239
-rw-r--r--arch/arm/mach-omap2/hsmmc.h9
-rw-r--r--arch/arm/mach-omap2/io.c2
-rw-r--r--arch/arm/mach-omap2/pm34xx.c1
-rw-r--r--arch/arm/mach-omap2/prm3xxx.c7
-rw-r--r--arch/arm/mach-omap2/prm44xx.c55
-rw-r--r--arch/arm/mach-prima2/common.c2
-rw-r--r--arch/arm/mach-pxa/Kconfig1
-rw-r--r--arch/arm/mach-pxa/include/mach/mtd-xip.h10
-rw-r--r--arch/arm/mach-rpc/include/mach/hardware.h4
-rw-r--r--arch/arm/mach-sa1100/clock.c25
-rw-r--r--arch/arm/mach-sa1100/include/mach/mtd-xip.h4
-rw-r--r--arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c6
-rw-r--r--arch/arm/mach-ux500/cpu-db8500.c1
-rw-r--r--arch/arm/mach-w90x900/clock.c29
-rw-r--r--arch/arm/mm/dma-mapping-nommu.c45
-rw-r--r--arch/arm/mm/dma-mapping.c2
-rw-r--r--arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gx.dtsi2
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts4
-rw-r--r--arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts103
-rw-r--r--arch/arm64/boot/dts/marvell/armada-37xx.dtsi2
-rw-r--r--arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi1
-rw-r--r--arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi3
-rw-r--r--arch/arm64/boot/dts/renesas/salvator-common.dtsi2
-rw-r--r--arch/arm64/boot/dts/renesas/ulcb.dtsi2
-rw-r--r--arch/arm64/configs/defconfig1
-rw-r--r--arch/arm64/include/asm/atomic_lse.h2
-rw-r--r--arch/arm64/include/asm/memory.h6
-rw-r--r--arch/arm64/include/asm/sysreg.h4
-rw-r--r--arch/arm64/include/asm/uaccess.h2
-rw-r--r--arch/arm64/kernel/cpu_ops.c4
-rw-r--r--arch/arm64/kernel/smp.c12
-rw-r--r--arch/arm64/kernel/topology.c22
-rw-r--r--arch/arm64/kernel/traps.c10
-rw-r--r--arch/arm64/kvm/sys_regs.c2
-rw-r--r--arch/arm64/lib/copy_page.S9
-rw-r--r--arch/arm64/mm/dma-mapping.c4
-rw-r--r--arch/arm64/mm/fault.c15
-rw-r--r--arch/arm64/mm/mmu.c18
-rw-r--r--arch/arm64/mm/numa.c7
-rw-r--r--arch/mips/include/asm/mach-ralink/ralink_regs.h2
-rw-r--r--arch/mips/mm/dma-default.c2
-rw-r--r--arch/mips/net/ebpf_jit.c1950
-rw-r--r--arch/mips/ralink/mt7620.c1
-rw-r--r--arch/parisc/Kconfig3
-rw-r--r--arch/parisc/configs/712_defconfig41
-rw-r--r--arch/parisc/configs/a500_defconfig50
-rw-r--r--arch/parisc/configs/b180_defconfig17
-rw-r--r--arch/parisc/configs/c3000_defconfig38
-rw-r--r--arch/parisc/configs/c8000_defconfig17
-rw-r--r--arch/parisc/configs/default_defconfig49
-rw-r--r--arch/parisc/configs/generic-32bit_defconfig21
-rw-r--r--arch/parisc/configs/generic-64bit_defconfig48
-rw-r--r--arch/parisc/include/asm/pdcpat.h16
-rw-r--r--arch/parisc/include/asm/thread_info.h2
-rw-r--r--arch/parisc/kernel/cache.c39
-rw-r--r--arch/parisc/kernel/firmware.c36
-rw-r--r--arch/parisc/kernel/irq.c10
-rw-r--r--arch/parisc/kernel/pdt.c23
-rw-r--r--arch/parisc/kernel/process.c2
-rw-r--r--arch/parisc/kernel/vmlinux.lds.S2
-rw-r--r--arch/powerpc/Makefile25
-rw-r--r--arch/powerpc/boot/Makefile14
-rw-r--r--arch/powerpc/include/asm/book3s/64/mmu.h15
-rw-r--r--arch/powerpc/include/asm/book3s/64/pgtable.h10
-rw-r--r--arch/powerpc/include/asm/mmu_context.h18
-rw-r--r--arch/powerpc/kernel/exceptions-64s.S10
-rw-r--r--arch/powerpc/kernel/idle_book3s.S8
-rw-r--r--arch/powerpc/kernel/irq.c15
-rw-r--r--arch/powerpc/kernel/ptrace.c13
-rw-r--r--arch/powerpc/kernel/smp.c12
-rw-r--r--arch/powerpc/kvm/book3s_64_mmu_hv.c4
-rw-r--r--arch/powerpc/kvm/book3s_hv.c2
-rw-r--r--arch/powerpc/kvm/book3s_hv_rmhandlers.S59
-rw-r--r--arch/powerpc/mm/mmu_context_book3s64.c5
-rw-r--r--arch/powerpc/mm/pgtable-radix.c34
-rw-r--r--arch/powerpc/mm/subpage-prot.c2
-rw-r--r--arch/powerpc/mm/tlb-radix.c45
-rw-r--r--arch/powerpc/platforms/83xx/mpc832x_rdb.c2
-rw-r--r--arch/powerpc/platforms/powernv/pci-ioda.c8
-rw-r--r--arch/powerpc/platforms/pseries/reconfig.c1
-rw-r--r--arch/s390/kernel/perf_cpum_sf.c2
-rw-r--r--arch/s390/kvm/kvm-s390.c8
-rw-r--r--arch/s390/mm/pgtable.c6
-rw-r--r--arch/s390/net/bpf_jit_comp.c3
-rw-r--r--arch/sparc/configs/sparc32_defconfig4
-rw-r--r--arch/sparc/configs/sparc64_defconfig4
-rw-r--r--arch/sparc/include/asm/mmu_context_64.h14
-rw-r--r--arch/sparc/kernel/tsb.S12
-rw-r--r--arch/sparc/lib/U3memcpy.S4
-rw-r--r--arch/sparc/mm/init_64.c25
-rw-r--r--arch/sparc/power/hibernate.c3
-rw-r--r--arch/x86/boot/compressed/Makefile1
-rw-r--r--arch/x86/boot/string.c9
-rw-r--r--arch/x86/entry/entry_64.S1
-rw-r--r--arch/x86/events/core.c16
-rw-r--r--arch/x86/include/asm/entry_arch.h2
-rw-r--r--arch/x86/include/asm/hardirq.h1
-rw-r--r--arch/x86/include/asm/hw_irq.h2
-rw-r--r--arch/x86/include/asm/irq_vectors.h3
-rw-r--r--arch/x86/kernel/cpu/aperfmperf.c40
-rw-r--r--arch/x86/kernel/hpet.c27
-rw-r--r--arch/x86/kernel/irq.c19
-rw-r--r--arch/x86/kernel/irqinit.c2
-rw-r--r--arch/x86/kernel/kvm.c6
-rw-r--r--arch/x86/kernel/reboot.c6
-rw-r--r--arch/x86/kvm/lapic.c17
-rw-r--r--arch/x86/kvm/svm.c10
-rw-r--r--arch/x86/kvm/vmx.c262
-rw-r--r--arch/x86/kvm/x86.c24
-rw-r--r--arch/xtensa/include/asm/Kbuild2
-rw-r--r--arch/xtensa/include/asm/device.h15
-rw-r--r--arch/xtensa/include/asm/param.h18
-rw-r--r--arch/xtensa/kernel/xtensa_ksyms.c2
-rw-r--r--arch/xtensa/mm/cache.c16
-rw-r--r--block/bfq-iosched.h22
-rw-r--r--block/bfq-wf2q.c146
-rw-r--r--block/blk-core.c4
-rw-r--r--block/blk-mq-cpumap.c4
-rw-r--r--block/blk-mq.c17
-rw-r--r--crypto/authencesn.c5
-rw-r--r--drivers/acpi/acpi_apd.c4
-rw-r--r--drivers/acpi/acpi_lpss.c14
-rw-r--r--drivers/acpi/acpi_watchdog.c7
-rw-r--r--drivers/acpi/ec.c39
-rw-r--r--drivers/acpi/internal.h4
-rw-r--r--drivers/acpi/numa.c2
-rw-r--r--drivers/acpi/sleep.c6
-rw-r--r--drivers/ata/Kconfig4
-rw-r--r--drivers/ata/libata-core.c6
-rw-r--r--drivers/ata/libata-eh.c7
-rw-r--r--drivers/ata/libata-scsi.c6
-rw-r--r--drivers/ata/sata_rcar.c8
-rw-r--r--drivers/base/dma-coherent.c164
-rw-r--r--drivers/base/dma-mapping.c2
-rw-r--r--drivers/block/nbd.c18
-rw-r--r--drivers/block/virtio_blk.c7
-rw-r--r--drivers/block/xen-blkfront.c25
-rw-r--r--drivers/bus/uniphier-system-bus.c14
-rw-r--r--drivers/char/random.c2
-rw-r--r--drivers/clk/clk-gemini.c14
-rw-r--r--drivers/clk/keystone/sci-clk.c66
-rw-r--r--drivers/clk/meson/clk-mpll.c7
-rw-r--r--drivers/clk/meson/clkc.h1
-rw-r--r--drivers/clk/meson/gxbb.c5
-rw-r--r--drivers/clk/meson/meson8b.c5
-rw-r--r--drivers/clk/samsung/clk-exynos5420.c16
-rw-r--r--drivers/clk/sunxi-ng/ccu-sun5i.c2
-rw-r--r--drivers/clk/x86/clk-pmc-atom.c7
-rw-r--r--drivers/cpufreq/intel_pstate.c8
-rw-r--r--drivers/crypto/Kconfig2
-rw-r--r--drivers/crypto/bcm/spu2.c1
-rw-r--r--drivers/crypto/cavium/nitrox/nitrox_main.c3
-rw-r--r--drivers/crypto/inside-secure/safexcel.c5
-rw-r--r--drivers/crypto/inside-secure/safexcel_hash.c8
-rw-r--r--drivers/dax/super.c6
-rw-r--r--drivers/gpio/Kconfig1
-rw-r--r--drivers/gpio/gpio-exar.c2
-rw-r--r--drivers/gpio/gpio-lp87565.c46
-rw-r--r--drivers/gpio/gpio-mxc.c3
-rw-r--r--drivers/gpio/gpio-tegra.c6
-rw-r--r--drivers/gpio/gpiolib.c9
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c10
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/clearstate_gfx9.h41
-rw-r--r--drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c24
-rw-r--r--drivers/gpu/drm/amd/amdgpu/si.c2
-rw-r--r--drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c12
-rw-r--r--drivers/gpu/drm/drm_dp_helper.c5
-rw-r--r--drivers/gpu/drm/exynos/Kconfig1
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_drv.c1
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_dsi.c10
-rw-r--r--drivers/gpu/drm/exynos/exynos_drm_mic.c24
-rw-r--r--drivers/gpu/drm/exynos/exynos_hdmi.c10
-rw-r--r--drivers/gpu/drm/exynos/exynos_mixer.c10
-rw-r--r--drivers/gpu/drm/i915/gvt/display.c22
-rw-r--r--drivers/gpu/drm/i915/i915_gem_clflush.c7
-rw-r--r--drivers/gpu/drm/i915/i915_gem_clflush.h2
-rw-r--r--drivers/gpu/drm/i915/i915_gem_execbuffer.c24
-rw-r--r--drivers/gpu/drm/i915/i915_vma.h2
-rw-r--r--drivers/gpu/drm/i915/intel_ddi.c4
-rw-r--r--drivers/gpu/drm/i915/intel_display.c86
-rw-r--r--drivers/gpu/drm/i915/intel_gvt.c2
-rw-r--r--drivers/gpu/drm/i915/intel_pm.c4
-rw-r--r--drivers/gpu/drm/i915/selftests/mock_gem_device.c2
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_connector.c2
-rw-r--r--drivers/gpu/drm/nouveau/nouveau_display.c5
-rw-r--r--drivers/gpu/drm/nouveau/nv50_display.c31
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h1
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h2
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c1
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.c2
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/i2c/Kbuild1
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.c4
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.h6
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxg94.c30
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgf119.c35
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgm200.c5
-rw-r--r--drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padgf119.c4
-rw-r--r--drivers/gpu/drm/rockchip/Kconfig19
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c24
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c10
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c4
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_context.c6
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c2
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_drv.c8
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c8
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_fence.c10
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c2
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_kms.c9
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_mob.c6
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_msg.c6
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_resource.c4
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_shader.c6
-rw-r--r--drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c4
-rw-r--r--drivers/gpu/host1x/dev.c8
-rw-r--r--drivers/hid/hid-core.c1
-rw-r--r--drivers/hid/hid-ids.h1
-rw-r--r--drivers/hid/hid-ortek.c6
-rw-r--r--drivers/hid/usbhid/hid-core.c16
-rw-r--r--drivers/i2c/busses/Kconfig2
-rw-r--r--drivers/i2c/busses/i2c-designware-platdrv.c6
-rw-r--r--drivers/i2c/i2c-core-acpi.c19
-rw-r--r--drivers/i2c/i2c-core-base.c1
-rw-r--r--drivers/i2c/i2c-core.h9
-rw-r--r--drivers/i2c/muxes/Kconfig2
-rw-r--r--drivers/infiniband/core/addr.c62
-rw-r--r--drivers/infiniband/core/uverbs_cmd.c2
-rw-r--r--drivers/infiniband/core/uverbs_main.c3
-rw-r--r--drivers/infiniband/core/verbs.c1
-rw-r--r--drivers/infiniband/hw/hns/hns_roce_hw_v1.c2
-rw-r--r--drivers/infiniband/hw/mlx5/odp.c2
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib.h1
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_cm.c1
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_ethtool.c3
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_ib.c25
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_main.c19
-rw-r--r--drivers/infiniband/ulp/ipoib/ipoib_multicast.c33
-rw-r--r--drivers/iommu/amd_iommu.c1
-rw-r--r--drivers/iommu/amd_iommu_init.c2
-rw-r--r--drivers/iommu/arm-smmu.c18
-rw-r--r--drivers/iommu/io-pgtable-arm-v7s.c6
-rw-r--r--drivers/iommu/io-pgtable-arm.c7
-rw-r--r--drivers/iommu/io-pgtable.h9
-rw-r--r--drivers/iommu/mtk_iommu.c6
-rw-r--r--drivers/iommu/mtk_iommu.h1
-rw-r--r--drivers/isdn/hysdn/hysdn_proclog.c28
-rw-r--r--drivers/isdn/i4l/isdn_common.c1
-rw-r--r--drivers/isdn/i4l/isdn_net.c5
-rw-r--r--drivers/lightnvm/pblk-rb.c4
-rw-r--r--drivers/lightnvm/pblk-read.c23
-rw-r--r--drivers/lightnvm/pblk.h2
-rw-r--r--drivers/mailbox/pcc.c2
-rw-r--r--drivers/md/dm-bufio.c3
-rw-r--r--drivers/md/dm-integrity.c22
-rw-r--r--drivers/md/dm-raid.c29
-rw-r--r--drivers/md/dm-table.c35
-rw-r--r--drivers/md/dm-verity-fec.c21
-rw-r--r--drivers/md/dm-zoned-metadata.c12
-rw-r--r--drivers/md/dm-zoned-reclaim.c2
-rw-r--r--drivers/md/dm-zoned-target.c8
-rw-r--r--drivers/md/md.c2
-rw-r--r--drivers/md/md.h54
-rw-r--r--drivers/md/raid1-10.c81
-rw-r--r--drivers/md/raid1.c68
-rw-r--r--drivers/md/raid10.c25
-rw-r--r--drivers/md/raid5.c11
-rw-r--r--drivers/media/cec/cec-adap.c2
-rw-r--r--drivers/media/cec/cec-notifier.c6
-rw-r--r--drivers/media/dvb-core/dvb_ca_en50221.c143
-rw-r--r--drivers/media/dvb-core/dvb_ca_en50221.h7
-rw-r--r--drivers/media/dvb-frontends/cxd2841er.c5
-rw-r--r--drivers/media/dvb-frontends/drx39xyj/drx_driver.h15
-rw-r--r--drivers/media/dvb-frontends/lnbh25.c6
-rw-r--r--drivers/media/dvb-frontends/stv0367.c210
-rw-r--r--drivers/media/i2c/et8ek8/et8ek8_driver.c1
-rw-r--r--drivers/media/i2c/tvp5150.c25
-rw-r--r--drivers/media/pci/ddbridge/ddbridge-core.c102
-rw-r--r--drivers/media/pci/ngene/ngene-core.c32
-rw-r--r--drivers/media/pci/ngene/ngene-i2c.c6
-rw-r--r--drivers/media/pci/ngene/ngene.h6
-rw-r--r--drivers/media/pci/tw5864/tw5864-video.c1
-rw-r--r--drivers/media/platform/Kconfig4
-rw-r--r--drivers/media/platform/coda/coda-bit.c8
-rw-r--r--drivers/media/platform/coda/coda-common.c4
-rw-r--r--drivers/media/platform/coda/coda.h2
-rw-r--r--drivers/media/platform/davinci/ccdc_hw_device.h10
-rw-r--r--drivers/media/platform/davinci/dm355_ccdc.c92
-rw-r--r--drivers/media/platform/davinci/dm644x_ccdc.c151
-rw-r--r--drivers/media/platform/davinci/vpfe_capture.c93
-rw-r--r--drivers/media/platform/davinci/vpif_capture.c2
-rw-r--r--drivers/media/platform/davinci/vpif_display.c2
-rw-r--r--drivers/media/platform/omap/omap_vout_vrfb.c133
-rw-r--r--drivers/media/platform/omap/omap_voutdef.h6
-rw-r--r--drivers/media/platform/qcom/venus/core.c18
-rw-r--r--drivers/media/platform/qcom/venus/core.h1
-rw-r--r--drivers/media/platform/qcom/venus/firmware.c76
-rw-r--r--drivers/media/platform/qcom/venus/firmware.h5
-rw-r--r--drivers/media/platform/qcom/venus/hfi_msgs.c11
-rw-r--r--drivers/media/platform/sti/bdisp/bdisp-debug.c14
-rw-r--r--drivers/media/platform/vimc/vimc-capture.c15
-rw-r--r--drivers/media/platform/vimc/vimc-debayer.c15
-rw-r--r--drivers/media/platform/vimc/vimc-scaler.c15
-rw-r--r--drivers/media/platform/vimc/vimc-sensor.c15
-rw-r--r--drivers/media/radio/radio-wl1273.c15
-rw-r--r--drivers/media/rc/ir-lirc-codec.c2
-rw-r--r--drivers/media/tuners/fc0011.c1
-rw-r--r--drivers/media/tuners/mxl5005s.c2
-rw-r--r--drivers/media/usb/au0828/au0828-input.c2
-rw-r--r--drivers/media/usb/dvb-usb-v2/lmedm04.c10
-rw-r--r--drivers/media/usb/dvb-usb/dib0700_core.c38
-rw-r--r--drivers/media/usb/em28xx/em28xx-cards.c18
-rw-r--r--drivers/media/usb/em28xx/em28xx-dvb.c1
-rw-r--r--drivers/media/usb/em28xx/em28xx-i2c.c2
-rw-r--r--drivers/media/usb/em28xx/em28xx-input.c2
-rw-r--r--drivers/media/usb/em28xx/em28xx.h1
-rw-r--r--drivers/media/usb/pulse8-cec/pulse8-cec.c2
-rw-r--r--drivers/media/usb/rainshadow-cec/rainshadow-cec.c18
-rw-r--r--drivers/media/usb/stkwebcam/stk-sensor.c32
-rw-r--r--drivers/media/usb/stkwebcam/stk-webcam.c70
-rw-r--r--drivers/media/usb/stkwebcam/stk-webcam.h6
-rw-r--r--drivers/media/v4l2-core/tuner-core.c2
-rw-r--r--drivers/mmc/core/block.c1
-rw-r--r--drivers/mmc/host/dw_mmc.c2
-rw-r--r--drivers/mmc/host/omap_hsmmc.c11
-rw-r--r--drivers/mmc/host/sdhci-of-at91.c35
-rw-r--r--drivers/mmc/host/sunxi-mmc.c8
-rw-r--r--drivers/mtd/nand/atmel/nand-controller.c2
-rw-r--r--drivers/mtd/nand/atmel/pmecc.c21
-rw-r--r--drivers/mtd/nand/nand_base.c13
-rw-r--r--drivers/mtd/nand/nand_timings.c6
-rw-r--r--drivers/mtd/nand/sunxi_nand.c4
-rw-r--r--drivers/net/bonding/bond_main.c2
-rw-r--r--drivers/net/dsa/mt7530.c38
-rw-r--r--drivers/net/dsa/mt7530.h1
-rw-r--r--drivers/net/ethernet/apm/xgene/xgene_enet_main.c6
-rw-r--r--drivers/net/ethernet/aurora/nb8800.c9
-rw-r--r--drivers/net/ethernet/broadcom/b44.c1
-rw-r--r--drivers/net/ethernet/broadcom/genet/bcmgenet.c2
-rw-r--r--drivers/net/ethernet/broadcom/genet/bcmgenet.h2
-rw-r--r--drivers/net/ethernet/broadcom/genet/bcmmii.c7
-rw-r--r--drivers/net/ethernet/cavium/thunder/thunder_bgx.c27
-rw-r--r--drivers/net/ethernet/cavium/thunder/thunder_bgx.h2
-rw-r--r--drivers/net/ethernet/faraday/ftgmac100.c7
-rw-r--r--drivers/net/ethernet/ibm/ibmvnic.c15
-rw-r--r--drivers/net/ethernet/intel/i40e/i40e_txrx.c2
-rw-r--r--drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c4
-rw-r--r--drivers/net/ethernet/marvell/mv643xx_eth.c2
-rw-r--r--drivers/net/ethernet/mediatek/mtk_eth_soc.c5
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_ethtool.c15
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/en_rx.c29
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/fw.c9
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/fw.h1
-rw-r--r--drivers/net/ethernet/mellanox/mlx4/main.c2
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/cmd.c25
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/en.h10
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/en_clock.c222
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c4
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/en_main.c1
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/eq.c2
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/eswitch.c3
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c16
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/lag.c25
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h5
-rw-r--r--drivers/net/ethernet/mellanox/mlx5/core/sriov.c5
-rw-r--r--drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c7
-rw-r--r--drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c37
-rw-r--r--drivers/net/ethernet/netronome/nfp/nfp_net_common.c2
-rw-r--r--drivers/net/ethernet/qlogic/qed/qed_mcp.c2
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/dwmac1000_dma.c2
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/dwmac100_dma.c2
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h3
-rw-r--r--drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c5
-rw-r--r--drivers/net/ethernet/sun/sunhme.h6
-rw-r--r--drivers/net/ethernet/ti/cpts.c111
-rw-r--r--drivers/net/ethernet/ti/cpts.h2
-rw-r--r--drivers/net/ethernet/toshiba/tc35815.c2
-rw-r--r--drivers/net/gtp.c2
-rw-r--r--drivers/net/hyperv/hyperv_net.h3
-rw-r--r--drivers/net/hyperv/netvsc.c3
-rw-r--r--drivers/net/hyperv/netvsc_drv.c43
-rw-r--r--drivers/net/hyperv/rndis_filter.c14
-rw-r--r--drivers/net/ipvlan/ipvlan_main.c2
-rw-r--r--drivers/net/irda/mcs7780.c16
-rw-r--r--drivers/net/phy/Kconfig13
-rw-r--r--drivers/net/phy/phy.c3
-rw-r--r--drivers/net/ppp/ppp_generic.c18
-rw-r--r--drivers/net/ppp/pptp.c2
-rw-r--r--drivers/net/team/team.c8
-rw-r--r--drivers/net/tun.c10
-rw-r--r--drivers/net/usb/asix.h1
-rw-r--r--drivers/net/usb/asix_common.c53
-rw-r--r--drivers/net/usb/asix_devices.c1
-rw-r--r--drivers/net/usb/lan78xx.c18
-rw-r--r--drivers/net/usb/qmi_wwan.c7
-rw-r--r--drivers/net/virtio_net.c7
-rw-r--r--drivers/net/vxlan.c1
-rw-r--r--drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c2
-rw-r--r--drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c8
-rw-r--r--drivers/net/wireless/intel/iwlwifi/dvm/tx.c2
-rw-r--r--drivers/net/wireless/intel/iwlwifi/iwl-devtrace.h4
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c8
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/mvm.h2
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/ops.c6
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/sta.c15
-rw-r--r--drivers/net/wireless/intel/iwlwifi/pcie/trans.c3
-rw-r--r--drivers/net/wireless/intel/iwlwifi/pcie/tx.c3
-rw-r--r--drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c3
-rw-r--r--drivers/net/wireless/realtek/rtlwifi/wifi.h1
-rw-r--r--drivers/nvme/host/core.c6
-rw-r--r--drivers/nvme/host/fc.c121
-rw-r--r--drivers/nvme/host/pci.c6
-rw-r--r--drivers/nvme/target/fc.c101
-rw-r--r--drivers/of/irq.c2
-rw-r--r--drivers/of/property.c17
-rw-r--r--drivers/parisc/pdc_stable.c8
-rw-r--r--drivers/perf/arm_pmu.c41
-rw-r--r--drivers/perf/arm_pmu_platform.c9
-rw-r--r--drivers/perf/qcom_l2_pmu.c2
-rw-r--r--drivers/phy/broadcom/Kconfig2
-rw-r--r--drivers/pinctrl/intel/pinctrl-cherryview.c7
-rw-r--r--drivers/pinctrl/intel/pinctrl-merrifield.c6
-rw-r--r--drivers/pinctrl/mvebu/pinctrl-armada-37xx.c25
-rw-r--r--drivers/pinctrl/stm32/Kconfig9
-rw-r--r--drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c1
-rw-r--r--drivers/pinctrl/uniphier/pinctrl-uniphier-pro4.c2
-rw-r--r--drivers/pinctrl/zte/pinctrl-zx.c11
-rw-r--r--drivers/platform/x86/Kconfig1
-rw-r--r--drivers/platform/x86/dell-wmi.c12
-rw-r--r--drivers/platform/x86/intel-vbtn.c4
-rw-r--r--drivers/platform/x86/wmi.c6
-rw-r--r--drivers/ptp/ptp_clock.c42
-rw-r--r--drivers/ptp/ptp_private.h3
-rw-r--r--drivers/s390/cio/chp.c1
-rw-r--r--drivers/s390/net/qeth_l3_main.c4
-rw-r--r--drivers/sbus/char/display7seg.c4
-rw-r--r--drivers/sbus/char/flash.c4
-rw-r--r--drivers/sbus/char/uctrl.c4
-rw-r--r--drivers/scsi/Kconfig2
-rw-r--r--drivers/scsi/aacraid/aachba.c7
-rw-r--r--drivers/scsi/aic7xxx/Makefile12
-rw-r--r--drivers/scsi/aic7xxx/aicasm/Makefile53
-rw-r--r--drivers/scsi/bnx2fc/bnx2fc_fcoe.c68
-rw-r--r--drivers/scsi/bnx2fc/bnx2fc_hwi.c45
-rw-r--r--drivers/scsi/bnx2i/bnx2i_init.c64
-rw-r--r--drivers/scsi/cxgbi/libcxgbi.c7
-rw-r--r--drivers/scsi/hpsa.c2
-rw-r--r--drivers/scsi/megaraid/megaraid_sas_fusion.c6
-rw-r--r--drivers/scsi/qedf/qedf.h3
-rw-r--r--drivers/scsi/qedf/qedf_main.c20
-rw-r--r--drivers/scsi/qedi/Kconfig1
-rw-r--r--drivers/scsi/qedi/qedi_iscsi.c8
-rw-r--r--drivers/scsi/scsi_transport_fc.c6
-rw-r--r--drivers/scsi/sg.c28
-rw-r--r--drivers/scsi/smartpqi/smartpqi.h2
-rw-r--r--drivers/soc/zte/Kconfig1
-rw-r--r--drivers/staging/media/atomisp/i2c/ap1302.h4
-rw-r--r--drivers/staging/media/atomisp/i2c/gc0310.h2
-rw-r--r--drivers/staging/media/atomisp/i2c/gc2235.h2
-rw-r--r--drivers/staging/media/atomisp/i2c/imx/imx.h2
-rw-r--r--drivers/staging/media/atomisp/i2c/ov2680.h3
-rw-r--r--drivers/staging/media/atomisp/i2c/ov2722.h2
-rw-r--r--drivers/staging/media/atomisp/i2c/ov5693/ov5693.h2
-rw-r--r--drivers/staging/media/atomisp/i2c/ov8858.h2
-rw-r--r--drivers/staging/media/atomisp/i2c/ov8858_btns.h2
-rw-r--r--drivers/staging/media/atomisp/pci/atomisp2/Makefile10
-rw-r--r--drivers/staging/media/atomisp/pci/atomisp2/atomisp_internal.h2
-rw-r--r--drivers/staging/media/cxd2099/cxd2099.c165
-rw-r--r--drivers/staging/media/cxd2099/cxd2099.h6
-rw-r--r--drivers/thunderbolt/icm.c9
-rw-r--r--drivers/thunderbolt/switch.c8
-rw-r--r--drivers/thunderbolt/tb.h4
-rw-r--r--drivers/thunderbolt/tb_msgs.h12
-rw-r--r--drivers/tty/serial/8250/8250_exar.c4
-rw-r--r--drivers/vfio/pci/vfio_pci.c9
-rw-r--r--drivers/vfio/pci/vfio_pci_config.c13
-rw-r--r--drivers/vhost/vhost.c28
-rw-r--r--drivers/vhost/vhost.h3
-rw-r--r--drivers/virtio/virtio_balloon.c28
-rw-r--r--drivers/xen/events/events_base.c13
-rw-r--r--drivers/xen/xen-selfballoon.c4
-rw-r--r--drivers/xen/xenfs/super.c1
-rw-r--r--fs/btrfs/extent-tree.c11
-rw-r--r--fs/btrfs/tree-log.c3
-rw-r--r--fs/btrfs/volumes.c4
-rw-r--r--fs/ext4/acl.c25
-rw-r--r--fs/ext4/ext4.h13
-rw-r--r--fs/ext4/ext4_jbd2.h3
-rw-r--r--fs/ext4/extents.c11
-rw-r--r--fs/ext4/file.c3
-rw-r--r--fs/ext4/inode.c198
-rw-r--r--fs/ext4/ioctl.c27
-rw-r--r--fs/ext4/mballoc.c15
-rw-r--r--fs/ext4/namei.c64
-rw-r--r--fs/ext4/resize.c3
-rw-r--r--fs/ext4/super.c2
-rw-r--r--fs/ext4/xattr.c87
-rw-r--r--fs/jfs/acl.c24
-rw-r--r--fs/jfs/resize.c4
-rw-r--r--fs/jfs/super.c4
-rw-r--r--fs/nfs/file.c4
-rw-r--r--fs/nfs/nfs4client.c3
-rw-r--r--fs/nfs/nfs4proc.c41
-rw-r--r--fs/nfs/nfs4xdr.c2
-rw-r--r--fs/ocfs2/acl.c24
-rw-r--r--fs/userfaultfd.c5
-rw-r--r--fs/xfs/libxfs/xfs_bmap.c21
-rw-r--r--fs/xfs/libxfs/xfs_btree.c6
-rw-r--r--fs/xfs/libxfs/xfs_dir2_data.c4
-rw-r--r--fs/xfs/libxfs/xfs_refcount.c4
-rw-r--r--fs/xfs/xfs_inode.c12
-rw-r--r--fs/xfs/xfs_log_cil.c1
-rw-r--r--fs/xfs/xfs_qm.c3
-rw-r--r--fs/xfs/xfs_reflink.c4
-rw-r--r--include/acpi/acpi_numa.h1
-rw-r--r--include/kvm/arm_pmu.h2
-rw-r--r--include/linux/ceph/osd_client.h1
-rw-r--r--include/linux/ceph/osdmap.h2
-rw-r--r--include/linux/ceph/rados.h4
-rw-r--r--include/linux/cpuhotplug.h2
-rw-r--r--include/linux/cpuset.h19
-rw-r--r--include/linux/crush/crush.h2
-rw-r--r--include/linux/dax.h1
-rw-r--r--include/linux/device.h2
-rw-r--r--include/linux/dma-mapping.h40
-rw-r--r--include/linux/i2c.h3
-rw-r--r--include/linux/ipv6.h6
-rw-r--r--include/linux/irq.h7
-rw-r--r--include/linux/kthread.h2
-rw-r--r--include/linux/kvm_host.h7
-rw-r--r--include/linux/libata.h2
-rw-r--r--include/linux/mlx4/device.h1
-rw-r--r--include/linux/mlx5/mlx5_ifc.h10
-rw-r--r--include/linux/mlx5/qp.h1
-rw-r--r--include/linux/mm_types.h4
-rw-r--r--include/linux/mtd/nand.h6
-rw-r--r--include/linux/nfs_xdr.h2
-rw-r--r--include/linux/nvme-fc.h19
-rw-r--r--include/linux/nvme.h2
-rw-r--r--include/linux/pagemap.h2
-rw-r--r--include/linux/perf/arm_pmu.h4
-rw-r--r--include/linux/perf_event.h4
-rw-r--r--include/linux/phy.h2
-rw-r--r--include/linux/pinctrl/pinconf-generic.h4
-rw-r--r--include/linux/platform_data/hsmmc-omap.h10
-rw-r--r--include/linux/ptp_clock_kernel.h20
-rw-r--r--include/linux/uuid.h14
-rw-r--r--include/linux/vfio.h4
-rw-r--r--include/linux/wait.h8
-rw-r--r--include/linux/workqueue.h4
-rw-r--r--include/media/cec-notifier.h15
-rw-r--r--include/media/davinci/dm644x_ccdc.h12
-rw-r--r--include/media/davinci/vpfe_capture.h10
-rw-r--r--include/net/sctp/sctp.h4
-rw-r--r--include/net/tcp.h10
-rw-r--r--include/net/udp.h34
-rw-r--r--include/sound/soc.h6
-rw-r--r--include/trace/events/ext4.h35
-rw-r--r--ipc/msg.c3
-rw-r--r--ipc/sem.c3
-rw-r--r--ipc/shm.c4
-rw-r--r--kernel/bpf/syscall.c4
-rw-r--r--kernel/bpf/verifier.c21
-rw-r--r--kernel/cgroup/cgroup-internal.h3
-rw-r--r--kernel/cgroup/cgroup.c66
-rw-r--r--kernel/cgroup/cpuset.c1
-rw-r--r--kernel/events/core.c47
-rw-r--r--kernel/futex.c5
-rw-r--r--kernel/irq/cpuhotplug.c9
-rw-r--r--kernel/pid.c3
-rw-r--r--kernel/sched/core.c2
-rw-r--r--kernel/signal.c11
-rw-r--r--kernel/time/timer.c2
-rw-r--r--kernel/workqueue.c30
-rw-r--r--lib/test_rhashtable.c57
-rw-r--r--lib/test_uuid.c2
-rw-r--r--mm/hugetlb.c9
-rw-r--r--mm/internal.h5
-rw-r--r--mm/kasan/report.c1
-rw-r--r--mm/madvise.c1
-rw-r--r--mm/memory.c1
-rw-r--r--mm/mprotect.c1
-rw-r--r--mm/mremap.c8
-rw-r--r--mm/page_alloc.c2
-rw-r--r--mm/page_io.c7
-rw-r--r--mm/rmap.c36
-rw-r--r--mm/zsmalloc.c1
-rw-r--r--net/batman-adv/translation-table.c60
-rw-r--r--net/batman-adv/types.h2
-rw-r--r--net/ceph/crush/mapper.c2
-rw-r--r--net/ceph/messenger.c6
-rw-r--r--net/ceph/osd_client.c14
-rw-r--r--net/ceph/osdmap.c60
-rw-r--r--net/core/dev.c2
-rw-r--r--net/core/dev_ioctl.c2
-rw-r--r--net/core/netpoll.c2
-rw-r--r--net/dccp/feat.c7
-rw-r--r--net/dccp/ipv4.c1
-rw-r--r--net/dccp/ipv6.c1
-rw-r--r--net/dsa/dsa2.c13
-rw-r--r--net/ipv4/cipso_ipv4.c12
-rw-r--r--net/ipv4/fib_semantics.c2
-rw-r--r--net/ipv4/fou.c1
-rw-r--r--net/ipv4/tcp_input.c34
-rw-r--r--net/ipv4/tcp_output.c32
-rw-r--r--net/ipv4/tcp_timer.c3
-rw-r--r--net/ipv4/udp.c41
-rw-r--r--net/ipv4/udp_offload.c2
-rw-r--r--net/ipv6/exthdrs.c1
-rw-r--r--net/ipv6/ip6_output.c4
-rw-r--r--net/ipv6/route.c11
-rw-r--r--net/ipv6/udp.c38
-rw-r--r--net/ipv6/udp_offload.c2
-rw-r--r--net/openvswitch/conntrack.c7
-rw-r--r--net/packet/af_packet.c2
-rw-r--r--net/rds/ib_recv.c5
-rw-r--r--net/sched/act_ipt.c20
-rw-r--r--net/socket.c5
-rw-r--r--samples/bpf/tcbpf2_kern.c4
-rwxr-xr-xsamples/bpf/test_tunnel_bpf.sh1
-rwxr-xr-xscripts/dtc/dtx_diff2
-rwxr-xr-xscripts/get_maintainer.pl91
-rw-r--r--scripts/parse-maintainers.pl97
-rw-r--r--sound/pci/fm801.c4
-rw-r--r--sound/pci/hda/patch_conexant.c1
-rw-r--r--sound/pci/hda/patch_hdmi.c27
-rw-r--r--sound/pci/hda/patch_realtek.c145
-rw-r--r--sound/soc/codecs/msm8916-wcd-analog.c2
-rw-r--r--sound/soc/codecs/rt5663.c18
-rw-r--r--sound/soc/codecs/rt5665.c4
-rw-r--r--sound/soc/codecs/rt5665.h4
-rw-r--r--sound/soc/codecs/sgtl5000.c4
-rw-r--r--sound/soc/fsl/imx-ssi.c4
-rw-r--r--sound/soc/generic/audio-graph-card.c10
-rw-r--r--sound/soc/generic/audio-graph-scu-card.c15
-rw-r--r--sound/soc/generic/simple-card-utils.c8
-rw-r--r--sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c17
-rw-r--r--sound/soc/intel/skylake/skl-messages.c8
-rw-r--r--sound/soc/intel/skylake/skl.c2
-rw-r--r--sound/soc/pxa/Kconfig1
-rw-r--r--sound/soc/samsung/odroid.c6
-rw-r--r--sound/soc/sh/hac.c2
-rw-r--r--sound/soc/soc-core.c27
-rw-r--r--sound/soc/soc-pcm.c36
-rw-r--r--sound/soc/ux500/mop500.c4
-rw-r--r--tools/build/feature/test-bpf.c2
-rwxr-xr-xtools/kvm/kvm_stat/kvm_stat22
-rw-r--r--tools/lib/bpf/bpf.c3
-rw-r--r--tools/testing/selftests/bpf/test_pkt_md_access.c11
-rw-r--r--tools/testing/selftests/bpf/test_progs.c8
-rw-r--r--tools/testing/selftests/bpf/test_verifier.c47
-rw-r--r--virt/kvm/arm/mmu.c4
-rw-r--r--virt/kvm/arm/pmu.c43
-rw-r--r--virt/kvm/arm/vgic/vgic-init.c3
-rw-r--r--virt/kvm/arm/vgic/vgic-its.c1
-rw-r--r--virt/kvm/arm/vgic/vgic-mmio-v3.c4
-rw-r--r--virt/kvm/kvm_main.c46
720 files changed, 12548 insertions, 17572 deletions
diff --git a/Documentation/admin-guide/pm/cpufreq.rst b/Documentation/admin-guide/pm/cpufreq.rst
index 463cf7e73db8..7af83a92d2d6 100644
--- a/Documentation/admin-guide/pm/cpufreq.rst
+++ b/Documentation/admin-guide/pm/cpufreq.rst
@@ -237,6 +237,14 @@ are the following:
237 This attribute is not present if the scaling driver in use does not 237 This attribute is not present if the scaling driver in use does not
238 support it. 238 support it.
239 239
240``cpuinfo_cur_freq``
241 Current frequency of the CPUs belonging to this policy as obtained from
242 the hardware (in KHz).
243
244 This is expected to be the frequency the hardware actually runs at.
245 If that frequency cannot be determined, this attribute should not
246 be present.
247
240``cpuinfo_max_freq`` 248``cpuinfo_max_freq``
241 Maximum possible operating frequency the CPUs belonging to this policy 249 Maximum possible operating frequency the CPUs belonging to this policy
242 can run at (in kHz). 250 can run at (in kHz).
diff --git a/Documentation/device-mapper/dm-raid.txt b/Documentation/device-mapper/dm-raid.txt
index 7e06e65586d4..4a0a7469fdd7 100644
--- a/Documentation/device-mapper/dm-raid.txt
+++ b/Documentation/device-mapper/dm-raid.txt
@@ -343,3 +343,4 @@ Version History
3431.11.0 Fix table line argument order 3431.11.0 Fix table line argument order
344 (wrong raid10_copies/raid10_format sequence) 344 (wrong raid10_copies/raid10_format sequence)
3451.11.1 Add raid4/5/6 journal write-back support via journal_mode option 3451.11.1 Add raid4/5/6 journal write-back support via journal_mode option
3461.12.1 fix for MD deadlock between mddev_suspend() and md_write_start() available
diff --git a/Documentation/devicetree/bindings/ata/sata_rcar.txt b/Documentation/devicetree/bindings/ata/sata_rcar.txt
index 0764f9ab63dc..e20eac7a3087 100644
--- a/Documentation/devicetree/bindings/ata/sata_rcar.txt
+++ b/Documentation/devicetree/bindings/ata/sata_rcar.txt
@@ -1,14 +1,22 @@
1* Renesas R-Car SATA 1* Renesas R-Car SATA
2 2
3Required properties: 3Required properties:
4- compatible : should contain one of the following: 4- compatible : should contain one or more of the following:
5 - "renesas,sata-r8a7779" for R-Car H1 5 - "renesas,sata-r8a7779" for R-Car H1
6 ("renesas,rcar-sata" is deprecated)
7 - "renesas,sata-r8a7790-es1" for R-Car H2 ES1 6 - "renesas,sata-r8a7790-es1" for R-Car H2 ES1
8 - "renesas,sata-r8a7790" for R-Car H2 other than ES1 7 - "renesas,sata-r8a7790" for R-Car H2 other than ES1
9 - "renesas,sata-r8a7791" for R-Car M2-W 8 - "renesas,sata-r8a7791" for R-Car M2-W
10 - "renesas,sata-r8a7793" for R-Car M2-N 9 - "renesas,sata-r8a7793" for R-Car M2-N
11 - "renesas,sata-r8a7795" for R-Car H3 10 - "renesas,sata-r8a7795" for R-Car H3
11 - "renesas,rcar-gen2-sata" for a generic R-Car Gen2 compatible device
12 - "renesas,rcar-gen3-sata" for a generic R-Car Gen3 compatible device
13 - "renesas,rcar-sata" is deprecated
14
15 When compatible with the generic version nodes
16 must list the SoC-specific version corresponding
17 to the platform first followed by the generic
18 version.
19
12- reg : address and length of the SATA registers; 20- reg : address and length of the SATA registers;
13- interrupts : must consist of one interrupt specifier. 21- interrupts : must consist of one interrupt specifier.
14- clocks : must contain a reference to the functional clock. 22- clocks : must contain a reference to the functional clock.
@@ -16,7 +24,7 @@ Required properties:
16Example: 24Example:
17 25
18sata0: sata@ee300000 { 26sata0: sata@ee300000 {
19 compatible = "renesas,sata-r8a7791"; 27 compatible = "renesas,sata-r8a7791", "renesas,rcar-gen2-sata";
20 reg = <0 0xee300000 0 0x2000>; 28 reg = <0 0xee300000 0 0x2000>;
21 interrupt-parent = <&gic>; 29 interrupt-parent = <&gic>;
22 interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>; 30 interrupts = <0 105 IRQ_TYPE_LEVEL_HIGH>;
diff --git a/Documentation/devicetree/bindings/crypto/inside-secure-safexcel.txt b/Documentation/devicetree/bindings/crypto/inside-secure-safexcel.txt
index f69773f4252b..941bb6a6fb13 100644
--- a/Documentation/devicetree/bindings/crypto/inside-secure-safexcel.txt
+++ b/Documentation/devicetree/bindings/crypto/inside-secure-safexcel.txt
@@ -8,7 +8,6 @@ Required properties:
8 8
9Optional properties: 9Optional properties:
10- clocks: Reference to the crypto engine clock. 10- clocks: Reference to the crypto engine clock.
11- dma-mask: The address mask limitation. Defaults to 64.
12 11
13Example: 12Example:
14 13
@@ -24,6 +23,5 @@ Example:
24 interrupt-names = "mem", "ring0", "ring1", "ring2", "ring3", 23 interrupt-names = "mem", "ring0", "ring1", "ring2", "ring3",
25 "eip"; 24 "eip";
26 clocks = <&cpm_syscon0 1 26>; 25 clocks = <&cpm_syscon0 1 26>;
27 dma-mask = <0xff 0xffffffff>;
28 status = "disabled"; 26 status = "disabled";
29 }; 27 };
diff --git a/Documentation/devicetree/bindings/gpio/gpio-exar.txt b/Documentation/devicetree/bindings/gpio/gpio-exar.txt
new file mode 100644
index 000000000000..4540d61824af
--- /dev/null
+++ b/Documentation/devicetree/bindings/gpio/gpio-exar.txt
@@ -0,0 +1,5 @@
1Exportable MPIO interface of Exar UART chips
2
3Required properties of the device:
4 - exar,first-pin: first exportable pins (0..15)
5 - ngpios: number of exportable pins (1..16)
diff --git a/Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt b/Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt
index d3b6e1a4713a..5aa5926029ee 100644
--- a/Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt
+++ b/Documentation/devicetree/bindings/gpu/arm,mali-midgard.txt
@@ -40,7 +40,7 @@ Optional properties:
40Example for a Mali-T760: 40Example for a Mali-T760:
41 41
42gpu@ffa30000 { 42gpu@ffa30000 {
43 compatible = "rockchip,rk3288-mali", "arm,mali-t760", "arm,mali-midgard"; 43 compatible = "rockchip,rk3288-mali", "arm,mali-t760";
44 reg = <0xffa30000 0x10000>; 44 reg = <0xffa30000 0x10000>;
45 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, 45 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
46 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, 46 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
diff --git a/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt
index aad98442788b..a58c173b7ab9 100644
--- a/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt
+++ b/Documentation/devicetree/bindings/mmc/exynos-dw-mshc.txt
@@ -78,7 +78,6 @@ Example:
78 }; 78 };
79 79
80 dwmmc0@12200000 { 80 dwmmc0@12200000 {
81 num-slots = <1>;
82 cap-mmc-highspeed; 81 cap-mmc-highspeed;
83 cap-sd-highspeed; 82 cap-sd-highspeed;
84 broken-cd; 83 broken-cd;
diff --git a/Documentation/devicetree/bindings/mmc/img-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/img-dw-mshc.txt
index 85de99fcaa2f..c54e577eea07 100644
--- a/Documentation/devicetree/bindings/mmc/img-dw-mshc.txt
+++ b/Documentation/devicetree/bindings/mmc/img-dw-mshc.txt
@@ -24,6 +24,5 @@ Example:
24 24
25 fifo-depth = <0x20>; 25 fifo-depth = <0x20>;
26 bus-width = <4>; 26 bus-width = <4>;
27 num-slots = <1>;
28 disable-wp; 27 disable-wp;
29 }; 28 };
diff --git a/Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt
index 8af1afcb86dc..07242d141773 100644
--- a/Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt
+++ b/Documentation/devicetree/bindings/mmc/k3-dw-mshc.txt
@@ -36,7 +36,6 @@ Example:
36 36
37 /* Board portion */ 37 /* Board portion */
38 dwmmc0@fcd03000 { 38 dwmmc0@fcd03000 {
39 num-slots = <1>;
40 vmmc-supply = <&ldo12>; 39 vmmc-supply = <&ldo12>;
41 fifo-depth = <0x100>; 40 fifo-depth = <0x100>;
42 pinctrl-names = "default"; 41 pinctrl-names = "default";
@@ -52,7 +51,6 @@ Example:
52 51
53 dwmmc_1: dwmmc1@f723e000 { 52 dwmmc_1: dwmmc1@f723e000 {
54 compatible = "hisilicon,hi6220-dw-mshc"; 53 compatible = "hisilicon,hi6220-dw-mshc";
55 num-slots = <0x1>;
56 bus-width = <0x4>; 54 bus-width = <0x4>;
57 disable-wp; 55 disable-wp;
58 cap-sd-highspeed; 56 cap-sd-highspeed;
diff --git a/Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt
index 9cb55ca57461..ef3e5f14067a 100644
--- a/Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt
+++ b/Documentation/devicetree/bindings/mmc/synopsys-dw-mshc.txt
@@ -12,12 +12,12 @@ Required Properties:
12* #address-cells: should be 1. 12* #address-cells: should be 1.
13* #size-cells: should be 0. 13* #size-cells: should be 0.
14 14
15# Slots: The slot specific information are contained within child-nodes with 15# Slots (DEPRECATED): The slot specific information are contained within
16 each child-node representing a supported slot. There should be atleast one 16 child-nodes with each child-node representing a supported slot. There should
17 child node representing a card slot. The name of the child node representing 17 be atleast one child node representing a card slot. The name of the child node
18 the slot is recommended to be slot@n where n is the unique number of the slot 18 representing the slot is recommended to be slot@n where n is the unique number
19 connected to the controller. The following are optional properties which 19 of the slot connected to the controller. The following are optional properties
20 can be included in the slot child node. 20 which can be included in the slot child node.
21 21
22 * reg: specifies the physical slot number. The valid values of this 22 * reg: specifies the physical slot number. The valid values of this
23 property is 0 to (num-slots -1), where num-slots is the value 23 property is 0 to (num-slots -1), where num-slots is the value
@@ -63,7 +63,7 @@ Optional properties:
63 clock(cclk_out). If it's not specified, max is 200MHZ and min is 400KHz by default. 63 clock(cclk_out). If it's not specified, max is 200MHZ and min is 400KHz by default.
64 (Use the "max-frequency" instead of "clock-freq-min-max".) 64 (Use the "max-frequency" instead of "clock-freq-min-max".)
65 65
66* num-slots: specifies the number of slots supported by the controller. 66* num-slots (DEPRECATED): specifies the number of slots supported by the controller.
67 The number of physical slots actually used could be equal or less than the 67 The number of physical slots actually used could be equal or less than the
68 value specified by num-slots. If this property is not specified, the value 68 value specified by num-slots. If this property is not specified, the value
69 of num-slot property is assumed to be 1. 69 of num-slot property is assumed to be 1.
@@ -124,7 +124,6 @@ board specific portions as listed below.
124 dwmmc0@12200000 { 124 dwmmc0@12200000 {
125 clock-frequency = <400000000>; 125 clock-frequency = <400000000>;
126 clock-freq-min-max = <400000 200000000>; 126 clock-freq-min-max = <400000 200000000>;
127 num-slots = <1>;
128 broken-cd; 127 broken-cd;
129 fifo-depth = <0x80>; 128 fifo-depth = <0x80>;
130 card-detect-delay = <200>; 129 card-detect-delay = <200>;
@@ -139,7 +138,6 @@ board specific portions as listed below.
139 dwmmc0@12200000 { 138 dwmmc0@12200000 {
140 clock-frequency = <400000000>; 139 clock-frequency = <400000000>;
141 clock-freq-min-max = <400000 200000000>; 140 clock-freq-min-max = <400000 200000000>;
142 num-slots = <1>;
143 broken-cd; 141 broken-cd;
144 fifo-depth = <0x80>; 142 fifo-depth = <0x80>;
145 card-detect-delay = <200>; 143 card-detect-delay = <200>;
diff --git a/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt b/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt
index eaade0e5adeb..906819a90c2b 100644
--- a/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt
+++ b/Documentation/devicetree/bindings/mmc/zx-dw-mshc.txt
@@ -25,7 +25,6 @@ Example:
25 clock-frequency = <50000000>; 25 clock-frequency = <50000000>;
26 clocks = <&topcrm SD0_AHB>, <&topcrm SD0_WCLK>; 26 clocks = <&topcrm SD0_AHB>, <&topcrm SD0_WCLK>;
27 clock-names = "biu", "ciu"; 27 clock-names = "biu", "ciu";
28 num-slots = <1>;
29 max-frequency = <50000000>; 28 max-frequency = <50000000>;
30 cap-sdio-irq; 29 cap-sdio-irq;
31 cap-sd-highspeed; 30 cap-sd-highspeed;
diff --git a/Documentation/gpio/gpio-legacy.txt b/Documentation/gpio/gpio-legacy.txt
index b34fd94f7089..5eacc147ea87 100644
--- a/Documentation/gpio/gpio-legacy.txt
+++ b/Documentation/gpio/gpio-legacy.txt
@@ -459,7 +459,7 @@ pin controller?
459 459
460This is done by registering "ranges" of pins, which are essentially 460This is done by registering "ranges" of pins, which are essentially
461cross-reference tables. These are described in 461cross-reference tables. These are described in
462Documentation/pinctrl.txt 462Documentation/driver-api/pinctl.rst
463 463
464While the pin allocation is totally managed by the pinctrl subsystem, 464While the pin allocation is totally managed by the pinctrl subsystem,
465gpio (under gpiolib) is still maintained by gpio drivers. It may happen 465gpio (under gpiolib) is still maintained by gpio drivers. It may happen
diff --git a/Documentation/media/kapi/dtv-core.rst b/Documentation/media/kapi/dtv-core.rst
index ff86bf0abeae..de9a228aca8a 100644
--- a/Documentation/media/kapi/dtv-core.rst
+++ b/Documentation/media/kapi/dtv-core.rst
@@ -1,6 +1,31 @@
1Digital TV (DVB) devices 1Digital TV (DVB) devices
2------------------------ 2------------------------
3 3
4Digital TV devices are implemented by several different drivers:
5
6- A bridge driver that is responsible to talk with the bus where the other
7 devices are connected (PCI, USB, SPI), bind to the other drivers and
8 implement the digital demux logic (either in software or in hardware);
9
10- Frontend drivers that are usually implemented as two separate drivers:
11
12 - A tuner driver that implements the logic with commands the part of the
13 hardware with is reponsible to tune into a digital TV transponder or
14 physical channel. The output of a tuner is usually a baseband or
15 Intermediate Frequency (IF) signal;
16
17 - A demodulator driver (a.k.a "demod") that implements the logic with
18 commands the digital TV decoding hardware. The output of a demod is
19 a digital stream, with multiple audio, video and data channels typically
20 multiplexed using MPEG Transport Stream [#f1]_.
21
22On most hardware, the frontend drivers talk with the bridge driver using an
23I2C bus.
24
25.. [#f1] Some standards use TCP/IP for multiplexing data, like DVB-H (an
26 abandoned standard, not used anymore) and ATSC version 3.0 current
27 proposals. Currently, the DVB subsystem doesn't implement those standards.
28
4Digital TV Common functions 29Digital TV Common functions
5--------------------------- 30---------------------------
6 31
@@ -55,8 +80,141 @@ Digital TV Frontend
55The Digital TV Frontend kABI defines a driver-internal interface for 80The Digital TV Frontend kABI defines a driver-internal interface for
56registering low-level, hardware specific driver to a hardware independent 81registering low-level, hardware specific driver to a hardware independent
57frontend layer. It is only of interest for Digital TV device driver writers. 82frontend layer. It is only of interest for Digital TV device driver writers.
58The header file for this API is named dvb_frontend.h and located in 83The header file for this API is named ``dvb_frontend.h`` and located in
59drivers/media/dvb-core. 84``drivers/media/dvb-core``.
85
86Demodulator driver
87^^^^^^^^^^^^^^^^^^
88
89The demodulator driver is responsible to talk with the decoding part of the
90hardware. Such driver should implement :c:type:`dvb_frontend_ops`, with
91tells what type of digital TV standards are supported, and points to a
92series of functions that allow the DVB core to command the hardware via
93the code under ``drivers/media/dvb-core/dvb_frontend.c``.
94
95A typical example of such struct in a driver ``foo`` is::
96
97 static struct dvb_frontend_ops foo_ops = {
98 .delsys = { SYS_DVBT, SYS_DVBT2, SYS_DVBC_ANNEX_A },
99 .info = {
100 .name = "foo DVB-T/T2/C driver",
101 .caps = FE_CAN_FEC_1_2 |
102 FE_CAN_FEC_2_3 |
103 FE_CAN_FEC_3_4 |
104 FE_CAN_FEC_5_6 |
105 FE_CAN_FEC_7_8 |
106 FE_CAN_FEC_AUTO |
107 FE_CAN_QPSK |
108 FE_CAN_QAM_16 |
109 FE_CAN_QAM_32 |
110 FE_CAN_QAM_64 |
111 FE_CAN_QAM_128 |
112 FE_CAN_QAM_256 |
113 FE_CAN_QAM_AUTO |
114 FE_CAN_TRANSMISSION_MODE_AUTO |
115 FE_CAN_GUARD_INTERVAL_AUTO |
116 FE_CAN_HIERARCHY_AUTO |
117 FE_CAN_MUTE_TS |
118 FE_CAN_2G_MODULATION,
119 .frequency_min = 42000000, /* Hz */
120 .frequency_max = 1002000000, /* Hz */
121 .symbol_rate_min = 870000,
122 .symbol_rate_max = 11700000
123 },
124 .init = foo_init,
125 .sleep = foo_sleep,
126 .release = foo_release,
127 .set_frontend = foo_set_frontend,
128 .get_frontend = foo_get_frontend,
129 .read_status = foo_get_status_and_stats,
130 .tune = foo_tune,
131 .i2c_gate_ctrl = foo_i2c_gate_ctrl,
132 .get_frontend_algo = foo_get_algo,
133 };
134
135A typical example of such struct in a driver ``bar`` meant to be used on
136Satellite TV reception is::
137
138 static const struct dvb_frontend_ops bar_ops = {
139 .delsys = { SYS_DVBS, SYS_DVBS2 },
140 .info = {
141 .name = "Bar DVB-S/S2 demodulator",
142 .frequency_min = 500000, /* KHz */
143 .frequency_max = 2500000, /* KHz */
144 .frequency_stepsize = 0,
145 .symbol_rate_min = 1000000,
146 .symbol_rate_max = 45000000,
147 .symbol_rate_tolerance = 500,
148 .caps = FE_CAN_INVERSION_AUTO |
149 FE_CAN_FEC_AUTO |
150 FE_CAN_QPSK,
151 },
152 .init = bar_init,
153 .sleep = bar_sleep,
154 .release = bar_release,
155 .set_frontend = bar_set_frontend,
156 .get_frontend = bar_get_frontend,
157 .read_status = bar_get_status_and_stats,
158 .i2c_gate_ctrl = bar_i2c_gate_ctrl,
159 .get_frontend_algo = bar_get_algo,
160 .tune = bar_tune,
161
162 /* Satellite-specific */
163 .diseqc_send_master_cmd = bar_send_diseqc_msg,
164 .diseqc_send_burst = bar_send_burst,
165 .set_tone = bar_set_tone,
166 .set_voltage = bar_set_voltage,
167 };
168
169.. note::
170
171 #) For satellite digital TV standards (DVB-S, DVB-S2, ISDB-S), the
172 frequencies are specified in kHz, while, for terrestrial and cable
173 standards, they're specified in Hz. Due to that, if the same frontend
174 supports both types, you'll need to have two separate
175 :c:type:`dvb_frontend_ops` structures, one for each standard.
176 #) The ``.i2c_gate_ctrl`` field is present only when the hardware has
177 allows controlling an I2C gate (either directly of via some GPIO pin),
178 in order to remove the tuner from the I2C bus after a channel is
179 tuned.
180 #) All new drivers should implement the
181 :ref:`DVBv5 statistics <dvbv5_stats>` via ``.read_status``.
182 Yet, there are a number of callbacks meant to get statistics for
183 signal strength, S/N and UCB. Those are there to provide backward
184 compatibility with legacy applications that don't support the DVBv5
185 API. Implementing those callbacks are optional. Those callbacks may be
186 removed in the future, after we have all existing drivers supporting
187 DVBv5 stats.
188 #) Other callbacks are required for satellite TV standards, in order to
189 control LNBf and DiSEqC: ``.diseqc_send_master_cmd``,
190 ``.diseqc_send_burst``, ``.set_tone``, ``.set_voltage``.
191
192.. |delta| unicode:: U+00394
193
194The ``drivers/media/dvb-core/dvb_frontend.c`` has a kernel thread with is
195responsible for tuning the device. It supports multiple algoritms to
196detect a channel, as defined at enum :c:func:`dvbfe_algo`.
197
198The algorithm to be used is obtained via ``.get_frontend_algo``. If the driver
199doesn't fill its field at struct :c:type:`dvb_frontend_ops`, it will default to
200``DVBFE_ALGO_SW``, meaning that the dvb-core will do a zigzag when tuning,
201e. g. it will try first to use the specified center frequency ``f``,
202then, it will do ``f`` + |delta|, ``f`` - |delta|, ``f`` + 2 x |delta|,
203``f`` - 2 x |delta| and so on.
204
205If the hardware has internally a some sort of zigzag algorithm, you should
206define a ``.get_frontend_algo`` function that would return ``DVBFE_ALGO_HW``.
207
208.. note::
209
210 The core frontend support also supports
211 a third type (``DVBFE_ALGO_CUSTOM``), in order to allow the driver to
212 define its own hardware-assisted algorithm. Very few hardware need to
213 use it nowadays. Using ``DVBFE_ALGO_CUSTOM`` require to provide other
214 function callbacks at struct :c:type:`dvb_frontend_ops`.
215
216Attaching frontend driver to the bridge driver
217^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
60 218
61Before using the Digital TV frontend core, the bridge driver should attach 219Before using the Digital TV frontend core, the bridge driver should attach
62the frontend demod, tuner and SEC devices and call 220the frontend demod, tuner and SEC devices and call
@@ -74,6 +232,287 @@ part of their handler for :c:type:`device_driver`.\ ``resume()``.
74 232
75A few other optional functions are provided to handle some special cases. 233A few other optional functions are provided to handle some special cases.
76 234
235.. _dvbv5_stats:
236
237Digital TV Frontend statistics
238~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
239
240Introduction
241^^^^^^^^^^^^
242
243Digital TV frontends provide a range of
244:ref:`statistics <frontend-stat-properties>` meant to help tuning the device
245and measuring the quality of service.
246
247For each statistics measurement, the driver should set the type of scale used,
248or ``FE_SCALE_NOT_AVAILABLE`` if the statistics is not available on a given
249time. Drivers should also provide the number of statistics for each type.
250that's usually 1 for most video standards [#f2]_.
251
252Drivers should initialize each statistic counters with length and
253scale at its init code. For example, if the frontend provides signal
254strength, it should have, on its init code::
255
256 struct dtv_frontend_properties *c = &state->fe.dtv_property_cache;
257
258 c->strength.len = 1;
259 c->strength.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
260
261And, when the statistics got updated, set the scale::
262
263 c->strength.stat[0].scale = FE_SCALE_DECIBEL;
264 c->strength.stat[0].uvalue = strength;
265
266.. [#f2] For ISDB-T, it may provide both a global statistics and a per-layer
267 set of statistics. On such cases, len should be equal to 4. The first
268 value corresponds to the global stat; the other ones to each layer, e. g.:
269
270 - c->cnr.stat[0] for global S/N carrier ratio,
271 - c->cnr.stat[1] for Layer A S/N carrier ratio,
272 - c->cnr.stat[2] for layer B S/N carrier ratio,
273 - c->cnr.stat[3] for layer C S/N carrier ratio.
274
275.. note:: Please prefer to use ``FE_SCALE_DECIBEL`` instead of
276 ``FE_SCALE_RELATIVE`` for signal strength and CNR measurements.
277
278Groups of statistics
279^^^^^^^^^^^^^^^^^^^^
280
281There are several groups of statistics currently supported:
282
283Signal strength (:ref:`DTV-STAT-SIGNAL-STRENGTH`)
284 - Measures the signal strength level at the analog part of the tuner or
285 demod.
286
287 - Typically obtained from the gain applied to the tuner and/or frontend
288 in order to detect the carrier. When no carrier is detected, the gain is
289 at the maximum value (so, strength is on its minimal).
290
291 - As the gain is visible through the set of registers that adjust the gain,
292 typically, this statistics is always available [#f3]_.
293
294 - Drivers should try to make it available all the times, as this statistics
295 can be used when adjusting an antenna position and to check for troubles
296 at the cabling.
297
298 .. [#f3] On a few devices, the gain keeps floating if no carrier.
299 On such devices, strength report should check first if carrier is
300 detected at the tuner (``FE_HAS_CARRIER``, see :c:type:`fe_status`),
301 and otherwise return the lowest possible value.
302
303Carrier Signal to Noise ratio (:ref:`DTV-STAT-CNR`)
304 - Signal to Noise ratio for the main carrier.
305
306 - Signal to Noise measurement depends on the device. On some hardware, is
307 available when the main carrier is detected. On those hardware, CNR
308 measurement usually comes from the tuner (e. g. after ``FE_HAS_CARRIER``,
309 see :c:type:`fe_status`).
310
311 On other devices, it requires inner FEC decoding,
312 as the frontend measures it indirectly from other parameters (e. g. after
313 ``FE_HAS_VITERBI``, see :c:type:`fe_status`).
314
315 Having it available after inner FEC is more common.
316
317Bit counts post-FEC (:ref:`DTV-STAT-POST-ERROR-BIT-COUNT` and :ref:`DTV-STAT-POST-TOTAL-BIT-COUNT`)
318 - Those counters measure the number of bits and bit errors errors after
319 the forward error correction (FEC) on the inner coding block
320 (after Viterbi, LDPC or other inner code).
321
322 - Due to its nature, those statistics depend on full coding lock
323 (e. g. after ``FE_HAS_SYNC`` or after ``FE_HAS_LOCK``,
324 see :c:type:`fe_status`).
325
326Bit counts pre-FEC (:ref:`DTV-STAT-PRE-ERROR-BIT-COUNT` and :ref:`DTV-STAT-PRE-TOTAL-BIT-COUNT`)
327 - Those counters measure the number of bits and bit errors errors before
328 the forward error correction (FEC) on the inner coding block
329 (before Viterbi, LDPC or other inner code).
330
331 - Not all frontends provide this kind of statistics.
332
333 - Due to its nature, those statistics depend on inner coding lock (e. g.
334 after ``FE_HAS_VITERBI``, see :c:type:`fe_status`).
335
336Block counts (:ref:`DTV-STAT-ERROR-BLOCK-COUNT` and :ref:`DTV-STAT-TOTAL-BLOCK-COUNT`)
337 - Those counters measure the number of blocks and block errors errors after
338 the forward error correction (FEC) on the inner coding block
339 (before Viterbi, LDPC or other inner code).
340
341 - Due to its nature, those statistics depend on full coding lock
342 (e. g. after ``FE_HAS_SYNC`` or after
343 ``FE_HAS_LOCK``, see :c:type:`fe_status`).
344
345.. note:: All counters should be monotonically increased as they're
346 collected from the hardware.
347
348A typical example of the logic that handle status and statistics is::
349
350 static int foo_get_status_and_stats(struct dvb_frontend *fe)
351 {
352 struct foo_state *state = fe->demodulator_priv;
353 struct dtv_frontend_properties *c = &fe->dtv_property_cache;
354
355 int rc;
356 enum fe_status *status;
357
358 /* Both status and strength are always available */
359 rc = foo_read_status(fe, &status);
360 if (rc < 0)
361 return rc;
362
363 rc = foo_read_strength(fe);
364 if (rc < 0)
365 return rc;
366
367 /* Check if CNR is available */
368 if (!(fe->status & FE_HAS_CARRIER))
369 return 0;
370
371 rc = foo_read_cnr(fe);
372 if (rc < 0)
373 return rc;
374
375 /* Check if pre-BER stats are available */
376 if (!(fe->status & FE_HAS_VITERBI))
377 return 0;
378
379 rc = foo_get_pre_ber(fe);
380 if (rc < 0)
381 return rc;
382
383 /* Check if post-BER stats are available */
384 if (!(fe->status & FE_HAS_SYNC))
385 return 0;
386
387 rc = foo_get_post_ber(fe);
388 if (rc < 0)
389 return rc;
390 }
391
392 static const struct dvb_frontend_ops ops = {
393 /* ... */
394 .read_status = foo_get_status_and_stats,
395 };
396
397Statistics collect
398^^^^^^^^^^^^^^^^^^
399
400On almost all frontend hardware, the bit and byte counts are stored by
401the hardware after a certain amount of time or after the total bit/block
402counter reaches a certain value (usually programable), for example, on
403every 1000 ms or after receiving 1,000,000 bits.
404
405So, if you read the registers too soon, you'll end by reading the same
406value as in the previous reading, causing the monotonic value to be
407incremented too often.
408
409Drivers should take the responsibility to avoid too often reads. That
410can be done using two approaches:
411
412if the driver have a bit that indicates when a collected data is ready
413%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
414
415Driver should check such bit before making the statistics available.
416
417An example of such behavior can be found at this code snippet (adapted
418from mb86a20s driver's logic)::
419
420 static int foo_get_pre_ber(struct dvb_frontend *fe)
421 {
422 struct foo_state *state = fe->demodulator_priv;
423 struct dtv_frontend_properties *c = &fe->dtv_property_cache;
424 int rc, bit_error;
425
426 /* Check if the BER measures are already available */
427 rc = foo_read_u8(state, 0x54);
428 if (rc < 0)
429 return rc;
430
431 if (!rc)
432 return 0;
433
434 /* Read Bit Error Count */
435 bit_error = foo_read_u32(state, 0x55);
436 if (bit_error < 0)
437 return bit_error;
438
439 /* Read Total Bit Count */
440 rc = foo_read_u32(state, 0x51);
441 if (rc < 0)
442 return rc;
443
444 c->pre_bit_error.stat[0].scale = FE_SCALE_COUNTER;
445 c->pre_bit_error.stat[0].uvalue += bit_error;
446 c->pre_bit_count.stat[0].scale = FE_SCALE_COUNTER;
447 c->pre_bit_count.stat[0].uvalue += rc;
448
449 return 0;
450 }
451
452If the driver doesn't provide a statistics available check bit
453%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
454
455A few devices, however, may not provide a way to check if the stats are
456available (or the way to check it is unknown). They may not even provide
457a way to directly read the total number of bits or blocks.
458
459On those devices, the driver need to ensure that it won't be reading from
460the register too often and/or estimate the total number of bits/blocks.
461
462On such drivers, a typical routine to get statistics would be like
463(adapted from dib8000 driver's logic)::
464
465 struct foo_state {
466 /* ... */
467
468 unsigned long per_jiffies_stats;
469 }
470
471 static int foo_get_pre_ber(struct dvb_frontend *fe)
472 {
473 struct foo_state *state = fe->demodulator_priv;
474 struct dtv_frontend_properties *c = &fe->dtv_property_cache;
475 int rc, bit_error;
476 u64 bits;
477
478 /* Check if time for stats was elapsed */
479 if (!time_after(jiffies, state->per_jiffies_stats))
480 return 0;
481
482 /* Next stat should be collected in 1000 ms */
483 state->per_jiffies_stats = jiffies + msecs_to_jiffies(1000);
484
485 /* Read Bit Error Count */
486 bit_error = foo_read_u32(state, 0x55);
487 if (bit_error < 0)
488 return bit_error;
489
490 /*
491 * On this particular frontend, there's no register that
492 * would provide the number of bits per 1000ms sample. So,
493 * some function would calculate it based on DTV properties
494 */
495 bits = get_number_of_bits_per_1000ms(fe);
496
497 c->pre_bit_error.stat[0].scale = FE_SCALE_COUNTER;
498 c->pre_bit_error.stat[0].uvalue += bit_error;
499 c->pre_bit_count.stat[0].scale = FE_SCALE_COUNTER;
500 c->pre_bit_count.stat[0].uvalue += bits;
501
502 return 0;
503 }
504
505Please notice that, on both cases, we're getting the statistics using the
506:c:type:`dvb_frontend_ops` ``.read_status`` callback. The rationale is that
507the frontend core will automatically call this function periodically
508(usually, 3 times per second, when the frontend is locked).
509
510That warrants that we won't miss to collect a counter and increment the
511monotonic stats at the right time.
512
513Digital TV Frontend functions and types
514~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
515
77.. kernel-doc:: drivers/media/dvb-core/dvb_frontend.h 516.. kernel-doc:: drivers/media/dvb-core/dvb_frontend.h
78 517
79 518
diff --git a/Documentation/media/typical_media_device.svg b/Documentation/media/typical_media_device.svg
index 0c8abd69f39a..d6fad90ec199 100644
--- a/Documentation/media/typical_media_device.svg
+++ b/Documentation/media/typical_media_device.svg
@@ -1,2948 +1,106 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<svg 2<svg id="svg2" width="235mm" height="179mm" clip-path="url(#a)" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" preserveAspectRatio="xMidYMid" version="1.2" viewBox="0 0 22648.239 17899.829" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><metadata id="metadata1533"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata><defs id="defs4"><clipPath id="a"><rect id="rect7" width="28000" height="21000"/></clipPath></defs><path id="path11" d="m10146 2636c-518.06 0-1035.1 515-1035.1 1031v4124c0 516 517.06 1032 1035.1 1032h8572.2c518.06 0 1036.1-516 1036.1-1032v-4124c0-516-518.06-1031-1036.1-1031h-8572.2z"
3 xmlns:dc="http://purl.org/dc/elements/1.1/" 3fill="#fcf" style=""/><path id="path15" d="m1505.5 13443c-293 0-585 292-585 585v2340c0 293 292 586 585 586h3275c293 0 586-293 586-586v-2340c0-293-293-585-586-585h-3275z" fill="#ffc" style=""/><path id="path19" d="m517.15 22.013c-461 0-922 461-922 922v11169c0 461 461 923 922 923h3692c461 0 922-462 922-923v-11169c0-461-461-922-922-922h-3692z" fill="#e6e6e6" style=""/><path id="path23" d="m2371.5 6438h-2260v-1086h4520v1086h-2260z" fill="#ff8080" style=""/><path id="path25" d="m2371.5 6438h-2260v-1086h4520v1086h-2260z" fill="none" stroke="#3465af" style=""/><text id="text27" class="TextShape" x="-2089.4541" y="-2163.9871" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan29" class="TextParagraph" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan31" class="TextPosition" x="489.5459" y="6111.0132" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan33"
4 xmlns:cc="http://creativecommons.org/ns#" 4fill="#000000" font-family="Serif, serif" font-size="493.88px">Audio decoder</tspan></tspan></tspan></text>
5 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 5<path id="path37" d="m2371.5 9608h-2260v-1270h4520v1270h-2260z" fill="#ff8080" style=""/><path id="path39" d="m2371.5 9608h-2260v-1270h4520v1270h-2260z" fill="none" stroke="#3465af" style=""/><text id="text41" class="TextShape" x="-2089.4541" y="-2163.9871" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan43" class="TextParagraph" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan45" class="TextPosition" x="527.5459" y="9189.0127" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan47" fill="#000000" font-family="Serif, serif" font-size="493.88px">Video decoder</tspan></tspan></tspan></text>
6 xmlns:svg="http://www.w3.org/2000/svg" 6<path id="path51" d="m2363.5 8053h-2269v-1224h4537v1224h-2268z" fill="#ff8080" style=""/><path id="path53" d="m2363.5 8053h-2269v-1224h4537v1224h-2268z" fill="none" stroke="#3465af" style=""/><text id="text55" class="TextShape" x="-2089.4541" y="-2163.9871" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan57" class="TextParagraph" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan59" class="TextPosition" x="481.5459" y="7657.0132" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan61" fill="#000000" font-family="Serif, serif" font-size="493.88px">Audio encoder</tspan></tspan></tspan></text>
7 xmlns="http://www.w3.org/2000/svg" 7<path id="path65" d="m13622 10386h-3810v-1281h7620v1281h-3810z" fill="#cfc" style=""/><path id="path67" d="m13622 10386h-3810v-1281h7620v1281h-3810z" fill="none" stroke="#3465af" style=""/><text id="text69" class="TextShape" x="-2089.4541" y="-2446.187" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan71" class="TextParagraph" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan73" class="TextPosition" x="10287.546" y="9960.8135" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan75" fill="#000000" font-family="Serif, serif" font-size="493.88px">Button Key/IR input logic</tspan></tspan></tspan></text>
8 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 8<path id="path79" d="m12080 12182h-2268v-1412h4536v1412h-2268z" fill="#cfe7f5" style=""/><path id="path81" d="m12080 12182h-2268v-1412h4536v1412h-2268z" fill="none" stroke="#3465af" style=""/><text id="text83" class="TextShape" x="-2089.4541" y="-2389.7871" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan85" class="TextParagraph" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan87" class="TextPosition" x="10792.546" y="11692.213" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan89" fill="#000000" font-family="Serif, serif" font-size="493.88px">EEPROM</tspan></tspan></tspan></text>
9 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 9<path id="path93" d="m3050.5 15498h-1563v-1715h3126v1715h-1563z" fill="#fc9" style=""/><path id="path95" d="m3050.5 15498h-1563v-1715h3126v1715h-1563z" fill="none" stroke="#3465af" style=""/><text id="text97" class="TextShape" x="-2089.4541" y="-2163.9871" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan99" class="TextParagraph" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan101" class="TextPosition" x="2186.5459" y="14856.013" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan103" fill="#000000" font-family="Serif, serif" font-size="493.88px">Sensor</tspan></tspan></tspan></text>
10 clip-path="url(#a)" 10<path id="path107" d="m4629.5 5866 385-353v176h1167v-176l386 353-386 354v-177h-1167v177l-385-354z" fill="#729fcf" style=""/><path id="path109" d="m4629.5 5866 385-353v176h1167v-176l386 353-386 354v-177h-1167v177l-385-354z" fill="none" stroke="#3465af" style=""/><path id="path113" d="m4629.5 7448 385-353v176h1167v-176l386 353-386 354v-177h-1167v177l-385-354z" fill="#729fcf" style=""/><path id="path115" d="m4629.5 7448 385-353v176h1167v-176l386 353-386 354v-177h-1167v177l-385-354z" fill="none" stroke="#3465af" style=""/><path id="path119" d="m4631.5 8936 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z" fill="#729fcf" style=""/><path id="path121" d="m4631.5 8936 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z" fill="none" stroke="#3465af" style=""/><path id="path125" d="m7872.5 11464 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z"
11 xml:space="preserve" 11fill="#729fcf" style=""/><path id="path127" d="m7872.5 11464 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z" fill="none" stroke="#3465af" style=""/><path id="path131" d="m7872.5 9716.8 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z" fill="#729fcf" style=""/><path id="path133" d="m7872.5 9716.8 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z" fill="none" stroke="#3465af" style=""/><path id="path137" d="m7872.5 14994 670-353v176h2028v-176l671 353-671 354v-177h-2028v177l-670-354z" fill="#729fcf" style=""/><path id="path139" d="m7872.5 14994 670-353v176h2028v-176l671 353-671 354v-177h-2028v177l-670-354z" fill="none" stroke="#3465af" style=""/><path id="path143" d="m17534 14105 978.49 840.89-978.49 840.89v-420.86h-2960.5v420.86l-979.49-840.89 979.49-840.89v420.03h2960.5v-420.03z" fill="#729fcf" style=""/><path id="path145" d="m17534 14105 978.49
12 height="179mm" 12840.89-978.49 840.89v-420.86h-2960.5v420.86l-979.49-840.89 979.49-840.89v420.03h2960.5v-420.03z" fill="none" stroke="#3465af" stroke-width="25.77" style=""/><text id="text149" class="TextShape" x="-9922.1533" y="-644.58704" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan151" class="TextParagraph" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan153" class="TextPosition" transform="matrix(0,-1,1,0,8509,40173)" x="14418.847" y="15187.413" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan155" fill="#000000" font-family="Serif, serif" font-size="493.88px">System Bus</tspan></tspan></tspan></text>
13 viewBox="0 0 22648.239 17899.829" 13<path id="path159" d="m11062 7098h-1250v-875h2499v875h-1249z" fill="#cff" style=""/><path id="path161" d="m11062 7098h-1250v-875h2499v875h-1249z" fill="none" stroke="#3465af" style=""/><text id="text163" class="TextShape" x="-2089.4541" y="-2163.9871" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan165" class="TextParagraph" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan167" class="TextPosition" x="10125.546" y="6876.0132" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan169" fill="#000000" font-family="Serif, serif" font-size="493.88px">Demux</tspan></tspan></tspan></text>
14 width="235mm" 14<path id="path173" d="m7906.5 6601 373-357v178h1130v-178l374 357-374 358v-179h-1130v179l-373-358z" fill="#729fcf" style=""/><path id="path175" d="m7906.5 6601 373-357v178h1130v-178l374 357-374 358v-179h-1130v179l-373-358z" fill="none" stroke="#3465af" style=""/><path id="path179" d="m7906.5 5214 373-358v179h1130v-179l374 358-374 358v-179h-1130v179l-373-358z" fill="#729fcf" style=""/><path id="path181" d="m7906.5 5214 373-358v179h1130v-179l374 358-374 358v-179h-1130v179l-373-358z" fill="none" stroke="#3465af" style=""/><path id="path185" d="m14233 5828h-4421v-1270h8841v1270h-4420z" fill="#cff" style=""/><path id="path187" d="m14233 5828h-4421v-1270h8841v1270h-4420z" fill="none" stroke="#3465af" style=""/><text id="text189" class="TextShape" x="-2089.4541" y="-2163.9871" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan191" class="TextParagraph" font-family="Serif, serif"
15 version="1.2" 15font-size="493.88px"><tspan id="tspan193" class="TextPosition" x="10696.546" y="5409.0132" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan195" fill="#000000" font-family="Serif, serif" font-size="493.88px">Conditional Access Module</tspan></tspan></tspan></text>
16 preserveAspectRatio="xMidYMid" 16<path id="path199" d="m2355.5 11123h-2269v-1224h4537v1224h-2268z" fill="#ff8080" style=""/><path id="path201" d="m2355.5 11123h-2269v-1224h4537v1224h-2268z" fill="none" stroke="#3465af" style=""/><text id="text203" class="TextShape" x="-2089.4541" y="-2163.9871" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan205" class="TextParagraph" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan207" class="TextPosition" x="511.5459" y="10727.013" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan209" fill="#000000" font-family="Serif, serif" font-size="493.88px">Video encoder</tspan></tspan></tspan></text>
17 id="svg2" 17<path id="path213" d="m4631.5 10470 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z" fill="#729fcf" style=""/><path id="path215" d="m4631.5 10470 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z" fill="none" stroke="#3465af" style=""/><path id="path219" d="m18702 5381 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z" fill="#729fcf" style=""/><path id="path221" d="m18702 5381 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z" fill="none" stroke="#3465af" style=""/><text id="text225" class="TextShape" x="-1976.5541" y="-2163.9871" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan227" class="TextParagraph" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan229" class="TextPosition" x="13.4459" y="12314.013" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan231" fill="#000000"
18 inkscape:version="0.91 r13725" 18font-family="Serif, serif" font-size="493.88px">Radio / Analog TV</tspan></tspan></tspan></text>
19 sodipodi:docname="typical_media_device.svg" 19<text id="text235" class="TextShape" x="-2089.4541" y="-2163.9871" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan237" class="TextParagraph" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan239" class="TextPosition" x="12866.546" y="8560.0127" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan241" fill="#000000" font-family="Serif, serif" font-size="493.88px">Digital TV</tspan></tspan></tspan></text>
20 style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"><metadata 20<text id="text245" class="TextShape" x="-8919.0537" y="-1373.787" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan247" class="TextParagraph" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan249" class="TextPosition" x="5804.9458" y="17793.213" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan251" fill="#000000" font-family="Serif, serif" font-size="493.88px">PS.: picture is not complete: other blocks may be present</tspan></tspan></tspan></text>
21 id="metadata1533"><rdf:RDF><cc:Work 21<text id="text255" class="TextShape" x="-2089.4541" y="-2163.9871" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan257" class="TextParagraph" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan259" class="TextPosition" x="2109.5459" y="16397.014" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan261" fill="#000000" font-family="Serif, serif" font-size="493.88px">Webcam</tspan></tspan></tspan></text>
22 rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type 22<path id="path265" d="m12463 13926h-2650v-1412h5299v1412h-2649z" fill="#f90" style=""/><path id="path267" d="m12463 13926h-2650v-1412h5299v1412h-2649z" fill="none" stroke="#3465af" style=""/><text id="text269" class="TextShape" x="-2089.4541" y="-2446.187" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan271" class="TextParagraph" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan273" class="TextPosition" x="10175.546" y="13435.813" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan275" fill="#000000" font-family="Serif, serif" font-size="493.88px">Processing blocks</tspan></tspan></tspan></text>
23 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><sodipodi:namedview 23<path id="path279" d="m7872.5 13208 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z" fill="#729fcf" style=""/><path id="path281" d="m7872.5 13208 385-353v176h1166v-176l386 353-386 354v-177h-1166v177l-385-354z" fill="none" stroke="#3465af" style=""/><path id="path285" d="m4612.5 14790 397-353v176h1201v-176l398 353-398 354v-177h-1201v177l-397-354z" fill="#729fcf" style=""/><path id="path287" d="m4612.5 14790 397-353v176h1201v-176l398 353-398 354v-177h-1201v177l-397-354z" fill="none" stroke="#3465af" style=""/><text id="text291" class="TextShape" x="-2428.0542" y="-2163.9871" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan293" class="TextParagraph" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan295" class="TextPosition" x="20421.945" y="6628.0132" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan297" fill="#000000"
24 pagecolor="#ffffff" 24font-family="Serif, serif" font-size="493.88px">Smartcard</tspan></tspan></tspan></text>
25 bordercolor="#666666" 25<path id="path301" d="m623.32 436.01c-334.6 0-669.2 333-669.2 666v2668c0 333 334.6 666 669.2 666h18456c334.6 0 670.2-333 670.2-666v-2668c0-333-335.6-666-670.2-666h-18456z" fill="#fcf" style=""/><path id="path305" d="m3031.5 2991h-1614v-1816h3227v1816h-1613z" fill="#ff8080" style=""/><path id="path307" d="m3031.5 2991h-1614v-1816h3227v1816h-1613z" fill="none" stroke="#3465af" style=""/><text id="text309" class="TextShape" x="-2089.4541" y="-2163.9871" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan311" class="TextParagraph"><tspan id="tspan313" class="TextPosition" x="2284.5459" y="1947.0129" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan315" fill="#000000" font-family="Serif, serif" font-size="493.88px">Tuner</tspan></tspan></tspan><tspan id="tspan317" class="TextParagraph"><tspan id="tspan319" class="TextPosition" x="2061.5459" y="2650.0129"
26 borderopacity="1" 26font-family="Serif, serif" font-size="493.88px"><tspan id="tspan321" fill="#000000" font-family="Serif, serif" font-size="493.88px">FM/TV</tspan></tspan></tspan></text>
27 objecttolerance="10" 27<path id="path325" d="m812.55 1538c0 111 40 202 88 202h530c48 0 89-91 89-202 0-110-41-202-89-202h-530c-48 0-88 92-88 202z" fill="#ff8080" style=""/><path id="path327" d="m812.55 1538c0 111 40 202 88 202h530c48 0 89-91 89-202 0-110-41-202-89-202h-530c-48 0-88 92-88 202z" fill="none" stroke="#3465af" style=""/><path id="path329" d="m812.55 1538c0 111 40 202 88 202s88-91 88-202c0-110-40-202-88-202s-88 92-88 202z" fill="#ffb3b3" style=""/><path id="path331" d="m812.55 1538c0 111 40 202 88 202s88-91 88-202c0-110-40-202-88-202s-88 92-88 202z" fill="none" stroke="#3465af" style=""/><path id="path335" d="m813.55 2103c0 110 40 202 88 202h530c48 0 89-92 89-202s-41-203-89-203h-530c-48 0-88 93-88 203z" fill="#ff8080" style=""/><path id="path337" d="m813.55 2103c0 110 40 202 88 202h530c48 0 89-92 89-202s-41-203-89-203h-530c-48 0-88 93-88 203z" fill="none" stroke="#3465af" style=""/><path
28 gridtolerance="10" 28id="path339" d="m813.55 2103c0 110 40 202 88 202s88-92 88-202-40-203-88-203-88 93-88 203z" fill="#ffb3b3" style=""/><path id="path341" d="m813.55 2103c0 110 40 202 88 202s88-92 88-202-40-203-88-203-88 93-88 203z" fill="none" stroke="#3465af" style=""/><path id="path345" d="m4629.5 2032 385-353v176h1167v-176l386 353-386 354v-177h-1167v177l-385-354z" fill="#729fcf" style=""/><path id="path347" d="m4629.5 2032 385-353v176h1167v-176l386 353-386 354v-177h-1167v177l-385-354z" fill="none" stroke="#3465af" style=""/><path id="path351" d="m7889.5 1986 402-368v184h1217v-184l403 368-403 369v-185h-1217v185l-402-369z" fill="#729fcf" style=""/><path id="path353" d="m7889.5 1986 402-368v184h1217v-184l403 368-403 369v-185h-1217v185l-402-369z" fill="none" stroke="#3465af" style=""/><path id="path357" d="m14411 4025h-4500v-1389h9e3v1389h-4500z" fill="#cff" style=""/><path id="path359" d="m14411
29 guidetolerance="10" 294025h-4500v-1389h9e3v1389h-4500z" fill="none" stroke="#3465af" style=""/><text id="text361" class="TextShape" x="-2089.4541" y="-2163.9871" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan363" class="TextParagraph" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan365" class="TextPosition" x="9961.5459" y="3546.0129" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan367" fill="#000000" font-family="Serif, serif" font-size="493.88px">Satellite Equipment Control (SEC)</tspan></tspan></tspan></text>
30 inkscape:pageopacity="0" 30<path id="path371" d="m11311 2436h-1400v-1e3h2800v1e3h-1400z" fill="#cff" style=""/><path id="path373" d="m11311 2436h-1400v-1e3h2800v1e3h-1400z" fill="none" stroke="#3465af" style=""/><text id="text375" class="TextShape" x="-2089.4541" y="-2163.9871" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan377" class="TextParagraph" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan379" class="TextPosition" x="10375.546" y="2152.0129" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan381" fill="#000000" font-family="Serif, serif" font-size="493.88px">Demod</tspan></tspan></tspan></text>
31 inkscape:pageshadow="2" 31<path id="path385" d="m7889.5 3287 402-368v184h1217v-184l403 368-403 369v-185h-1217v185l-402-369z" fill="#729fcf" style=""/><path id="path387" d="m7889.5 3287 402-368v184h1217v-184l403 368-403 369v-185h-1217v185l-402-369z" fill="none" stroke="#3465af" style=""/><path id="path389" d="m7906.5 9121v7302h-1270v-14605h1270v7303z" fill="#ff9" style=""/><path id="path391" d="m7906.5 9121v7302h-1270v-14605h1270v7303z" fill="none" stroke="#3465af" style=""/><text id="text393" class="TextShape" transform="rotate(-90)" x="-20792.584" y="-6589.021" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan395" class="TextParagraph" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan397" class="TextPosition" transform="matrix(0,-1,1,0,-4473,23627)" x="-11215.646" y="7460.9849" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan399" fill="#000000" font-family="Serif,
32 inkscape:window-width="1920" 32serif" font-size="493.88px">I2C Bus (control bus)</tspan></tspan></tspan></text>
33 inkscape:window-height="997" 33<text id="text403" class="TextShape" x="-2145.854" y="-2163.9871" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan405" class="TextParagraph" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan407" class="TextPosition" x="7245.146" y="1114.0129" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan409" fill="#000000" font-family="Serif, serif" font-size="493.88px">Digital TV Frontend</tspan></tspan></tspan></text>
34 id="namedview1531" 34<path id="path415" d="m863.15 636.14c-18.27 0-35.525 0.99994-53.795 2.9998" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path417" d="m776.87 644.14c-17.255 2.9998-35.525 6.9996-52.78 11.999" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path419" d="m692.63 666.14c-16.24 5.9996-33.495 11.999-49.735 19.999" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path421" d="m613.46 700.14c-15.225 7.9995-31.465 16.999-46.69 26.998" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path423" d="m539.36 745.14c-14.21 9.9994-28.42 20.999-42.63 31.998" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path425" d="m471.36 798.14c-13.195 11.999-26.39 23.999-38.57 36.998" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path427" d="m410.46 859.13c-11.165 12.999-22.33
35 showgrid="false" 3526.998-33.495 40.998" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path429" d="m357.68 927.13c-10.15 13.999-19.285 28.998-28.42 44.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path431" d="m314.03 1000.1c-8.12 15.999-15.225 31.998-22.33 48.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path433" d="m280.54 1079.1c-5.075 16.999-10.15 33.998-14.21 50.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path435" d="m260.24 1162.1c-3.045 17.999-5.075 34.998-6.09 52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path437" d="m254.15 1247.1v52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path439" d="m254.15 1333.1v52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path441" d="m254.15 1418.1v52.997"
36 fit-margin-top="0" 36fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path443" d="m254.15 1504.1v52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path445" d="m254.15 1589.1v52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path447" d="m254.15 1675.1v52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path449" d="m254.15 1760.1v52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path451" d="m254.15 1845.1v53.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path453" d="m254.15 1931.1v52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path455" d="m254.15 2016.1v52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path457" d="m254.15 2102.1v52.997" fill="none" stroke="#3465af" stroke-width="28.432"
37 fit-margin-left="0" 37style=""/><path id="path459" d="m254.15 2187.1v52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path461" d="m254.15 2273v52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path463" d="m254.15 2358v52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path465" d="m254.15 2443v53.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path467" d="m254.15 2529v52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path469" d="m254.15 2614v52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path471" d="m254.15 2700v52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path473" d="m254.15 2785v52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path475" d="m254.15 2871v52.997" fill="none"
38 fit-margin-right="0" 38stroke="#3465af" stroke-width="28.432" style=""/><path id="path477" d="m254.15 2956v52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path479" d="m254.15 3041v53.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path481" d="m254.15 3127v52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path483" d="m254.15 3212v52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path485" d="m254.15 3298v52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path487" d="m254.15 3383v52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path489" d="m254.15 3469v52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path491" d="m254.15 3554v52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path493"
39 fit-margin-bottom="0" 39d="m254.15 3639c0 17.999 1.015 35.998 3.045 52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path495" d="m262.27 3724c4.06 17.999 8.12 34.998 13.195 51.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path497" d="m285.61 3807c6.09 15.999 13.195 32.998 20.3 48.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path499" d="m321.14 3885c8.12 14.999 17.255 30.998 27.405 45.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path501" d="m366.81 3957.9c10.15 13.999 21.315 27.998 32.48 41.998" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path503" d="m420.61 4023.9c12.18 12.999 25.375 25.998 38.57 37.998" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path505" d="m483.54 4083.9c13.195 10.999 27.405 22.999 41.615 32.998" fill="none"
40 inkscape:zoom="1.2707744" 40stroke="#3465af" stroke-width="28.432" style=""/><path id="path507" d="m552.56 4135.9c14.21 9.9994 29.435 18.999 45.675 26.998" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path509" d="m627.67 4178.9c15.225 6.9996 32.48 14.999 48.72 20.999" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path511" d="m707.85 4210.9c17.255 4.9997 34.51 9.9994 51.765 13.999" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path513" d="m792.1 4230.9c17.255 1.9999 35.525 3.9998 53.795 4.9997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path515" d="m878.37 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path517" d="m964.65 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path519" d="m1051.9 4235.9h53.795" fill="none" stroke="#3465af"
41 inkscape:cx="410.32614" 41stroke-width="28.432" style=""/><path id="path521" d="m1138.2 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path523" d="m1225.5 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path525" d="m1311.8 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path527" d="m1398.1 4235.9h54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path529" d="m1485.3 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path531" d="m1571.6 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path533" d="m1658.9 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path535" d="m1745.2 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path537"
42 inkscape:cy="316.736" 42d="m1832.5 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path539" d="m1918.7 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path541" d="m2005 4235.9h54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path543" d="m2092.3 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path545" d="m2178.6 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path547" d="m2265.9 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path549" d="m2352.2 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path551" d="m2439.4 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path553" d="m2525.7 4235.9h53.795" fill="none" stroke="#3465af"
43 inkscape:window-x="1920" 43stroke-width="28.432" style=""/><path id="path555" d="m2612 4235.9h54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path557" d="m2699.3 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path559" d="m2785.6 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path561" d="m2872.8 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path563" d="m2959.1 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path565" d="m3046.4 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path567" d="m3132.7 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path569" d="m3220 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path571"
44 inkscape:window-y="30" 44d="m3306.3 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path573" d="m3392.5 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path575" d="m3479.8 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path577" d="m3566.1 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path579" d="m3653.4 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path581" d="m3739.7 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path583" d="m3826.9 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path585" d="m3913.2 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path587" d="m3999.5 4235.9h53.795" fill="none"
45 inkscape:window-maximized="1" 45stroke="#3465af" stroke-width="28.432" style=""/><path id="path589" d="m4086.8 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path591" d="m4173.1 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path593" d="m4260.4 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path595" d="m4346.6 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path597" d="m4433.9 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path599" d="m4520.2 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path601" d="m4606.5 4235.9h54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path603" d="m4693.8 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432"
46 inkscape:current-layer="svg2" /><defs 46style=""/><path id="path605" d="m4780 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path607" d="m4867.3 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path609" d="m4953.6 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path611" d="m5040.9 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path613" d="m5127.2 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path615" d="m5213.4 4235.9h54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path617" d="m5300.7 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path619" d="m5387 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path621" d="m5474.3 4235.9h53.795"
47 id="defs4"><clipPath 47fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path623" d="m5560.6 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path625" d="m5647.9 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path627" d="m5734.1 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path629" d="m5820.4 4235.9h54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path631" d="m5907.7 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path633" d="m5994 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path635" d="m6081.3 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path637" d="m6167.5 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432"
48 id="a" 48style=""/><path id="path639" d="m6254.8 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path641" d="m6341.1 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path643" d="m6427.4 4235.9h54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path645" d="m6514.7 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path647" d="m6600.9 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path649" d="m6688.2 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path651" d="m6774.5 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path653" d="m6861.8 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path655" d="m6948.1
49 clipPathUnits="userSpaceOnUse"><rect 494235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path657" d="m7035.4 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path659" d="m7121.6 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path661" d="m7207.9 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path663" d="m7295.2 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path665" d="m7381.5 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path667" d="m7468.8 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path669" d="m7555 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path671" d="m7642.3 4235.9h53.795" fill="none" stroke="#3465af"
50 y="0" 50stroke-width="28.432" style=""/><path id="path673" d="m7728.6 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path675" d="m7814.9 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path677" d="m7902.2 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path679" d="m7988.4 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path681" d="m8075.7 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path683" d="m8162 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path685" d="m8249.3 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path687" d="m8335.6 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path689"
51 x="0" 51d="m8421.9 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path691" d="m8509.1 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path693" d="m8595.4 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path695" d="m8682.7 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path697" d="m8769 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path699" d="m8856.3 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path701" d="m8942.5 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path703" d="m9028.8 4235.9h54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path705" d="m9116.1 4235.9h53.795" fill="none" stroke="#3465af"
52 width="28000" 52stroke-width="28.432" style=""/><path id="path707" d="m9202.4 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path709" d="m9289.7 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path711" d="m9376 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path713" d="m9463.2 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path715" d="m9549.5 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path717" d="m9635.8 4235.9h54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path719" d="m9723.1 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path721" d="m9809.4 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path723"
53 height="21000" 53d="m9896.6 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path725" d="m9982.9 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path727" d="m10070 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path729" d="m10156 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path731" d="m10243 4235.9h54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path733" d="m10330 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path735" d="m10416 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path737" d="m10504 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path739" d="m10590 4235.9h53.795" fill="none" stroke="#3465af"
54 id="rect7" /></clipPath></defs><path 54stroke-width="28.432" style=""/><path id="path741" d="m10677 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path743" d="m10763 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path745" d="m10850 4235.9h54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path747" d="m10937 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path749" d="m11023 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path751" d="m11111 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path753" d="m11197 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path755" d="m11284 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path757" d="m11370
55 style="fill:#ffccff" 554235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path759" d="m11458 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path761" d="m11544 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path763" d="m11630 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path765" d="m11718 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path767" d="m11804 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path769" d="m11891 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path771" d="m11977 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path773" d="m12065 4235.9h53.795" fill="none" stroke="#3465af"
56 inkscape:connector-curvature="0" 56stroke-width="28.432" style=""/><path id="path775" d="m12151 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path777" d="m12237 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path779" d="m12325 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path781" d="m12411 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path783" d="m12498 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path785" d="m12584 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path787" d="m12672 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path789" d="m12758 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path791"
57 id="path11" 57d="m12844 4235.9h54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path793" d="m12931 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path795" d="m13018 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path797" d="m13105 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path799" d="m13191 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path801" d="m13279 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path803" d="m13365 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path805" d="m13451 4235.9h54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path807" d="m13538 4235.9h53.795" fill="none" stroke="#3465af"
58 d="m 10145.77,2636.013 c -518.0641,0 -1035.1241,515 -1035.1241,1031 l 0,4124 c 0,516 517.06,1032 1035.1241,1032 l 8572.152,0 c 518.064,0 1036.128,-516 1036.128,-1032 l 0,-4124 c 0,-516 -518.064,-1031 -1036.128,-1031 l -8572.152,0 z" /><path 58stroke-width="28.432" style=""/><path id="path809" d="m13625 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path811" d="m13712 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path813" d="m13798 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path815" d="m13886 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path817" d="m13972 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path819" d="m14058 4235.9h54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path821" d="m14145 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path823" d="m14232 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path825" d="m14319
59 style="fill:#ffffcc" 594235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path827" d="m14405 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path829" d="m14493 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path831" d="m14579 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path833" d="m14665 4235.9h54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path835" d="m14752 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path837" d="m14839 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path839" d="m14926 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path841" d="m15012 4235.9h53.795" fill="none" stroke="#3465af"
60 inkscape:connector-curvature="0" 60stroke-width="28.432" style=""/><path id="path843" d="m15100 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path845" d="m15186 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path847" d="m15272 4235.9h54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path849" d="m15359 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path851" d="m15446 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path853" d="m15533 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path855" d="m15619 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path857" d="m15707 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path859" d="m15793
61 id="path15" 614235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path861" d="m15880 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path863" d="m15966 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path865" d="m16053 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path867" d="m16140 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path869" d="m16226 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path871" d="m16313 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path873" d="m16400 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path875" d="m16487 4235.9h53.795" fill="none" stroke="#3465af"
62 d="m 1505.5459,13443.013 c -293,0 -585,292 -585,585 l 0,2340 c 0,293 292,586 585,586 l 3275,0 c 293,0 586,-293 586,-586 l 0,-2340 c 0,-293 -293,-585 -586,-585 l -3275,0 z" /><path 62stroke-width="28.432" style=""/><path id="path877" d="m16573 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path879" d="m16660 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path881" d="m16747 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path883" d="m16833 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path885" d="m16920 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path887" d="m17007 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path889" d="m17094 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path891" d="m17180 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path893"
63 style="fill:#e6e6e6" 63d="m17267 4235.9h54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path895" d="m17354 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path897" d="m17440 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path899" d="m17527 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path901" d="m17614 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path903" d="m17701 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path905" d="m17787 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path907" d="m17874 4235.9h54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path909" d="m17961 4235.9h53.795" fill="none" stroke="#3465af"
64 inkscape:connector-curvature="0" 64stroke-width="28.432" style=""/><path id="path911" d="m18047 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path913" d="m18134 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path915" d="m18221 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path917" d="m18308 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path919" d="m18394 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path921" d="m18481 4235.9h54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path923" d="m18568 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path925" d="m18654 4235.9h53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path927" d="m18741
65 id="path19" 654235.9c17.255-0.9999 35.525-1.9999 53.795-4.9997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path929" d="m18828 4225.9c17.255-3.9998 34.51-8.9995 51.765-13.999" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path931" d="m18911 4200.9c16.24-5.9996 32.48-12.999 48.72-20.999" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path933" d="m18989 4164.9c15.225-7.9996 31.465-16.999 45.675-26.998" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path935" d="m19062 4118.9c14.21-9.9994 28.42-20.999 42.63-31.998" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path937" d="m19129 4064.9c13.195-11.999 25.375-24.998 37.555-37.998" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path939" d="m19189 4002.9c11.165-13.999 22.33-27.998 33.495-41.998" fill="none"
66 d="m 517.1459,22.013 c -461,0 -922,461 -922,922 l 0,11169 c 0,461 461,923 922,923 l 3692,0 c 461,0 922,-462 922,-923 l 0,-11169 c 0,-461 -461,-922 -922,-922 l -3692,0 z" /><path 66stroke="#3465af" stroke-width="28.432" style=""/><path id="path941" d="m19241 3933.9c10.15-14.999 19.285-29.998 27.405-44.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path943" d="m19283 3860c7.105-15.999 14.21-32.998 20.3-48.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path945" d="m19315 3780c5.075-16.999 9.135-33.998 13.195-50.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path947" d="m19333 3697c2.03-17.999 4.06-34.998 4.06-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path949" d="m19337 3612v-53.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path951" d="m19337 3526v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path953" d="m19337 3441v-52.997" fill="none" stroke="#3465af" stroke-width="28.432"
67 style="fill:#ff8080" 67style=""/><path id="path955" d="m19337 3355v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path957" d="m19337 3270v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path959" d="m19337 3184v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path961" d="m19337 3099v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path963" d="m19337 3014v-53.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path965" d="m19337 2928v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path967" d="m19337 2843v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path969" d="m19337 2757v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path971" d="m19337 2672v-52.997" fill="none"
68 inkscape:connector-curvature="0" 68stroke="#3465af" stroke-width="28.432" style=""/><path id="path973" d="m19337 2586v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path975" d="m19337 2501v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path977" d="m19337 2415v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path979" d="m19337 2330v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path981" d="m19337 2245v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path983" d="m19337 2159.1v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path985" d="m19337 2074.1v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path987" d="m19337 1988.1v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path
69 id="path23" 69id="path989" d="m19337 1903.1v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path991" d="m19337 1817.1v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path993" d="m19337 1732.1v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path995" d="m19337 1647.1v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path997" d="m19337 1561.1v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path999" d="m19337 1476.1v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1001" d="m19337 1390.1v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1003" d="m19337 1305.1v-52.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1005" d="m19337
70 d="m 2371.5459,6438.013 -2260,0 0,-1086 4520,0 0,1086 -2260,0 z" /><path 701219.1c-1.015-16.999-3.045-34.998-5.075-51.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1007" d="m19326 1135.1c-4.06-16.999-8.12-34.998-14.21-50.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1009" d="m19301 1053.1c-6.09-15.999-13.195-32.998-21.315-48.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1011" d="m19264 976.12c-9.135-15.999-18.27-30.998-28.42-45.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1013" d="m19216 904.13c-10.15-13.999-21.315-27.998-33.495-41.997" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1015" d="m19161 838.13c-12.18-12.999-24.36-24.998-37.555-36.998" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1017" d="m19098 780.14c-14.21-11.999-28.42-21.999-42.63-32.998" fill="none"
71 style="fill:none;stroke:#3465af" 71stroke="#3465af" stroke-width="28.432" style=""/><path id="path1019" d="m19028 729.14c-15.225-8.9995-30.45-17.999-46.69-26.998" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1021" d="m18951 688.14c-16.24-7.9995-32.48-13.999-49.735-19.999" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1023" d="m18870 657.14c-17.255-4.9997-34.51-8.9995-51.765-11.999" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1025" d="m18786 640.14c-18.27-2.9998-35.525-3.9998-53.795-3.9998" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1027" d="m18700 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1029" d="m18612 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1031" d="m18526 636.14h-53.795" fill="none" stroke="#3465af"
72 inkscape:connector-curvature="0" 72stroke-width="28.432" style=""/><path id="path1033" d="m18439 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1035" d="m18353 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1037" d="m18266 636.14h-54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1039" d="m18179 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1041" d="m18093 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1043" d="m18005 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1045" d="m17919 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1047" d="m17832 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path
73 id="path25" 73id="path1049" d="m17746 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1051" d="m17659 636.14h-54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1053" d="m17572 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1055" d="m17486 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1057" d="m17399 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1059" d="m17312 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1061" d="m17225 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1063" d="m17139 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1065" d="m17052 636.14h-54.81"
74 d="m 2371.5459,6438.013 -2260,0 0,-1086 4520,0 0,1086 -2260,0 z" /><text 74fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1067" d="m16965 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1069" d="m16879 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1071" d="m16792 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1073" d="m16705 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1075" d="m16618 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1077" d="m16532 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1079" d="m16445 636.14h-54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1081" d="m16358 636.14h-53.795" fill="none" stroke="#3465af"
75 id="text27" 75stroke-width="28.432" style=""/><path id="path1083" d="m16272 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1085" d="m16185 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1087" d="m16098 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1089" d="m16011 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1091" d="m15925 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1093" d="m15837 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1095" d="m15751 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1097" d="m15665 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path
76 class="TextShape" 76id="path1099" d="m15578 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1101" d="m15491 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1103" d="m15404 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1105" d="m15318 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1107" d="m15230 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1109" d="m15144 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1111" d="m15058 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1113" d="m14971 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1115" d="m14884 636.14h-53.795"
77 x="-2089.4541" 77fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1117" d="m14797 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1119" d="m14711 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1121" d="m14624 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1123" d="m14537 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1125" d="m14451 636.14h-54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1127" d="m14364 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1129" d="m14277 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1131" d="m14190 636.14h-53.795" fill="none" stroke="#3465af"
78 y="-2163.9871"><tspan 78stroke-width="28.432" style=""/><path id="path1133" d="m14104 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1135" d="m14017 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1137" d="m13930 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1139" d="m13844 636.14h-54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1141" d="m13757 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1143" d="m13670 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1145" d="m13583 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1147" d="m13497 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path
79 style="font-weight:400;font-size:635px;font-family:'Times New Roman', serif" 79id="path1149" d="m13410 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1151" d="m13323 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1153" d="m13237 636.14h-54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1155" d="m13150 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1157" d="m13063 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1159" d="m12976 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1161" d="m12890 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1163" d="m12803 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1165" d="m12716 636.14h-53.795"
80 id="tspan29" 80fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1167" d="m12630 636.14h-54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1169" d="m12543 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1171" d="m12456 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1173" d="m12369 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1175" d="m12283 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1177" d="m12196 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1179" d="m12109 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1181" d="m12022 636.14h-53.795" fill="none" stroke="#3465af"
81 class="TextParagraph" 81stroke-width="28.432" style=""/><path id="path1183" d="m11936 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1185" d="m11850 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1187" d="m11762 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1189" d="m11676 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1191" d="m11589 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1193" d="m11502 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1195" d="m11415 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1197" d="m11329 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path
82 font-weight="400" 82id="path1199" d="m11243 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1201" d="m11155 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1203" d="m11069 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1205" d="m10982 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1207" d="m10895 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1209" d="m10808 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1211" d="m10722 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1213" d="m10636 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1215" d="m10548 636.14h-53.795"
83 font-size="635px"><tspan 83fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1217" d="m10462 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1219" d="m10375 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1221" d="m10288 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1223" d="m10201 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1225" d="m10115 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1227" d="m10029 636.14h-54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1229" d="m9941.3 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1231" d="m9855 636.14h-53.795" fill="none" stroke="#3465af"
84 id="tspan31" 84stroke-width="28.432" style=""/><path id="path1233" d="m9767.7 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1235" d="m9681.5 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1237" d="m9594.2 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1239" d="m9507.9 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1241" d="m9421.6 636.14h-54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1243" d="m9334.3 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1245" d="m9248.1 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1247" d="m9160.8 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432"
85 class="TextPosition" 85style=""/><path id="path1249" d="m9074.5 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1251" d="m8987.2 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1253" d="m8900.9 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1255" d="m8814.7 636.14h-54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1257" d="m8727.4 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1259" d="m8641.1 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1261" d="m8553.8 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1263" d="m8467.5 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1265"
86 x="489.5459" 86d="m8380.2 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1267" d="m8294 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1269" d="m8207.7 636.14h-54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1271" d="m8120.4 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1273" d="m8034.1 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1275" d="m7946.8 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1277" d="m7860.6 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1279" d="m7773.3 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1281" d="m7687 636.14h-53.795" fill="none"
87 y="6111.0132"><tspan 87stroke="#3465af" stroke-width="28.432" style=""/><path id="path1283" d="m7599.7 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1285" d="m7513.4 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1287" d="m7427.2 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1289" d="m7339.9 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1291" d="m7253.6 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1293" d="m7166.3 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1295" d="m7080 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1297" d="m6992.7 636.14h-53.795" fill="none" stroke="#3465af"
88 style="fill:#000000" 88stroke-width="28.432" style=""/><path id="path1299" d="m6906.5 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1301" d="m6820.2 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1303" d="m6732.9 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1305" d="m6646.6 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1307" d="m6559.3 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1309" d="m6473.1 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1311" d="m6385.8 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1313" d="m6299.5 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432"
89 id="tspan33">Audio decoder</tspan></tspan></tspan></text> 89style=""/><path id="path1315" d="m6213.2 636.14h-54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1317" d="m6125.9 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1319" d="m6039.6 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1321" d="m5952.4 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1323" d="m5866.1 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1325" d="m5778.8 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1327" d="m5692.5 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1329" d="m5606.2 636.14h-54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1331"
90<path 90d="m5519 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1333" d="m5432.7 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1335" d="m5345.4 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1337" d="m5259.1 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1339" d="m5171.8 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1341" d="m5085.5 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1343" d="m4999.3 636.14h-54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1345" d="m4912 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1347" d="m4825.7 636.14h-53.795" fill="none"
91 style="fill:#ff8080" 91stroke="#3465af" stroke-width="28.432" style=""/><path id="path1349" d="m4738.4 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1351" d="m4652.1 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1353" d="m4564.9 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1355" d="m4478.6 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1357" d="m4392.3 636.14h-54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1359" d="m4305 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1361" d="m4218.7 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1363" d="m4131.4 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432"
92 inkscape:connector-curvature="0" 92style=""/><path id="path1365" d="m4045.2 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1367" d="m3957.9 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1369" d="m3871.6 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1371" d="m3785.3 636.14h-54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1373" d="m3698 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1375" d="m3611.8 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1377" d="m3524.5 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1379" d="m3438.2 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1381"
93 id="path37" 93d="m3350.9 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1383" d="m3264.6 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1385" d="m3177.3 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1387" d="m3091.1 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1389" d="m3004.8 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1391" d="m2917.5 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1393" d="m2831.2 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1395" d="m2743.9 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1397" d="m2657.7 636.14h-53.795"
94 d="m 2371.5459,9608.013 -2260,0 0,-1270 4520,0 0,1270 -2260,0 z" /><path 94fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1399" d="m2570.4 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1401" d="m2484.1 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1403" d="m2397.8 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1405" d="m2310.5 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1407" d="m2224.3 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1409" d="m2137 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1411" d="m2050.7 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1413" d="m1963.4 636.14h-53.795" fill="none" stroke="#3465af"
95 style="fill:none;stroke:#3465af" 95stroke-width="28.432" style=""/><path id="path1415" d="m1877.1 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1417" d="m1790.9 636.14h-54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1419" d="m1703.6 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1421" d="m1617.3 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1423" d="m1530 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1425" d="m1443.7 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1427" d="m1356.4 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1429" d="m1270.2 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path
96 inkscape:connector-curvature="0" 96id="path1431" d="m1183.9 636.14h-54.81" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1433" d="m1096.6 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1435" d="m1010.3 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><path id="path1437" d="m923.03 636.14h-53.795" fill="none" stroke="#3465af" stroke-width="28.432" style=""/><g id="g4044" style=""><rect id="rect1441" x="21109" y="4753.1" width="1213.6" height="1100.7" fill="#f3e777" style=""/><path id="path1443" d="m20656 5536.4v-405.46l150.7-169.16c82.886-93.039 170.53-186.62 194.77-207.96l44.069-38.798 783.23-0.086 783.23-0.086v1227h-1956v-405.46zm1027.7 136.98v-78.372l-169.91 4.925-169.91 4.9249-5.09 45.854c-8.249 74.303 46.711 101.04 207.69 101.04h137.21v-78.372zm235.86-262.94 4.495-341.31 207.2-8.6408 207.2-8.6408
97 id="path39" 975.144-46.443c9.596-86.615-41.863-102.05-322.02-96.607l-246.71 4.7956-4.438 419.08-4.439 419.08h149.08l4.494-341.31zm391.3 313.72c26.41-19.286 36.255-41.399 32.697-73.447l-5.09-45.854h-348.1l-5.38 48.984c-9.97 90.771 0.993 97.91 150.36 97.91 99.305 0 148.27-7.6982 175.52-27.594zm-627.16-274.84v-77.768h-348.1v66.246c0 36.436 4.973 71.431 11.051 77.768 6.078 6.3366 84.401 11.521 174.05 11.521h163v-77.768zm659.89-4.9154 5.125-74.042-179.18 4.9155-179.18 4.9155-5.38 48.984c-10.473 95.348-2.259 99.57 183.28 94.197l170.2-4.9284 5.125-74.042zm-659.89-237.63v-78.372l-169.91 4.925-169.91 4.925-5.097 73.447-5.097 73.447h350v-78.372zm659.86 4.925-5.097-73.447h-348.1l-5.38 48.984c-10.289 93.673-2.146 97.91 188.15 97.91h175.52l-5.097-73.447zm-659.86-228.98v-77.768h-137.21c-97.358 0-147.91 7.8138-174.05 26.902-34.952 25.523-49.645 92.242-25.79 117.11 6.078 6.3366 84.401 11.521 174.05
98 d="m 2371.5459,9608.013 -2260,0 0,-1270 4520,0 0,1270 -2260,0 z" /><text 9811.521h163v-77.768z" fill="#ca4677" style=""/></g><text id="text1489" class="TextShape" transform="scale(1.1036 .90616)" x="171.41566" y="9913.7109" fill-rule="evenodd" font-family="Serif, serif" font-size="493.87px" stroke-linejoin="round" stroke-width="28.222"><tspan id="tspan1491" class="TextParagraph" font-family="Serif, serif" font-size="493.87px"/></text>
99 id="text41" 99<g id="g4048" style=""><rect id="rect1447" x="18797" y="13737" width="2320.7" height="2342.4" fill="#6076b3" style=""/><rect id="rect1451" x="18532" y="13817" width="302.7" height="137.79" fill="#e0ee2c" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" style=""/><rect id="rect1453" x="18532" y="14076" width="302.7" height="137.79" fill="#e0ee2c" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" style=""/><rect id="rect1455" x="18532" y="14334" width="302.7" height="137.79" fill="#e0ee2c" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" style=""/><rect id="rect1457" x="18532" y="14593" width="302.7" height="137.79" fill="#e0ee2c" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" style=""/><rect id="rect1459" x="18532" y="14851" width="302.7" height="137.79" fill="#e0ee2c" fill-rule="evenodd" stroke-linejoin="round"
100 class="TextShape" 100stroke-width="28.222" style=""/><rect id="rect1461" x="18532" y="15110" width="302.7" height="137.79" fill="#e0ee2c" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" style=""/><rect id="rect1463" x="18532" y="15368" width="302.7" height="137.79" fill="#e0ee2c" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" style=""/><rect id="rect1465" x="18532" y="15626" width="302.7" height="137.79" fill="#e0ee2c" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" style=""/><rect id="rect1467" x="18532" y="15884" width="302.7" height="137.79" fill="#e0ee2c" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" style=""/><rect id="rect1469" x="21080" y="13783" width="302.7" height="137.79" fill="#e0ee2c" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" style=""/><rect id="rect1471" x="21080" y="14041" width="302.7"
101 x="-2089.4541" 101height="137.79" fill="#e0ee2c" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" style=""/><rect id="rect1473" x="21080" y="14299" width="302.7" height="137.79" fill="#e0ee2c" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" style=""/><rect id="rect1475" x="21080" y="14558" width="302.7" height="137.79" fill="#e0ee2c" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" style=""/><rect id="rect1477" x="21080" y="14816" width="302.7" height="137.79" fill="#e0ee2c" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" style=""/><rect id="rect1479" x="21080" y="15075" width="302.7" height="137.79" fill="#e0ee2c" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" style=""/><rect id="rect1481" x="21080" y="15333" width="302.7" height="137.79" fill="#e0ee2c" fill-rule="evenodd" stroke-linejoin="round"
102 y="-2163.9871"><tspan 102stroke-width="28.222" style=""/><rect id="rect1483" x="21080" y="15592" width="302.7" height="137.79" fill="#e0ee2c" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" style=""/><rect id="rect1485" x="21080" y="15850" width="302.7" height="137.79" fill="#e0ee2c" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" style=""/><text id="text1493" transform="scale(1.1036 .90616)" x="17205.688" y="16777.641" fill="#000000" fill-rule="evenodd" font-family="Sans" font-size="856.96px" letter-spacing="0px" stroke-linejoin="round" stroke-width="28.222" word-spacing="0px" style="line-height:125%" line-height="125%" xml:space="preserve"><tspan id="tspan1495" x="17205.688" y="16777.641" style="">CPU</tspan></text>
103 style="font-weight:400;font-size:635px;font-family:'Times New Roman', serif" 103</g><text id="text1499" class="TextShape" x="-11700.553" y="565.61298" fill-rule="evenodd" font-family="Serif, serif" font-size="493.88px" stroke-linejoin="round" stroke-width="28.222"><tspan id="tspan1501" class="TextParagraph" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan1503" class="TextPosition" transform="matrix(0,-1,1,0,8509,40173)" x="12640.447" y="16397.613" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan1505" fill="#000000" font-family="Serif, serif" font-size="493.88px">PCI, USB, SPI, I2C, ...</tspan></tspan></tspan></text>
104 id="tspan43" 104<path id="path1511" d="m12408 15562h-1115.1v-1420.3h2230.2v1420.3h-1115.1z" fill="#cfe7f5" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" style=""/><path id="path1513" d="m12408 15562h-1115.1v-1420.3h2230.2v1420.3h-1115.1z" fill="none" stroke="#3465af" stroke-linejoin="round" stroke-width="19.847" style=""/><text id="text1515" class="TextShape" x="-1394.0863" y="590.73016" fill-rule="evenodd" font-family="Serif, serif" font-size="493.88px" stroke-linejoin="round" stroke-width="28.222"><tspan id="tspan1517" class="TextParagraph" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan1519" class="TextPosition" x="11487.915" y="14672.743" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan1521" fill="#000000" font-family="Serif, serif" font-size="493.88px">Bridge</tspan></tspan></tspan></text>
105 class="TextParagraph" 105<text id="text1523" class="TextShape" x="-1450.5308" y="1324.5078" fill-rule="evenodd" font-family="Serif, serif" font-size="493.88px" stroke-linejoin="round" stroke-width="28.222"><tspan id="tspan1525" class="TextParagraph" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan1527" class="TextPosition" x="11431.471" y="15406.52" font-family="Serif, serif" font-size="493.88px"><tspan id="tspan1529" fill="#000000" font-family="Serif, serif" font-size="493.88px"> DMA</tspan></tspan></tspan></text>
106 font-weight="400" 106</svg>
107 font-size="635px"><tspan
108 id="tspan45"
109 class="TextPosition"
110 x="527.5459"
111 y="9189.0127"><tspan
112 style="fill:#000000"
113 id="tspan47">Video decoder</tspan></tspan></tspan></text>
114<path
115 style="fill:#ff8080"
116 inkscape:connector-curvature="0"
117 id="path51"
118 d="m 2363.5459,8053.013 -2269,0 0,-1224 4537,0 0,1224 -2268,0 z" /><path
119 style="fill:none;stroke:#3465af"
120 inkscape:connector-curvature="0"
121 id="path53"
122 d="m 2363.5459,8053.013 -2269,0 0,-1224 4537,0 0,1224 -2268,0 z" /><text
123 id="text55"
124 class="TextShape"
125 x="-2089.4541"
126 y="-2163.9871"><tspan
127 style="font-weight:400;font-size:635px;font-family:'Times New Roman', serif"
128 id="tspan57"
129 class="TextParagraph"
130 font-weight="400"
131 font-size="635px"><tspan
132 id="tspan59"
133 class="TextPosition"
134 x="481.5459"
135 y="7657.0132"><tspan
136 style="fill:#000000"
137 id="tspan61">Audio encoder</tspan></tspan></tspan></text>
138<path
139 style="fill:#ccffcc"
140 inkscape:connector-curvature="0"
141 id="path65"
142 d="m 13621.546,10385.813 -3810.0001,0 0,-1281 7620.0001,0 0,1281 -3810,0 z" /><path
143 style="fill:none;stroke:#3465af"
144 inkscape:connector-curvature="0"
145 id="path67"
146 d="m 13621.546,10385.813 -3810.0001,0 0,-1281 7620.0001,0 0,1281 -3810,0 z" /><text
147 id="text69"
148 class="TextShape"
149 x="-2089.4541"
150 y="-2446.187"><tspan
151 style="font-weight:400;font-size:635px;font-family:'Times New Roman', serif"
152 id="tspan71"
153 class="TextParagraph"
154 font-weight="400"
155 font-size="635px"><tspan
156 id="tspan73"
157 class="TextPosition"
158 x="10287.546"
159 y="9960.8135"><tspan
160 style="fill:#000000"
161 id="tspan75">Button Key/IR input logic</tspan></tspan></tspan></text>
162<path
163 style="fill:#cfe7f5"
164 inkscape:connector-curvature="0"
165 id="path79"
166 d="m 12079.546,12182.213 -2268.0001,0 0,-1412 4536.0001,0 0,1412 -2268,0 z" /><path
167 style="fill:none;stroke:#3465af"
168 inkscape:connector-curvature="0"
169 id="path81"
170 d="m 12079.546,12182.213 -2268.0001,0 0,-1412 4536.0001,0 0,1412 -2268,0 z" /><text
171 id="text83"
172 class="TextShape"
173 x="-2089.4541"
174 y="-2389.7871"><tspan
175 style="font-weight:400;font-size:635px;font-family:'Times New Roman', serif"
176 id="tspan85"
177 class="TextParagraph"
178 font-weight="400"
179 font-size="635px"><tspan
180 id="tspan87"
181 class="TextPosition"
182 x="10792.546"
183 y="11692.213"><tspan
184 style="fill:#000000"
185 id="tspan89">EEPROM</tspan></tspan></tspan></text>
186<path
187 style="fill:#ffcc99"
188 inkscape:connector-curvature="0"
189 id="path93"
190 d="m 3050.5459,15498.013 -1563,0 0,-1715 3126,0 0,1715 -1563,0 z" /><path
191 style="fill:none;stroke:#3465af"
192 inkscape:connector-curvature="0"
193 id="path95"
194 d="m 3050.5459,15498.013 -1563,0 0,-1715 3126,0 0,1715 -1563,0 z" /><text
195 id="text97"
196 class="TextShape"
197 x="-2089.4541"
198 y="-2163.9871"><tspan
199 style="font-weight:400;font-size:635px;font-family:'Times New Roman', serif"
200 id="tspan99"
201 class="TextParagraph"
202 font-weight="400"
203 font-size="635px"><tspan
204 id="tspan101"
205 class="TextPosition"
206 x="2186.5459"
207 y="14856.013"><tspan
208 style="fill:#000000"
209 id="tspan103">Sensor</tspan></tspan></tspan></text>
210<path
211 style="fill:#729fcf"
212 inkscape:connector-curvature="0"
213 id="path107"
214 d="m 4629.5459,5866.013 385,-353 0,176 1167,0 0,-176 386,353 -386,354 0,-177 -1167,0 0,177 -385,-354 z" /><path
215 style="fill:none;stroke:#3465af"
216 inkscape:connector-curvature="0"
217 id="path109"
218 d="m 4629.5459,5866.013 385,-353 0,176 1167,0 0,-176 386,353 -386,354 0,-177 -1167,0 0,177 -385,-354 z" /><path
219 style="fill:#729fcf"
220 inkscape:connector-curvature="0"
221 id="path113"
222 d="m 4629.5459,7448.013 385,-353 0,176 1167,0 0,-176 386,353 -386,354 0,-177 -1167,0 0,177 -385,-354 z" /><path
223 style="fill:none;stroke:#3465af"
224 inkscape:connector-curvature="0"
225 id="path115"
226 d="m 4629.5459,7448.013 385,-353 0,176 1167,0 0,-176 386,353 -386,354 0,-177 -1167,0 0,177 -385,-354 z" /><path
227 style="fill:#729fcf"
228 inkscape:connector-curvature="0"
229 id="path119"
230 d="m 4631.5459,8936.013 385,-353 0,176 1166,0 0,-176 386,353 -386,354 0,-177 -1166,0 0,177 -385,-354 z" /><path
231 style="fill:none;stroke:#3465af"
232 inkscape:connector-curvature="0"
233 id="path121"
234 d="m 4631.5459,8936.013 385,-353 0,176 1166,0 0,-176 386,353 -386,354 0,-177 -1166,0 0,177 -385,-354 z" /><path
235 style="fill:#729fcf"
236 inkscape:connector-curvature="0"
237 id="path125"
238 d="m 7872.5459,11464.213 385,-353 0,176 1166,0 0,-176 386,353 -386,354 0,-177 -1166,0 0,177 -385,-354 z" /><path
239 style="fill:none;stroke:#3465af"
240 inkscape:connector-curvature="0"
241 id="path127"
242 d="m 7872.5459,11464.213 385,-353 0,176 1166,0 0,-176 386,353 -386,354 0,-177 -1166,0 0,177 -385,-354 z" /><path
243 style="fill:#729fcf"
244 inkscape:connector-curvature="0"
245 id="path131"
246 d="m 7872.5459,9716.813 385,-353 0,176 1166,0 0,-176 386,353 -386,354 0,-177 -1166,0 0,177 -385,-354 z" /><path
247 style="fill:none;stroke:#3465af"
248 inkscape:connector-curvature="0"
249 id="path133"
250 d="m 7872.5459,9716.813 385,-353 0,176 1166,0 0,-176 386,353 -386,354 0,-177 -1166,0 0,177 -385,-354 z" /><path
251 style="fill:#729fcf"
252 inkscape:connector-curvature="0"
253 id="path137"
254 d="m 7872.5459,14994.013 670,-353 0,176 2028.0001,0 0,-176 671,353 -671,354 0,-177 -2028.0001,0 0,177 -670,-354 z" /><path
255 style="fill:none;stroke:#3465af"
256 inkscape:connector-curvature="0"
257 id="path139"
258 d="m 7872.5459,14994.013 670,-353 0,176 2028.0001,0 0,-176 671,353 -671,354 0,-177 -2028.0001,0 0,177 -670,-354 z" /><path
259 style="fill:#729fcf"
260 inkscape:connector-curvature="0"
261 id="path143"
262 d="m 17534.058,14104.529 978.488,840.891 -978.488,840.89 0,-420.862 -2960.48,0 0,420.862 -979.489,-840.89 979.489,-840.891 0,420.029 2960.48,0 0,-420.029 z" /><path
263 style="fill:none;stroke:#3465af;stroke-width:25.77035904"
264 inkscape:connector-curvature="0"
265 id="path145"
266 d="m 17534.058,14104.529 978.488,840.891 -978.488,840.89 0,-420.862 -2960.48,0 0,420.862 -979.489,-840.89 979.489,-840.891 0,420.029 2960.48,0 0,-420.029 z" /><text
267 id="text149"
268 class="TextShape"
269 x="-9922.1533"
270 y="-644.58704"><tspan
271 style="font-weight:400;font-size:706px;font-family:'Times New Roman', serif"
272 id="tspan151"
273 class="TextParagraph"
274 font-weight="400"
275 font-size="706px"><tspan
276 id="tspan153"
277 transform="matrix(0,-1,1,0,8509,40173)"
278 class="TextPosition"
279 x="14418.847"
280 y="15187.413"><tspan
281 style="fill:#000000"
282 id="tspan155">System Bus</tspan></tspan></tspan></text>
283<path
284 style="fill:#ccffff"
285 inkscape:connector-curvature="0"
286 id="path159"
287 d="m 11061.546,7098.013 -1250.0001,0 0,-875 2499.0001,0 0,875 -1249,0 z" /><path
288 style="fill:none;stroke:#3465af"
289 inkscape:connector-curvature="0"
290 id="path161"
291 d="m 11061.546,7098.013 -1250.0001,0 0,-875 2499.0001,0 0,875 -1249,0 z" /><text
292 id="text163"
293 class="TextShape"
294 x="-2089.4541"
295 y="-2163.9871"><tspan
296 style="font-weight:400;font-size:635px;font-family:'Times New Roman', serif"
297 id="tspan165"
298 class="TextParagraph"
299 font-weight="400"
300 font-size="635px"><tspan
301 id="tspan167"
302 class="TextPosition"
303 x="10125.546"
304 y="6876.0132"><tspan
305 style="fill:#000000"
306 id="tspan169">Demux</tspan></tspan></tspan></text>
307<path
308 style="fill:#729fcf"
309 inkscape:connector-curvature="0"
310 id="path173"
311 d="m 7906.5459,6601.013 373,-357 0,178 1130,0 0,-178 374,357 -374,358 0,-179 -1130,0 0,179 -373,-358 z" /><path
312 style="fill:none;stroke:#3465af"
313 inkscape:connector-curvature="0"
314 id="path175"
315 d="m 7906.5459,6601.013 373,-357 0,178 1130,0 0,-178 374,357 -374,358 0,-179 -1130,0 0,179 -373,-358 z" /><path
316 style="fill:#729fcf"
317 inkscape:connector-curvature="0"
318 id="path179"
319 d="m 7906.5459,5214.013 373,-358 0,179 1130,0 0,-179 374,358 -374,358 0,-179 -1130,0 0,179 -373,-358 z" /><path
320 style="fill:none;stroke:#3465af"
321 inkscape:connector-curvature="0"
322 id="path181"
323 d="m 7906.5459,5214.013 373,-358 0,179 1130,0 0,-179 374,358 -374,358 0,-179 -1130,0 0,179 -373,-358 z" /><path
324 style="fill:#ccffff"
325 inkscape:connector-curvature="0"
326 id="path185"
327 d="m 14232.546,5828.013 -4421.0001,0 0,-1270 8841.0001,0 0,1270 -4420,0 z" /><path
328 style="fill:none;stroke:#3465af"
329 inkscape:connector-curvature="0"
330 id="path187"
331 d="m 14232.546,5828.013 -4421.0001,0 0,-1270 8841.0001,0 0,1270 -4420,0 z" /><text
332 id="text189"
333 class="TextShape"
334 x="-2089.4541"
335 y="-2163.9871"><tspan
336 style="font-weight:400;font-size:635px;font-family:'Times New Roman', serif"
337 id="tspan191"
338 class="TextParagraph"
339 font-weight="400"
340 font-size="635px"><tspan
341 id="tspan193"
342 class="TextPosition"
343 x="10696.546"
344 y="5409.0132"><tspan
345 style="fill:#000000"
346 id="tspan195">Conditional Access Module</tspan></tspan></tspan></text>
347<path
348 style="fill:#ff8080"
349 inkscape:connector-curvature="0"
350 id="path199"
351 d="m 2355.5459,11123.013 -2269,0 0,-1224 4537,0 0,1224 -2268,0 z" /><path
352 style="fill:none;stroke:#3465af"
353 inkscape:connector-curvature="0"
354 id="path201"
355 d="m 2355.5459,11123.013 -2269,0 0,-1224 4537,0 0,1224 -2268,0 z" /><text
356 id="text203"
357 class="TextShape"
358 x="-2089.4541"
359 y="-2163.9871"><tspan
360 style="font-weight:400;font-size:635px;font-family:'Times New Roman', serif"
361 id="tspan205"
362 class="TextParagraph"
363 font-weight="400"
364 font-size="635px"><tspan
365 id="tspan207"
366 class="TextPosition"
367 x="511.5459"
368 y="10727.013"><tspan
369 style="fill:#000000"
370 id="tspan209">Video encoder</tspan></tspan></tspan></text>
371<path
372 style="fill:#729fcf"
373 inkscape:connector-curvature="0"
374 id="path213"
375 d="m 4631.5459,10470.013 385,-353 0,176 1166,0 0,-176 386,353 -386,354 0,-177 -1166,0 0,177 -385,-354 z" /><path
376 style="fill:none;stroke:#3465af"
377 inkscape:connector-curvature="0"
378 id="path215"
379 d="m 4631.5459,10470.013 385,-353 0,176 1166,0 0,-176 386,353 -386,354 0,-177 -1166,0 0,177 -385,-354 z" /><path
380 style="fill:#729fcf"
381 inkscape:connector-curvature="0"
382 id="path219"
383 d="m 18701.546,5381.013 385,-353 0,176 1166,0 0,-176 386,353 -386,354 0,-177 -1166,0 0,177 -385,-354 z" /><path
384 style="fill:none;stroke:#3465af"
385 inkscape:connector-curvature="0"
386 id="path221"
387 d="m 18701.546,5381.013 385,-353 0,176 1166,0 0,-176 386,353 -386,354 0,-177 -1166,0 0,177 -385,-354 z" /><text
388 id="text225"
389 class="TextShape"
390 x="-1976.5541"
391 y="-2163.9871"><tspan
392 style="font-weight:400;font-size:635px;font-family:'Times New Roman', serif"
393 id="tspan227"
394 class="TextParagraph"
395 font-weight="400"
396 font-size="635px"><tspan
397 id="tspan229"
398 class="TextPosition"
399 x="13.4459"
400 y="12314.013"><tspan
401 style="fill:#000000"
402 id="tspan231">Radio / Analog TV</tspan></tspan></tspan></text>
403<text
404 id="text235"
405 class="TextShape"
406 x="-2089.4541"
407 y="-2163.9871"><tspan
408 style="font-weight:700;font-size:635px;font-family:'Times New Roman', serif"
409 id="tspan237"
410 class="TextParagraph"
411 font-weight="700"
412 font-size="635px"><tspan
413 id="tspan239"
414 class="TextPosition"
415 x="12866.546"
416 y="8560.0127"><tspan
417 style="fill:#000000"
418 id="tspan241">Digital TV</tspan></tspan></tspan></text>
419<text
420 id="text245"
421 class="TextShape"
422 x="-8919.0537"
423 y="-1373.787"><tspan
424 style="font-weight:400;font-size:494px;font-family:'Times New Roman', serif"
425 id="tspan247"
426 class="TextParagraph"
427 font-weight="400"
428 font-size="494px"><tspan
429 id="tspan249"
430 class="TextPosition"
431 x="5804.9458"
432 y="17793.213"><tspan
433 style="fill:#000000"
434 id="tspan251">PS.: picture is not complete: other blocks may be present</tspan></tspan></tspan></text>
435<text
436 id="text255"
437 class="TextShape"
438 x="-2089.4541"
439 y="-2163.9871"><tspan
440 style="font-weight:400;font-size:635px;font-family:'Times New Roman', serif"
441 id="tspan257"
442 class="TextParagraph"
443 font-weight="400"
444 font-size="635px"><tspan
445 id="tspan259"
446 class="TextPosition"
447 x="2109.5459"
448 y="16397.014"><tspan
449 style="fill:#000000"
450 id="tspan261">Webcam</tspan></tspan></tspan></text>
451<path
452 style="fill:#ff9900"
453 inkscape:connector-curvature="0"
454 id="path265"
455 d="m 12462.546,13925.813 -2650.0001,0 0,-1412 5299.0001,0 0,1412 -2649,0 z" /><path
456 style="fill:none;stroke:#3465af"
457 inkscape:connector-curvature="0"
458 id="path267"
459 d="m 12462.546,13925.813 -2650.0001,0 0,-1412 5299.0001,0 0,1412 -2649,0 z" /><text
460 id="text269"
461 class="TextShape"
462 x="-2089.4541"
463 y="-2446.187"><tspan
464 style="font-weight:400;font-size:635px;font-family:'Times New Roman', serif"
465 id="tspan271"
466 class="TextParagraph"
467 font-weight="400"
468 font-size="635px"><tspan
469 id="tspan273"
470 class="TextPosition"
471 x="10175.546"
472 y="13435.813"><tspan
473 style="fill:#000000"
474 id="tspan275">Processing blocks</tspan></tspan></tspan></text>
475<path
476 style="fill:#729fcf"
477 inkscape:connector-curvature="0"
478 id="path279"
479 d="m 7872.5459,13207.813 385,-353 0,176 1166,0 0,-176 386,353 -386,354 0,-177 -1166,0 0,177 -385,-354 z" /><path
480 style="fill:none;stroke:#3465af"
481 inkscape:connector-curvature="0"
482 id="path281"
483 d="m 7872.5459,13207.813 385,-353 0,176 1166,0 0,-176 386,353 -386,354 0,-177 -1166,0 0,177 -385,-354 z" /><path
484 style="fill:#729fcf"
485 inkscape:connector-curvature="0"
486 id="path285"
487 d="m 4612.5459,14790.013 397,-353 0,176 1201,0 0,-176 398,353 -398,354 0,-177 -1201,0 0,177 -397,-354 z" /><path
488 style="fill:none;stroke:#3465af"
489 inkscape:connector-curvature="0"
490 id="path287"
491 d="m 4612.5459,14790.013 397,-353 0,176 1201,0 0,-176 398,353 -398,354 0,-177 -1201,0 0,177 -397,-354 z" /><text
492 id="text291"
493 class="TextShape"
494 x="-2428.0542"
495 y="-2163.9871"><tspan
496 style="font-weight:400;font-size:635px;font-family:'Times New Roman', serif"
497 id="tspan293"
498 class="TextParagraph"
499 font-weight="400"
500 font-size="635px"><tspan
501 id="tspan295"
502 class="TextPosition"
503 x="20421.945"
504 y="6628.0132"><tspan
505 style="fill:#000000"
506 id="tspan297">Smartcard</tspan></tspan></tspan></text>
507<path
508 style="fill:#ffccff"
509 inkscape:connector-curvature="0"
510 id="path301"
511 d="m 623.3227,436.013 c -334.5984,0 -669.1968,333 -669.1968,666 l 0,2668 c 0,333 334.5984,666 669.1968,666 l 18456.1663,0 c 334.598,0 670.202,-333 670.202,-666 l 0,-2668 c 0,-333 -335.604,-666 -670.202,-666 l -18456.1663,0 z" /><path
512 style="fill:#ff8080"
513 inkscape:connector-curvature="0"
514 id="path305"
515 d="m 3031.5459,2991.013 -1614,0 0,-1816 3227,0 0,1816 -1613,0 z" /><path
516 style="fill:none;stroke:#3465af"
517 inkscape:connector-curvature="0"
518 id="path307"
519 d="m 3031.5459,2991.013 -1614,0 0,-1816 3227,0 0,1816 -1613,0 z" /><text
520 style="font-weight:400;font-size:635px;font-family:'Times New Roman', serif"
521 id="text309"
522 class="TextShape"
523 font-weight="400"
524 font-size="635px"
525 x="-2089.4541"
526 y="-2163.9871"><tspan
527 id="tspan311"
528 class="TextParagraph"><tspan
529 id="tspan313"
530 class="TextPosition"
531 x="2284.5459"
532 y="1947.0129"><tspan
533 style="fill:#000000"
534 id="tspan315">Tuner</tspan></tspan></tspan><tspan
535 id="tspan317"
536 class="TextParagraph"><tspan
537 id="tspan319"
538 class="TextPosition"
539 x="2061.5459"
540 y="2650.0129"><tspan
541 style="fill:#000000"
542 id="tspan321">FM/TV</tspan></tspan></tspan></text>
543<path
544 style="fill:#ff8080"
545 inkscape:connector-curvature="0"
546 id="path325"
547 d="m 812.5459,1538.013 c 0,111 40,202 88,202 l 530,0 c 48,0 89,-91 89,-202 0,-110 -41,-202 -89,-202 l -530,0 c -48,0 -88,92 -88,202 z" /><path
548 style="fill:none;stroke:#3465af"
549 inkscape:connector-curvature="0"
550 id="path327"
551 d="m 812.5459,1538.013 c 0,111 40,202 88,202 l 530,0 c 48,0 89,-91 89,-202 0,-110 -41,-202 -89,-202 l -530,0 c -48,0 -88,92 -88,202 z" /><path
552 style="fill:#ffb3b3"
553 inkscape:connector-curvature="0"
554 id="path329"
555 d="m 812.5459,1538.013 c 0,111 40,202 88,202 48,0 88,-91 88,-202 0,-110 -40,-202 -88,-202 -48,0 -88,92 -88,202 z" /><path
556 style="fill:none;stroke:#3465af"
557 inkscape:connector-curvature="0"
558 id="path331"
559 d="m 812.5459,1538.013 c 0,111 40,202 88,202 48,0 88,-91 88,-202 0,-110 -40,-202 -88,-202 -48,0 -88,92 -88,202 z" /><path
560 style="fill:#ff8080"
561 inkscape:connector-curvature="0"
562 id="path335"
563 d="m 813.5459,2103.013 c 0,110 40,202 88,202 l 530,0 c 48,0 89,-92 89,-202 0,-110 -41,-203 -89,-203 l -530,0 c -48,0 -88,93 -88,203 z" /><path
564 style="fill:none;stroke:#3465af"
565 inkscape:connector-curvature="0"
566 id="path337"
567 d="m 813.5459,2103.013 c 0,110 40,202 88,202 l 530,0 c 48,0 89,-92 89,-202 0,-110 -41,-203 -89,-203 l -530,0 c -48,0 -88,93 -88,203 z" /><path
568 style="fill:#ffb3b3"
569 inkscape:connector-curvature="0"
570 id="path339"
571 d="m 813.5459,2103.013 c 0,110 40,202 88,202 48,0 88,-92 88,-202 0,-110 -40,-203 -88,-203 -48,0 -88,93 -88,203 z" /><path
572 style="fill:none;stroke:#3465af"
573 inkscape:connector-curvature="0"
574 id="path341"
575 d="m 813.5459,2103.013 c 0,110 40,202 88,202 48,0 88,-92 88,-202 0,-110 -40,-203 -88,-203 -48,0 -88,93 -88,203 z" /><path
576 style="fill:#729fcf"
577 inkscape:connector-curvature="0"
578 id="path345"
579 d="m 4629.5459,2032.013 385,-353 0,176 1167,0 0,-176 386,353 -386,354 0,-177 -1167,0 0,177 -385,-354 z" /><path
580 style="fill:none;stroke:#3465af"
581 inkscape:connector-curvature="0"
582 id="path347"
583 d="m 4629.5459,2032.013 385,-353 0,176 1167,0 0,-176 386,353 -386,354 0,-177 -1167,0 0,177 -385,-354 z" /><path
584 style="fill:#729fcf"
585 inkscape:connector-curvature="0"
586 id="path351"
587 d="m 7889.5459,1986.013 402,-368 0,184 1217,0 0,-184 403,368 -403,369 0,-185 -1217,0 0,185 -402,-369 z" /><path
588 style="fill:none;stroke:#3465af"
589 inkscape:connector-curvature="0"
590 id="path353"
591 d="m 7889.5459,1986.013 402,-368 0,184 1217,0 0,-184 403,368 -403,369 0,-185 -1217,0 0,185 -402,-369 z" /><path
592 style="fill:#ccffff"
593 inkscape:connector-curvature="0"
594 id="path357"
595 d="m 14410.546,4025.013 -4500.0001,0 0,-1389 9000.0001,0 0,1389 -4500,0 z" /><path
596 style="fill:none;stroke:#3465af"
597 inkscape:connector-curvature="0"
598 id="path359"
599 d="m 14410.546,4025.013 -4500.0001,0 0,-1389 9000.0001,0 0,1389 -4500,0 z" /><text
600 id="text361"
601 class="TextShape"
602 x="-2089.4541"
603 y="-2163.9871"><tspan
604 style="font-weight:400;font-size:635px;font-family:'Times New Roman', serif"
605 id="tspan363"
606 class="TextParagraph"
607 font-weight="400"
608 font-size="635px"><tspan
609 id="tspan365"
610 class="TextPosition"
611 x="9961.5459"
612 y="3546.0129"><tspan
613 style="fill:#000000"
614 id="tspan367">Satellite Equipment Control (SEC)</tspan></tspan></tspan></text>
615<path
616 style="fill:#ccffff"
617 inkscape:connector-curvature="0"
618 id="path371"
619 d="m 11310.546,2436.013 -1400.0001,0 0,-1000 2800.0001,0 0,1000 -1400,0 z" /><path
620 style="fill:none;stroke:#3465af"
621 inkscape:connector-curvature="0"
622 id="path373"
623 d="m 11310.546,2436.013 -1400.0001,0 0,-1000 2800.0001,0 0,1000 -1400,0 z" /><text
624 id="text375"
625 class="TextShape"
626 x="-2089.4541"
627 y="-2163.9871"><tspan
628 style="font-weight:400;font-size:635px;font-family:'Times New Roman', serif"
629 id="tspan377"
630 class="TextParagraph"
631 font-weight="400"
632 font-size="635px"><tspan
633 id="tspan379"
634 class="TextPosition"
635 x="10375.546"
636 y="2152.0129"><tspan
637 style="fill:#000000"
638 id="tspan381">Demod</tspan></tspan></tspan></text>
639<path
640 style="fill:#729fcf"
641 inkscape:connector-curvature="0"
642 id="path385"
643 d="m 7889.5459,3287.013 402,-368 0,184 1217,0 0,-184 403,368 -403,369 0,-185 -1217,0 0,185 -402,-369 z" /><path
644 style="fill:none;stroke:#3465af"
645 inkscape:connector-curvature="0"
646 id="path387"
647 d="m 7889.5459,3287.013 402,-368 0,184 1217,0 0,-184 403,368 -403,369 0,-185 -1217,0 0,185 -402,-369 z" /><path
648 d="m 7906.5459,9121.013 0,7302 -1270,0 0,-14605 1270,0 0,7303 z"
649 id="path389"
650 inkscape:connector-curvature="0"
651 style="fill:#ffff99" /><path
652 d="m 7906.5459,9121.013 0,7302 -1270,0 0,-14605 1270,0 0,7303 z"
653 id="path391"
654 inkscape:connector-curvature="0"
655 style="fill:none;stroke:#3465af" /><text
656 y="-6589.021"
657 x="-20792.584"
658 transform="matrix(0,-1,1,0,0,0)"
659 class="TextShape"
660 id="text393"><tspan
661 font-size="635px"
662 font-weight="400"
663 class="TextParagraph"
664 id="tspan395"
665 style="font-weight:400;font-size:635px;font-family:'Times New Roman', serif"><tspan
666 y="7460.9849"
667 x="-11215.646"
668 class="TextPosition"
669 transform="matrix(0,-1,1,0,-4473,23627)"
670 id="tspan397"><tspan
671 id="tspan399"
672 style="fill:#000000">I2C Bus (control bus)</tspan></tspan></tspan></text>
673<text
674 id="text403"
675 class="TextShape"
676 x="-2145.854"
677 y="-2163.9871"><tspan
678 style="font-weight:400;font-size:635px;font-family:'Times New Roman', serif"
679 id="tspan405"
680 class="TextParagraph"
681 font-weight="400"
682 font-size="635px"><tspan
683 id="tspan407"
684 class="TextPosition"
685 x="7245.146"
686 y="1114.0129"><tspan
687 style="fill:#000000"
688 id="tspan409">Digital TV Frontend</tspan></tspan></tspan></text>
689<path
690 style="fill:none;stroke:#3465af;stroke-width:28.432024"
691 d="m 863.1459,636.145 c -18.27,0 -35.525,0.99994 -53.795,2.99982"
692 id="path415"
693 inkscape:connector-curvature="0" /><path
694 style="fill:none;stroke:#3465af;stroke-width:28.432024"
695 d="m 776.8709,644.14452 c -17.255,2.99982 -35.525,6.99958 -52.78,11.99928"
696 id="path417"
697 inkscape:connector-curvature="0" /><path
698 style="fill:none;stroke:#3465af;stroke-width:28.432024"
699 d="m 692.6259,666.1432 c -16.24,5.99964 -33.495,11.99928 -49.735,19.9988"
700 id="path419"
701 inkscape:connector-curvature="0" /><path
702 style="fill:none;stroke:#3465af;stroke-width:28.432024"
703 d="m 613.4559,700.14116 c -15.225,7.99952 -31.465,16.99898 -46.69,26.99838"
704 id="path421"
705 inkscape:connector-curvature="0" /><path
706 style="fill:none;stroke:#3465af;stroke-width:28.432024"
707 d="m 539.3609,745.13846 c -14.21,9.9994 -28.42,20.99874 -42.63,31.99808"
708 id="path423"
709 inkscape:connector-curvature="0" /><path
710 style="fill:none;stroke:#3465af;stroke-width:28.432024"
711 d="m 471.3559,798.13528 c -13.195,11.99928 -26.39,23.99856 -38.57,36.99778"
712 id="path425"
713 inkscape:connector-curvature="0" /><path
714 style="fill:none;stroke:#3465af;stroke-width:28.432024"
715 d="m 410.4559,859.13162 c -11.165,12.99922 -22.33,26.99838 -33.495,40.99754"
716 id="path427"
717 inkscape:connector-curvature="0" /><path
718 style="fill:none;stroke:#3465af;stroke-width:28.432024"
719 d="m 357.6759,927.12754 c -10.15,13.99916 -19.285,28.99826 -28.42,44.9973"
720 id="path429"
721 inkscape:connector-curvature="0" /><path
722 style="fill:none;stroke:#3465af;stroke-width:28.432024"
723 d="m 314.0309,1000.1232 c -8.12,15.999 -15.225,31.998 -22.33,48.997"
724 id="path431"
725 inkscape:connector-curvature="0" /><path
726 style="fill:none;stroke:#3465af;stroke-width:28.432024"
727 d="m 280.5359,1079.1184 c -5.075,16.999 -10.15,33.998 -14.21,50.997"
728 id="path433"
729 inkscape:connector-curvature="0" /><path
730 style="fill:none;stroke:#3465af;stroke-width:28.432024"
731 d="m 260.2359,1162.1134 c -3.045,17.999 -5.075,34.9979 -6.09,52.9969"
732 id="path435"
733 inkscape:connector-curvature="0" /><path
734 style="fill:none;stroke:#3465af;stroke-width:28.432024"
735 d="m 254.1459,1247.1083 0,52.9969"
736 id="path437"
737 inkscape:connector-curvature="0" /><path
738 style="fill:none;stroke:#3465af;stroke-width:28.432024"
739 d="m 254.1459,1333.1032 0,52.9968"
740 id="path439"
741 inkscape:connector-curvature="0" /><path
742 style="fill:none;stroke:#3465af;stroke-width:28.432024"
743 d="m 254.1459,1418.0981 0,52.9968"
744 id="path441"
745 inkscape:connector-curvature="0" /><path
746 style="fill:none;stroke:#3465af;stroke-width:28.432024"
747 d="m 254.1459,1504.0929 0,52.9968"
748 id="path443"
749 inkscape:connector-curvature="0" /><path
750 style="fill:none;stroke:#3465af;stroke-width:28.432024"
751 d="m 254.1459,1589.0878 0,52.9968"
752 id="path445"
753 inkscape:connector-curvature="0" /><path
754 style="fill:none;stroke:#3465af;stroke-width:28.432024"
755 d="m 254.1459,1675.0827 0,52.9968"
756 id="path447"
757 inkscape:connector-curvature="0" /><path
758 style="fill:none;stroke:#3465af;stroke-width:28.432024"
759 d="m 254.1459,1760.0776 0,52.9968"
760 id="path449"
761 inkscape:connector-curvature="0" /><path
762 style="fill:none;stroke:#3465af;stroke-width:28.432024"
763 d="m 254.1459,1845.0725 0,53.9967"
764 id="path451"
765 inkscape:connector-curvature="0" /><path
766 style="fill:none;stroke:#3465af;stroke-width:28.432024"
767 d="m 254.1459,1931.0673 0,52.9968"
768 id="path453"
769 inkscape:connector-curvature="0" /><path
770 style="fill:none;stroke:#3465af;stroke-width:28.432024"
771 d="m 254.1459,2016.0622 0,52.9968"
772 id="path455"
773 inkscape:connector-curvature="0" /><path
774 style="fill:none;stroke:#3465af;stroke-width:28.432024"
775 d="m 254.1459,2102.057 0,52.9969"
776 id="path457"
777 inkscape:connector-curvature="0" /><path
778 style="fill:none;stroke:#3465af;stroke-width:28.432024"
779 d="m 254.1459,2187.0519 0,52.9969"
780 id="path459"
781 inkscape:connector-curvature="0" /><path
782 style="fill:none;stroke:#3465af;stroke-width:28.432024"
783 d="m 254.1459,2273.0468 0,52.9968"
784 id="path461"
785 inkscape:connector-curvature="0" /><path
786 style="fill:none;stroke:#3465af;stroke-width:28.432024"
787 d="m 254.1459,2358.0417 0,52.9968"
788 id="path463"
789 inkscape:connector-curvature="0" /><path
790 style="fill:none;stroke:#3465af;stroke-width:28.432024"
791 d="m 254.1459,2443.0366 0,53.9967"
792 id="path465"
793 inkscape:connector-curvature="0" /><path
794 style="fill:none;stroke:#3465af;stroke-width:28.432024"
795 d="m 254.1459,2529.0314 0,52.9968"
796 id="path467"
797 inkscape:connector-curvature="0" /><path
798 style="fill:none;stroke:#3465af;stroke-width:28.432024"
799 d="m 254.1459,2614.0263 0,52.9968"
800 id="path469"
801 inkscape:connector-curvature="0" /><path
802 style="fill:none;stroke:#3465af;stroke-width:28.432024"
803 d="m 254.1459,2700.0212 0,52.9968"
804 id="path471"
805 inkscape:connector-curvature="0" /><path
806 style="fill:none;stroke:#3465af;stroke-width:28.432024"
807 d="m 254.1459,2785.0161 0,52.9968"
808 id="path473"
809 inkscape:connector-curvature="0" /><path
810 style="fill:none;stroke:#3465af;stroke-width:28.432024"
811 d="m 254.1459,2871.0109 0,52.9968"
812 id="path475"
813 inkscape:connector-curvature="0" /><path
814 style="fill:none;stroke:#3465af;stroke-width:28.432024"
815 d="m 254.1459,2956.0058 0,52.9968"
816 id="path477"
817 inkscape:connector-curvature="0" /><path
818 style="fill:none;stroke:#3465af;stroke-width:28.432024"
819 d="m 254.1459,3041.0007 0,53.9968"
820 id="path479"
821 inkscape:connector-curvature="0" /><path
822 style="fill:none;stroke:#3465af;stroke-width:28.432024"
823 d="m 254.1459,3126.9955 0,52.9969"
824 id="path481"
825 inkscape:connector-curvature="0" /><path
826 style="fill:none;stroke:#3465af;stroke-width:28.432024"
827 d="m 254.1459,3211.9904 0,52.9969"
828 id="path483"
829 inkscape:connector-curvature="0" /><path
830 style="fill:none;stroke:#3465af;stroke-width:28.432024"
831 d="m 254.1459,3297.9853 0,52.9968"
832 id="path485"
833 inkscape:connector-curvature="0" /><path
834 style="fill:none;stroke:#3465af;stroke-width:28.432024"
835 d="m 254.1459,3382.9802 0,52.9968"
836 id="path487"
837 inkscape:connector-curvature="0" /><path
838 style="fill:none;stroke:#3465af;stroke-width:28.432024"
839 d="m 254.1459,3468.975 0,52.9968"
840 id="path489"
841 inkscape:connector-curvature="0" /><path
842 style="fill:none;stroke:#3465af;stroke-width:28.432024"
843 d="m 254.1459,3553.9699 0,52.9968"
844 id="path491"
845 inkscape:connector-curvature="0" /><path
846 style="fill:none;stroke:#3465af;stroke-width:28.432024"
847 d="m 254.1459,3638.9648 c 0,17.9989 1.015,35.9979 3.045,52.9968"
848 id="path493"
849 inkscape:connector-curvature="0" /><path
850 style="fill:none;stroke:#3465af;stroke-width:28.432024"
851 d="m 262.2659,3723.9597 c 4.06,17.9989 8.12,34.9979 13.195,51.9969"
852 id="path495"
853 inkscape:connector-curvature="0" /><path
854 style="fill:none;stroke:#3465af;stroke-width:28.432024"
855 d="m 285.6109,3806.9547 c 6.09,15.9991 13.195,32.9981 20.3,48.9971"
856 id="path497"
857 inkscape:connector-curvature="0" /><path
858 style="fill:none;stroke:#3465af;stroke-width:28.432024"
859 d="m 321.1359,3884.9501 c 8.12,14.9991 17.255,30.9981 27.405,45.9972"
860 id="path499"
861 inkscape:connector-curvature="0" /><path
862 style="fill:none;stroke:#3465af;stroke-width:28.432024"
863 d="m 366.8109,3957.9457 c 10.15,13.9991 21.315,27.9983 32.48,41.9975"
864 id="path501"
865 inkscape:connector-curvature="0" /><path
866 style="fill:none;stroke:#3465af;stroke-width:28.432024"
867 d="m 420.6059,4023.9417 c 12.18,12.9992 25.375,25.9985 38.57,37.9977"
868 id="path503"
869 inkscape:connector-curvature="0" /><path
870 style="fill:none;stroke:#3465af;stroke-width:28.432024"
871 d="m 483.5359,4083.9381 c 13.195,10.9994 27.405,22.9986 41.615,32.998"
872 id="path505"
873 inkscape:connector-curvature="0" /><path
874 style="fill:none;stroke:#3465af;stroke-width:28.432024"
875 d="m 552.5559,4135.935 c 14.21,9.9994 29.435,18.9989 45.675,26.9984"
876 id="path507"
877 inkscape:connector-curvature="0" /><path
878 style="fill:none;stroke:#3465af;stroke-width:28.432024"
879 d="m 627.6659,4178.9324 c 15.225,6.9996 32.48,14.9991 48.72,20.9988"
880 id="path509"
881 inkscape:connector-curvature="0" /><path
882 style="fill:none;stroke:#3465af;stroke-width:28.432024"
883 d="m 707.8509,4210.9305 c 17.255,4.9997 34.51,9.9994 51.765,13.9992"
884 id="path511"
885 inkscape:connector-curvature="0" /><path
886 style="fill:none;stroke:#3465af;stroke-width:28.432024"
887 d="m 792.0959,4230.9293 c 17.255,1.9999 35.525,3.9998 53.795,4.9997"
888 id="path513"
889 inkscape:connector-curvature="0" /><path
890 style="fill:none;stroke:#3465af;stroke-width:28.432024"
891 d="m 878.3709,4235.929 53.795,0"
892 id="path515"
893 inkscape:connector-curvature="0" /><path
894 style="fill:none;stroke:#3465af;stroke-width:28.432024"
895 d="m 964.6459,4235.929 53.795,0"
896 id="path517"
897 inkscape:connector-curvature="0" /><path
898 style="fill:none;stroke:#3465af;stroke-width:28.432024"
899 d="m 1051.9359,4235.929 53.795,0"
900 id="path519"
901 inkscape:connector-curvature="0" /><path
902 style="fill:none;stroke:#3465af;stroke-width:28.432024"
903 d="m 1138.2109,4235.929 53.795,0"
904 id="path521"
905 inkscape:connector-curvature="0" /><path
906 style="fill:none;stroke:#3465af;stroke-width:28.432024"
907 d="m 1225.5009,4235.929 53.795,0"
908 id="path523"
909 inkscape:connector-curvature="0" /><path
910 style="fill:none;stroke:#3465af;stroke-width:28.432024"
911 d="m 1311.7759,4235.929 53.795,0"
912 id="path525"
913 inkscape:connector-curvature="0" /><path
914 style="fill:none;stroke:#3465af;stroke-width:28.432024"
915 d="m 1398.0509,4235.929 54.81,0"
916 id="path527"
917 inkscape:connector-curvature="0" /><path
918 style="fill:none;stroke:#3465af;stroke-width:28.432024"
919 d="m 1485.3409,4235.929 53.795,0"
920 id="path529"
921 inkscape:connector-curvature="0" /><path
922 style="fill:none;stroke:#3465af;stroke-width:28.432024"
923 d="m 1571.6159,4235.929 53.795,0"
924 id="path531"
925 inkscape:connector-curvature="0" /><path
926 style="fill:none;stroke:#3465af;stroke-width:28.432024"
927 d="m 1658.9059,4235.929 53.795,0"
928 id="path533"
929 inkscape:connector-curvature="0" /><path
930 style="fill:none;stroke:#3465af;stroke-width:28.432024"
931 d="m 1745.1809,4235.929 53.795,0"
932 id="path535"
933 inkscape:connector-curvature="0" /><path
934 style="fill:none;stroke:#3465af;stroke-width:28.432024"
935 d="m 1832.4709,4235.929 53.795,0"
936 id="path537"
937 inkscape:connector-curvature="0" /><path
938 style="fill:none;stroke:#3465af;stroke-width:28.432024"
939 d="m 1918.7459,4235.929 53.795,0"
940 id="path539"
941 inkscape:connector-curvature="0" /><path
942 style="fill:none;stroke:#3465af;stroke-width:28.432024"
943 d="m 2005.0209,4235.929 54.81,0"
944 id="path541"
945 inkscape:connector-curvature="0" /><path
946 style="fill:none;stroke:#3465af;stroke-width:28.432024"
947 d="m 2092.3109,4235.929 53.795,0"
948 id="path543"
949 inkscape:connector-curvature="0" /><path
950 style="fill:none;stroke:#3465af;stroke-width:28.432024"
951 d="m 2178.5859,4235.929 53.795,0"
952 id="path545"
953 inkscape:connector-curvature="0" /><path
954 style="fill:none;stroke:#3465af;stroke-width:28.432024"
955 d="m 2265.8759,4235.929 53.795,0"
956 id="path547"
957 inkscape:connector-curvature="0" /><path
958 style="fill:none;stroke:#3465af;stroke-width:28.432024"
959 d="m 2352.1509,4235.929 53.795,0"
960 id="path549"
961 inkscape:connector-curvature="0" /><path
962 style="fill:none;stroke:#3465af;stroke-width:28.432024"
963 d="m 2439.4409,4235.929 53.795,0"
964 id="path551"
965 inkscape:connector-curvature="0" /><path
966 style="fill:none;stroke:#3465af;stroke-width:28.432024"
967 d="m 2525.7159,4235.929 53.795,0"
968 id="path553"
969 inkscape:connector-curvature="0" /><path
970 style="fill:none;stroke:#3465af;stroke-width:28.432024"
971 d="m 2611.9909,4235.929 54.81,0"
972 id="path555"
973 inkscape:connector-curvature="0" /><path
974 style="fill:none;stroke:#3465af;stroke-width:28.432024"
975 d="m 2699.2809,4235.929 53.795,0"
976 id="path557"
977 inkscape:connector-curvature="0" /><path
978 style="fill:none;stroke:#3465af;stroke-width:28.432024"
979 d="m 2785.5559,4235.929 53.795,0"
980 id="path559"
981 inkscape:connector-curvature="0" /><path
982 style="fill:none;stroke:#3465af;stroke-width:28.432024"
983 d="m 2872.8459,4235.929 53.795,0"
984 id="path561"
985 inkscape:connector-curvature="0" /><path
986 style="fill:none;stroke:#3465af;stroke-width:28.432024"
987 d="m 2959.1209,4235.929 53.795,0"
988 id="path563"
989 inkscape:connector-curvature="0" /><path
990 style="fill:none;stroke:#3465af;stroke-width:28.432024"
991 d="m 3046.4109,4235.929 53.795,0"
992 id="path565"
993 inkscape:connector-curvature="0" /><path
994 style="fill:none;stroke:#3465af;stroke-width:28.432024"
995 d="m 3132.6859,4235.929 53.795,0"
996 id="path567"
997 inkscape:connector-curvature="0" /><path
998 style="fill:none;stroke:#3465af;stroke-width:28.432024"
999 d="m 3219.9759,4235.929 53.795,0"
1000 id="path569"
1001 inkscape:connector-curvature="0" /><path
1002 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1003 d="m 3306.2509,4235.929 53.795,0"
1004 id="path571"
1005 inkscape:connector-curvature="0" /><path
1006 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1007 d="m 3392.5259,4235.929 53.795,0"
1008 id="path573"
1009 inkscape:connector-curvature="0" /><path
1010 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1011 d="m 3479.8159,4235.929 53.795,0"
1012 id="path575"
1013 inkscape:connector-curvature="0" /><path
1014 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1015 d="m 3566.0909,4235.929 53.795,0"
1016 id="path577"
1017 inkscape:connector-curvature="0" /><path
1018 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1019 d="m 3653.3809,4235.929 53.795,0"
1020 id="path579"
1021 inkscape:connector-curvature="0" /><path
1022 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1023 d="m 3739.6559,4235.929 53.795,0"
1024 id="path581"
1025 inkscape:connector-curvature="0" /><path
1026 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1027 d="m 3826.9459,4235.929 53.795,0"
1028 id="path583"
1029 inkscape:connector-curvature="0" /><path
1030 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1031 d="m 3913.2209,4235.929 53.795,0"
1032 id="path585"
1033 inkscape:connector-curvature="0" /><path
1034 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1035 d="m 3999.4959,4235.929 53.795,0"
1036 id="path587"
1037 inkscape:connector-curvature="0" /><path
1038 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1039 d="m 4086.7859,4235.929 53.795,0"
1040 id="path589"
1041 inkscape:connector-curvature="0" /><path
1042 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1043 d="m 4173.0609,4235.929 53.795,0"
1044 id="path591"
1045 inkscape:connector-curvature="0" /><path
1046 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1047 d="m 4260.3509,4235.929 53.795,0"
1048 id="path593"
1049 inkscape:connector-curvature="0" /><path
1050 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1051 d="m 4346.6259,4235.929 53.795,0"
1052 id="path595"
1053 inkscape:connector-curvature="0" /><path
1054 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1055 d="m 4433.9159,4235.929 53.795,0"
1056 id="path597"
1057 inkscape:connector-curvature="0" /><path
1058 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1059 d="m 4520.1909,4235.929 53.795,0"
1060 id="path599"
1061 inkscape:connector-curvature="0" /><path
1062 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1063 d="m 4606.4659,4235.929 54.81,0"
1064 id="path601"
1065 inkscape:connector-curvature="0" /><path
1066 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1067 d="m 4693.7559,4235.929 53.795,0"
1068 id="path603"
1069 inkscape:connector-curvature="0" /><path
1070 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1071 d="m 4780.0309,4235.929 53.795,0"
1072 id="path605"
1073 inkscape:connector-curvature="0" /><path
1074 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1075 d="m 4867.3209,4235.929 53.795,0"
1076 id="path607"
1077 inkscape:connector-curvature="0" /><path
1078 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1079 d="m 4953.5959,4235.929 53.795,0"
1080 id="path609"
1081 inkscape:connector-curvature="0" /><path
1082 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1083 d="m 5040.8859,4235.929 53.795,0"
1084 id="path611"
1085 inkscape:connector-curvature="0" /><path
1086 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1087 d="m 5127.1609,4235.929 53.795,0"
1088 id="path613"
1089 inkscape:connector-curvature="0" /><path
1090 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1091 d="m 5213.4359,4235.929 54.81,0"
1092 id="path615"
1093 inkscape:connector-curvature="0" /><path
1094 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1095 d="m 5300.7259,4235.929 53.795,0"
1096 id="path617"
1097 inkscape:connector-curvature="0" /><path
1098 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1099 d="m 5387.0009,4235.929 53.795,0"
1100 id="path619"
1101 inkscape:connector-curvature="0" /><path
1102 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1103 d="m 5474.2909,4235.929 53.795,0"
1104 id="path621"
1105 inkscape:connector-curvature="0" /><path
1106 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1107 d="m 5560.5659,4235.929 53.795,0"
1108 id="path623"
1109 inkscape:connector-curvature="0" /><path
1110 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1111 d="m 5647.8559,4235.929 53.795,0"
1112 id="path625"
1113 inkscape:connector-curvature="0" /><path
1114 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1115 d="m 5734.1309,4235.929 53.795,0"
1116 id="path627"
1117 inkscape:connector-curvature="0" /><path
1118 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1119 d="m 5820.4059,4235.929 54.81,0"
1120 id="path629"
1121 inkscape:connector-curvature="0" /><path
1122 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1123 d="m 5907.6959,4235.929 53.795,0"
1124 id="path631"
1125 inkscape:connector-curvature="0" /><path
1126 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1127 d="m 5993.9709,4235.929 53.795,0"
1128 id="path633"
1129 inkscape:connector-curvature="0" /><path
1130 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1131 d="m 6081.2609,4235.929 53.795,0"
1132 id="path635"
1133 inkscape:connector-curvature="0" /><path
1134 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1135 d="m 6167.5359,4235.929 53.795,0"
1136 id="path637"
1137 inkscape:connector-curvature="0" /><path
1138 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1139 d="m 6254.8259,4235.929 53.795,0"
1140 id="path639"
1141 inkscape:connector-curvature="0" /><path
1142 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1143 d="m 6341.1009,4235.929 53.795,0"
1144 id="path641"
1145 inkscape:connector-curvature="0" /><path
1146 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1147 d="m 6427.3759,4235.929 54.81,0"
1148 id="path643"
1149 inkscape:connector-curvature="0" /><path
1150 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1151 d="m 6514.6659,4235.929 53.795,0"
1152 id="path645"
1153 inkscape:connector-curvature="0" /><path
1154 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1155 d="m 6600.9409,4235.929 53.795,0"
1156 id="path647"
1157 inkscape:connector-curvature="0" /><path
1158 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1159 d="m 6688.2309,4235.929 53.795,0"
1160 id="path649"
1161 inkscape:connector-curvature="0" /><path
1162 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1163 d="m 6774.5059,4235.929 53.795,0"
1164 id="path651"
1165 inkscape:connector-curvature="0" /><path
1166 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1167 d="m 6861.7959,4235.929 53.795,0"
1168 id="path653"
1169 inkscape:connector-curvature="0" /><path
1170 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1171 d="m 6948.0709,4235.929 53.795,0"
1172 id="path655"
1173 inkscape:connector-curvature="0" /><path
1174 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1175 d="m 7035.3609,4235.929 53.795,0"
1176 id="path657"
1177 inkscape:connector-curvature="0" /><path
1178 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1179 d="m 7121.6359,4235.929 53.795,0"
1180 id="path659"
1181 inkscape:connector-curvature="0" /><path
1182 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1183 d="m 7207.9109,4235.929 53.795,0"
1184 id="path661"
1185 inkscape:connector-curvature="0" /><path
1186 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1187 d="m 7295.2009,4235.929 53.795,0"
1188 id="path663"
1189 inkscape:connector-curvature="0" /><path
1190 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1191 d="m 7381.4759,4235.929 53.795,0"
1192 id="path665"
1193 inkscape:connector-curvature="0" /><path
1194 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1195 d="m 7468.7659,4235.929 53.795,0"
1196 id="path667"
1197 inkscape:connector-curvature="0" /><path
1198 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1199 d="m 7555.0409,4235.929 53.795,0"
1200 id="path669"
1201 inkscape:connector-curvature="0" /><path
1202 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1203 d="m 7642.3309,4235.929 53.795,0"
1204 id="path671"
1205 inkscape:connector-curvature="0" /><path
1206 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1207 d="m 7728.6059,4235.929 53.795,0"
1208 id="path673"
1209 inkscape:connector-curvature="0" /><path
1210 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1211 d="m 7814.8809,4235.929 53.795,0"
1212 id="path675"
1213 inkscape:connector-curvature="0" /><path
1214 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1215 d="m 7902.1709,4235.929 53.795,0"
1216 id="path677"
1217 inkscape:connector-curvature="0" /><path
1218 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1219 d="m 7988.4459,4235.929 53.795,0"
1220 id="path679"
1221 inkscape:connector-curvature="0" /><path
1222 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1223 d="m 8075.7359,4235.929 53.795,0"
1224 id="path681"
1225 inkscape:connector-curvature="0" /><path
1226 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1227 d="m 8162.0109,4235.929 53.795,0"
1228 id="path683"
1229 inkscape:connector-curvature="0" /><path
1230 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1231 d="m 8249.3009,4235.929 53.795,0"
1232 id="path685"
1233 inkscape:connector-curvature="0" /><path
1234 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1235 d="m 8335.5759,4235.929 53.795,0"
1236 id="path687"
1237 inkscape:connector-curvature="0" /><path
1238 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1239 d="m 8421.8509,4235.929 53.795,0"
1240 id="path689"
1241 inkscape:connector-curvature="0" /><path
1242 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1243 d="m 8509.1409,4235.929 53.795,0"
1244 id="path691"
1245 inkscape:connector-curvature="0" /><path
1246 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1247 d="m 8595.4159,4235.929 53.795,0"
1248 id="path693"
1249 inkscape:connector-curvature="0" /><path
1250 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1251 d="m 8682.7059,4235.929 53.795,0"
1252 id="path695"
1253 inkscape:connector-curvature="0" /><path
1254 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1255 d="m 8768.9809,4235.929 53.795,0"
1256 id="path697"
1257 inkscape:connector-curvature="0" /><path
1258 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1259 d="m 8856.2709,4235.929 53.795,0"
1260 id="path699"
1261 inkscape:connector-curvature="0" /><path
1262 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1263 d="m 8942.5459,4235.929 53.795,0"
1264 id="path701"
1265 inkscape:connector-curvature="0" /><path
1266 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1267 d="m 9028.8209,4235.929 54.81,0"
1268 id="path703"
1269 inkscape:connector-curvature="0" /><path
1270 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1271 d="m 9116.1109,4235.929 53.795,0"
1272 id="path705"
1273 inkscape:connector-curvature="0" /><path
1274 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1275 d="m 9202.3859,4235.929 53.795,0"
1276 id="path707"
1277 inkscape:connector-curvature="0" /><path
1278 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1279 d="m 9289.6759,4235.929 53.795,0"
1280 id="path709"
1281 inkscape:connector-curvature="0" /><path
1282 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1283 d="m 9375.9509,4235.929 53.795,0"
1284 id="path711"
1285 inkscape:connector-curvature="0" /><path
1286 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1287 d="m 9463.2409,4235.929 53.795,0"
1288 id="path713"
1289 inkscape:connector-curvature="0" /><path
1290 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1291 d="m 9549.5159,4235.929 53.795,0"
1292 id="path715"
1293 inkscape:connector-curvature="0" /><path
1294 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1295 d="m 9635.7909,4235.929 54.81,0"
1296 id="path717"
1297 inkscape:connector-curvature="0" /><path
1298 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1299 d="m 9723.0809,4235.929 53.795,0"
1300 id="path719"
1301 inkscape:connector-curvature="0" /><path
1302 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1303 d="m 9809.3559,4235.929 53.795,0"
1304 id="path721"
1305 inkscape:connector-curvature="0" /><path
1306 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1307 d="m 9896.6459,4235.929 53.795,0"
1308 id="path723"
1309 inkscape:connector-curvature="0" /><path
1310 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1311 d="m 9982.9209,4235.929 53.7951,0"
1312 id="path725"
1313 inkscape:connector-curvature="0" /><path
1314 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1315 d="m 10070.211,4235.929 53.795,0"
1316 id="path727"
1317 inkscape:connector-curvature="0" /><path
1318 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1319 d="m 10156.486,4235.929 53.795,0"
1320 id="path729"
1321 inkscape:connector-curvature="0" /><path
1322 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1323 d="m 10242.761,4235.929 54.81,0"
1324 id="path731"
1325 inkscape:connector-curvature="0" /><path
1326 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1327 d="m 10330.051,4235.929 53.795,0"
1328 id="path733"
1329 inkscape:connector-curvature="0" /><path
1330 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1331 d="m 10416.326,4235.929 53.795,0"
1332 id="path735"
1333 inkscape:connector-curvature="0" /><path
1334 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1335 d="m 10503.616,4235.929 53.795,0"
1336 id="path737"
1337 inkscape:connector-curvature="0" /><path
1338 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1339 d="m 10589.891,4235.929 53.795,0"
1340 id="path739"
1341 inkscape:connector-curvature="0" /><path
1342 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1343 d="m 10677.181,4235.929 53.795,0"
1344 id="path741"
1345 inkscape:connector-curvature="0" /><path
1346 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1347 d="m 10763.456,4235.929 53.795,0"
1348 id="path743"
1349 inkscape:connector-curvature="0" /><path
1350 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1351 d="m 10849.731,4235.929 54.81,0"
1352 id="path745"
1353 inkscape:connector-curvature="0" /><path
1354 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1355 d="m 10937.021,4235.929 53.795,0"
1356 id="path747"
1357 inkscape:connector-curvature="0" /><path
1358 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1359 d="m 11023.296,4235.929 53.795,0"
1360 id="path749"
1361 inkscape:connector-curvature="0" /><path
1362 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1363 d="m 11110.586,4235.929 53.795,0"
1364 id="path751"
1365 inkscape:connector-curvature="0" /><path
1366 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1367 d="m 11196.861,4235.929 53.795,0"
1368 id="path753"
1369 inkscape:connector-curvature="0" /><path
1370 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1371 d="m 11284.151,4235.929 53.795,0"
1372 id="path755"
1373 inkscape:connector-curvature="0" /><path
1374 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1375 d="m 11370.426,4235.929 53.795,0"
1376 id="path757"
1377 inkscape:connector-curvature="0" /><path
1378 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1379 d="m 11457.716,4235.929 53.795,0"
1380 id="path759"
1381 inkscape:connector-curvature="0" /><path
1382 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1383 d="m 11543.991,4235.929 53.795,0"
1384 id="path761"
1385 inkscape:connector-curvature="0" /><path
1386 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1387 d="m 11630.266,4235.929 53.795,0"
1388 id="path763"
1389 inkscape:connector-curvature="0" /><path
1390 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1391 d="m 11717.556,4235.929 53.795,0"
1392 id="path765"
1393 inkscape:connector-curvature="0" /><path
1394 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1395 d="m 11803.831,4235.929 53.795,0"
1396 id="path767"
1397 inkscape:connector-curvature="0" /><path
1398 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1399 d="m 11891.121,4235.929 53.795,0"
1400 id="path769"
1401 inkscape:connector-curvature="0" /><path
1402 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1403 d="m 11977.396,4235.929 53.795,0"
1404 id="path771"
1405 inkscape:connector-curvature="0" /><path
1406 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1407 d="m 12064.686,4235.929 53.795,0"
1408 id="path773"
1409 inkscape:connector-curvature="0" /><path
1410 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1411 d="m 12150.961,4235.929 53.795,0"
1412 id="path775"
1413 inkscape:connector-curvature="0" /><path
1414 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1415 d="m 12237.236,4235.929 53.795,0"
1416 id="path777"
1417 inkscape:connector-curvature="0" /><path
1418 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1419 d="m 12324.526,4235.929 53.795,0"
1420 id="path779"
1421 inkscape:connector-curvature="0" /><path
1422 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1423 d="m 12410.801,4235.929 53.795,0"
1424 id="path781"
1425 inkscape:connector-curvature="0" /><path
1426 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1427 d="m 12498.091,4235.929 53.795,0"
1428 id="path783"
1429 inkscape:connector-curvature="0" /><path
1430 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1431 d="m 12584.366,4235.929 53.795,0"
1432 id="path785"
1433 inkscape:connector-curvature="0" /><path
1434 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1435 d="m 12671.656,4235.929 53.795,0"
1436 id="path787"
1437 inkscape:connector-curvature="0" /><path
1438 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1439 d="m 12757.931,4235.929 53.795,0"
1440 id="path789"
1441 inkscape:connector-curvature="0" /><path
1442 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1443 d="m 12844.206,4235.929 54.81,0"
1444 id="path791"
1445 inkscape:connector-curvature="0" /><path
1446 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1447 d="m 12931.496,4235.929 53.795,0"
1448 id="path793"
1449 inkscape:connector-curvature="0" /><path
1450 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1451 d="m 13017.771,4235.929 53.795,0"
1452 id="path795"
1453 inkscape:connector-curvature="0" /><path
1454 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1455 d="m 13105.061,4235.929 53.795,0"
1456 id="path797"
1457 inkscape:connector-curvature="0" /><path
1458 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1459 d="m 13191.336,4235.929 53.795,0"
1460 id="path799"
1461 inkscape:connector-curvature="0" /><path
1462 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1463 d="m 13278.626,4235.929 53.795,0"
1464 id="path801"
1465 inkscape:connector-curvature="0" /><path
1466 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1467 d="m 13364.901,4235.929 53.795,0"
1468 id="path803"
1469 inkscape:connector-curvature="0" /><path
1470 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1471 d="m 13451.176,4235.929 54.81,0"
1472 id="path805"
1473 inkscape:connector-curvature="0" /><path
1474 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1475 d="m 13538.466,4235.929 53.795,0"
1476 id="path807"
1477 inkscape:connector-curvature="0" /><path
1478 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1479 d="m 13624.741,4235.929 53.795,0"
1480 id="path809"
1481 inkscape:connector-curvature="0" /><path
1482 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1483 d="m 13712.031,4235.929 53.795,0"
1484 id="path811"
1485 inkscape:connector-curvature="0" /><path
1486 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1487 d="m 13798.306,4235.929 53.795,0"
1488 id="path813"
1489 inkscape:connector-curvature="0" /><path
1490 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1491 d="m 13885.596,4235.929 53.795,0"
1492 id="path815"
1493 inkscape:connector-curvature="0" /><path
1494 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1495 d="m 13971.871,4235.929 53.795,0"
1496 id="path817"
1497 inkscape:connector-curvature="0" /><path
1498 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1499 d="m 14058.146,4235.929 54.81,0"
1500 id="path819"
1501 inkscape:connector-curvature="0" /><path
1502 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1503 d="m 14145.436,4235.929 53.795,0"
1504 id="path821"
1505 inkscape:connector-curvature="0" /><path
1506 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1507 d="m 14231.711,4235.929 53.795,0"
1508 id="path823"
1509 inkscape:connector-curvature="0" /><path
1510 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1511 d="m 14319.001,4235.929 53.795,0"
1512 id="path825"
1513 inkscape:connector-curvature="0" /><path
1514 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1515 d="m 14405.276,4235.929 53.795,0"
1516 id="path827"
1517 inkscape:connector-curvature="0" /><path
1518 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1519 d="m 14492.566,4235.929 53.795,0"
1520 id="path829"
1521 inkscape:connector-curvature="0" /><path
1522 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1523 d="m 14578.841,4235.929 53.795,0"
1524 id="path831"
1525 inkscape:connector-curvature="0" /><path
1526 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1527 d="m 14665.116,4235.929 54.81,0"
1528 id="path833"
1529 inkscape:connector-curvature="0" /><path
1530 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1531 d="m 14752.406,4235.929 53.795,0"
1532 id="path835"
1533 inkscape:connector-curvature="0" /><path
1534 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1535 d="m 14838.681,4235.929 53.795,0"
1536 id="path837"
1537 inkscape:connector-curvature="0" /><path
1538 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1539 d="m 14925.971,4235.929 53.795,0"
1540 id="path839"
1541 inkscape:connector-curvature="0" /><path
1542 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1543 d="m 15012.246,4235.929 53.795,0"
1544 id="path841"
1545 inkscape:connector-curvature="0" /><path
1546 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1547 d="m 15099.536,4235.929 53.795,0"
1548 id="path843"
1549 inkscape:connector-curvature="0" /><path
1550 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1551 d="m 15185.811,4235.929 53.795,0"
1552 id="path845"
1553 inkscape:connector-curvature="0" /><path
1554 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1555 d="m 15272.086,4235.929 54.81,0"
1556 id="path847"
1557 inkscape:connector-curvature="0" /><path
1558 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1559 d="m 15359.376,4235.929 53.795,0"
1560 id="path849"
1561 inkscape:connector-curvature="0" /><path
1562 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1563 d="m 15445.651,4235.929 53.795,0"
1564 id="path851"
1565 inkscape:connector-curvature="0" /><path
1566 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1567 d="m 15532.941,4235.929 53.795,0"
1568 id="path853"
1569 inkscape:connector-curvature="0" /><path
1570 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1571 d="m 15619.216,4235.929 53.795,0"
1572 id="path855"
1573 inkscape:connector-curvature="0" /><path
1574 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1575 d="m 15706.506,4235.929 53.795,0"
1576 id="path857"
1577 inkscape:connector-curvature="0" /><path
1578 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1579 d="m 15792.781,4235.929 53.795,0"
1580 id="path859"
1581 inkscape:connector-curvature="0" /><path
1582 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1583 d="m 15880.071,4235.929 53.795,0"
1584 id="path861"
1585 inkscape:connector-curvature="0" /><path
1586 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1587 d="m 15966.346,4235.929 53.795,0"
1588 id="path863"
1589 inkscape:connector-curvature="0" /><path
1590 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1591 d="m 16052.621,4235.929 53.795,0"
1592 id="path865"
1593 inkscape:connector-curvature="0" /><path
1594 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1595 d="m 16139.911,4235.929 53.795,0"
1596 id="path867"
1597 inkscape:connector-curvature="0" /><path
1598 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1599 d="m 16226.186,4235.929 53.795,0"
1600 id="path869"
1601 inkscape:connector-curvature="0" /><path
1602 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1603 d="m 16313.476,4235.929 53.795,0"
1604 id="path871"
1605 inkscape:connector-curvature="0" /><path
1606 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1607 d="m 16399.751,4235.929 53.795,0"
1608 id="path873"
1609 inkscape:connector-curvature="0" /><path
1610 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1611 d="m 16487.041,4235.929 53.795,0"
1612 id="path875"
1613 inkscape:connector-curvature="0" /><path
1614 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1615 d="m 16573.316,4235.929 53.795,0"
1616 id="path877"
1617 inkscape:connector-curvature="0" /><path
1618 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1619 d="m 16659.591,4235.929 53.795,0"
1620 id="path879"
1621 inkscape:connector-curvature="0" /><path
1622 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1623 d="m 16746.881,4235.929 53.795,0"
1624 id="path881"
1625 inkscape:connector-curvature="0" /><path
1626 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1627 d="m 16833.156,4235.929 53.795,0"
1628 id="path883"
1629 inkscape:connector-curvature="0" /><path
1630 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1631 d="m 16920.446,4235.929 53.795,0"
1632 id="path885"
1633 inkscape:connector-curvature="0" /><path
1634 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1635 d="m 17006.721,4235.929 53.795,0"
1636 id="path887"
1637 inkscape:connector-curvature="0" /><path
1638 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1639 d="m 17094.011,4235.929 53.795,0"
1640 id="path889"
1641 inkscape:connector-curvature="0" /><path
1642 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1643 d="m 17180.286,4235.929 53.795,0"
1644 id="path891"
1645 inkscape:connector-curvature="0" /><path
1646 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1647 d="m 17266.561,4235.929 54.81,0"
1648 id="path893"
1649 inkscape:connector-curvature="0" /><path
1650 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1651 d="m 17353.851,4235.929 53.795,0"
1652 id="path895"
1653 inkscape:connector-curvature="0" /><path
1654 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1655 d="m 17440.126,4235.929 53.795,0"
1656 id="path897"
1657 inkscape:connector-curvature="0" /><path
1658 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1659 d="m 17527.416,4235.929 53.795,0"
1660 id="path899"
1661 inkscape:connector-curvature="0" /><path
1662 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1663 d="m 17613.691,4235.929 53.795,0"
1664 id="path901"
1665 inkscape:connector-curvature="0" /><path
1666 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1667 d="m 17700.981,4235.929 53.795,0"
1668 id="path903"
1669 inkscape:connector-curvature="0" /><path
1670 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1671 d="m 17787.256,4235.929 53.795,0"
1672 id="path905"
1673 inkscape:connector-curvature="0" /><path
1674 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1675 d="m 17873.531,4235.929 54.81,0"
1676 id="path907"
1677 inkscape:connector-curvature="0" /><path
1678 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1679 d="m 17960.821,4235.929 53.795,0"
1680 id="path909"
1681 inkscape:connector-curvature="0" /><path
1682 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1683 d="m 18047.096,4235.929 53.795,0"
1684 id="path911"
1685 inkscape:connector-curvature="0" /><path
1686 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1687 d="m 18134.386,4235.929 53.795,0"
1688 id="path913"
1689 inkscape:connector-curvature="0" /><path
1690 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1691 d="m 18220.661,4235.929 53.795,0"
1692 id="path915"
1693 inkscape:connector-curvature="0" /><path
1694 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1695 d="m 18307.951,4235.929 53.795,0"
1696 id="path917"
1697 inkscape:connector-curvature="0" /><path
1698 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1699 d="m 18394.226,4235.929 53.795,0"
1700 id="path919"
1701 inkscape:connector-curvature="0" /><path
1702 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1703 d="m 18480.501,4235.929 54.81,0"
1704 id="path921"
1705 inkscape:connector-curvature="0" /><path
1706 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1707 d="m 18567.791,4235.929 53.795,0"
1708 id="path923"
1709 inkscape:connector-curvature="0" /><path
1710 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1711 d="m 18654.066,4235.929 53.795,0"
1712 id="path925"
1713 inkscape:connector-curvature="0" /><path
1714 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1715 d="m 18741.356,4235.929 c 17.255,-0.9999 35.525,-1.9999 53.795,-4.9997"
1716 id="path927"
1717 inkscape:connector-curvature="0" /><path
1718 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1719 d="m 18827.631,4225.9296 c 17.255,-3.9998 34.51,-8.9995 51.765,-13.9992"
1720 id="path929"
1721 inkscape:connector-curvature="0" /><path
1722 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1723 d="m 18910.861,4200.9311 c 16.24,-5.9996 32.48,-12.9992 48.72,-20.9987"
1724 id="path931"
1725 inkscape:connector-curvature="0" /><path
1726 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1727 d="m 18989.016,4164.9333 c 15.225,-7.9996 31.465,-16.999 45.675,-26.9984"
1728 id="path933"
1729 inkscape:connector-curvature="0" /><path
1730 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1731 d="m 19062.096,4118.936 c 14.21,-9.9994 28.42,-20.9987 42.63,-31.9981"
1732 id="path935"
1733 inkscape:connector-curvature="0" /><path
1734 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1735 d="m 19129.086,4064.9393 c 13.195,-11.9993 25.375,-24.9985 37.555,-37.9978"
1736 id="path937"
1737 inkscape:connector-curvature="0" /><path
1738 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1739 d="m 19188.971,4002.943 c 11.165,-13.9992 22.33,-27.9983 33.495,-41.9975"
1740 id="path939"
1741 inkscape:connector-curvature="0" /><path
1742 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1743 d="m 19240.736,3933.9471 c 10.15,-14.9991 19.285,-29.9982 27.405,-44.9973"
1744 id="path941"
1745 inkscape:connector-curvature="0" /><path
1746 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1747 d="m 19283.366,3859.9516 c 7.105,-15.9991 14.21,-32.9981 20.3,-48.9971"
1748 id="path943"
1749 inkscape:connector-curvature="0" /><path
1750 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1751 d="m 19314.831,3779.9564 c 5.075,-16.999 9.135,-33.998 13.195,-50.997"
1752 id="path945"
1753 inkscape:connector-curvature="0" /><path
1754 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1755 d="m 19333.101,3696.9613 c 2.03,-17.9989 4.06,-34.9979 4.06,-52.9968"
1756 id="path947"
1757 inkscape:connector-curvature="0" /><path
1758 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1759 d="m 19337.161,3611.9664 0,-53.9967"
1760 id="path949"
1761 inkscape:connector-curvature="0" /><path
1762 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1763 d="m 19337.161,3525.9716 0,-52.9968"
1764 id="path951"
1765 inkscape:connector-curvature="0" /><path
1766 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1767 d="m 19337.161,3440.9767 0,-52.9968"
1768 id="path953"
1769 inkscape:connector-curvature="0" /><path
1770 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1771 d="m 19337.161,3354.9819 0,-52.9969"
1772 id="path955"
1773 inkscape:connector-curvature="0" /><path
1774 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1775 d="m 19337.161,3269.987 0,-52.9969"
1776 id="path957"
1777 inkscape:connector-curvature="0" /><path
1778 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1779 d="m 19337.161,3183.9921 0,-52.9968"
1780 id="path959"
1781 inkscape:connector-curvature="0" /><path
1782 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1783 d="m 19337.161,3098.9972 0,-52.9968"
1784 id="path961"
1785 inkscape:connector-curvature="0" /><path
1786 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1787 d="m 19337.161,3014.0023 0,-53.9967"
1788 id="path963"
1789 inkscape:connector-curvature="0" /><path
1790 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1791 d="m 19337.161,2928.0075 0,-52.9968"
1792 id="path965"
1793 inkscape:connector-curvature="0" /><path
1794 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1795 d="m 19337.161,2843.0126 0,-52.9968"
1796 id="path967"
1797 inkscape:connector-curvature="0" /><path
1798 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1799 d="m 19337.161,2757.0177 0,-52.9968"
1800 id="path969"
1801 inkscape:connector-curvature="0" /><path
1802 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1803 d="m 19337.161,2672.0228 0,-52.9968"
1804 id="path971"
1805 inkscape:connector-curvature="0" /><path
1806 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1807 d="m 19337.161,2586.028 0,-52.9968"
1808 id="path973"
1809 inkscape:connector-curvature="0" /><path
1810 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1811 d="m 19337.161,2501.0331 0,-52.9968"
1812 id="path975"
1813 inkscape:connector-curvature="0" /><path
1814 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1815 d="m 19337.161,2415.0383 0,-52.9969"
1816 id="path977"
1817 inkscape:connector-curvature="0" /><path
1818 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1819 d="m 19337.161,2330.0434 0,-52.9969"
1820 id="path979"
1821 inkscape:connector-curvature="0" /><path
1822 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1823 d="m 19337.161,2245.0485 0,-52.9969"
1824 id="path981"
1825 inkscape:connector-curvature="0" /><path
1826 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1827 d="m 19337.161,2159.0536 0,-52.9968"
1828 id="path983"
1829 inkscape:connector-curvature="0" /><path
1830 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1831 d="m 19337.161,2074.0587 0,-52.9968"
1832 id="path985"
1833 inkscape:connector-curvature="0" /><path
1834 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1835 d="m 19337.161,1988.0639 0,-52.9968"
1836 id="path987"
1837 inkscape:connector-curvature="0" /><path
1838 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1839 d="m 19337.161,1903.069 0,-52.9968"
1840 id="path989"
1841 inkscape:connector-curvature="0" /><path
1842 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1843 d="m 19337.161,1817.0741 0,-52.9968"
1844 id="path991"
1845 inkscape:connector-curvature="0" /><path
1846 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1847 d="m 19337.161,1732.0792 0,-52.9968"
1848 id="path993"
1849 inkscape:connector-curvature="0" /><path
1850 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1851 d="m 19337.161,1647.0843 0,-52.9968"
1852 id="path995"
1853 inkscape:connector-curvature="0" /><path
1854 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1855 d="m 19337.161,1561.0895 0,-52.9968"
1856 id="path997"
1857 inkscape:connector-curvature="0" /><path
1858 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1859 d="m 19337.161,1476.0946 0,-52.9968"
1860 id="path999"
1861 inkscape:connector-curvature="0" /><path
1862 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1863 d="m 19337.161,1390.0998 0,-52.9969"
1864 id="path1001"
1865 inkscape:connector-curvature="0" /><path
1866 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1867 d="m 19337.161,1305.1049 0,-52.9969"
1868 id="path1003"
1869 inkscape:connector-curvature="0" /><path
1870 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1871 d="m 19337.161,1219.11 c -1.015,-16.999 -3.045,-34.9979 -5.075,-51.9969"
1872 id="path1005"
1873 inkscape:connector-curvature="0" /><path
1874 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1875 d="m 19325.996,1135.1151 c -4.06,-16.999 -8.12,-34.9979 -14.21,-50.997"
1876 id="path1007"
1877 inkscape:connector-curvature="0" /><path
1878 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1879 d="m 19300.621,1053.12 c -6.09,-15.9991 -13.195,-32.998 -21.315,-48.9971"
1880 id="path1009"
1881 inkscape:connector-curvature="0" /><path
1882 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1883 d="m 19264.081,976.1246 c -9.135,-15.99904 -18.27,-30.99814 -28.42,-45.99724"
1884 id="path1011"
1885 inkscape:connector-curvature="0" /><path
1886 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1887 d="m 19216.376,904.12892 c -10.15,-13.99916 -21.315,-27.99832 -33.495,-41.99748"
1888 id="path1013"
1889 inkscape:connector-curvature="0" /><path
1890 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1891 d="m 19160.551,838.13288 c -12.18,-12.99922 -24.36,-24.9985 -37.555,-36.99778"
1892 id="path1015"
1893 inkscape:connector-curvature="0" /><path
1894 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1895 d="m 19097.621,780.13636 c -14.21,-11.99928 -28.42,-21.99868 -42.63,-32.99802"
1896 id="path1017"
1897 inkscape:connector-curvature="0" /><path
1898 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1899 d="m 19027.586,729.13942 c -15.225,-8.99946 -30.45,-17.99892 -46.69,-26.99838"
1900 id="path1019"
1901 inkscape:connector-curvature="0" /><path
1902 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1903 d="m 18951.461,688.14188 c -16.24,-7.99952 -32.48,-13.99916 -49.735,-19.9988"
1904 id="path1021"
1905 inkscape:connector-curvature="0" /><path
1906 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1907 d="m 18870.261,657.14374 c -17.255,-4.9997 -34.51,-8.99946 -51.765,-11.99928"
1908 id="path1023"
1909 inkscape:connector-curvature="0" /><path
1910 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1911 d="m 18786.016,640.14476 c -18.27,-2.99982 -35.525,-3.99976 -53.795,-3.99976"
1912 id="path1025"
1913 inkscape:connector-curvature="0" /><path
1914 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1915 d="m 18699.741,636.145 -53.795,0"
1916 id="path1027"
1917 inkscape:connector-curvature="0" /><path
1918 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1919 d="m 18612.451,636.145 -53.795,0"
1920 id="path1029"
1921 inkscape:connector-curvature="0" /><path
1922 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1923 d="m 18526.176,636.145 -53.795,0"
1924 id="path1031"
1925 inkscape:connector-curvature="0" /><path
1926 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1927 d="m 18438.886,636.145 -53.795,0"
1928 id="path1033"
1929 inkscape:connector-curvature="0" /><path
1930 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1931 d="m 18352.611,636.145 -53.795,0"
1932 id="path1035"
1933 inkscape:connector-curvature="0" /><path
1934 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1935 d="m 18266.336,636.145 -54.81,0"
1936 id="path1037"
1937 inkscape:connector-curvature="0" /><path
1938 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1939 d="m 18179.046,636.145 -53.795,0"
1940 id="path1039"
1941 inkscape:connector-curvature="0" /><path
1942 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1943 d="m 18092.771,636.145 -53.795,0"
1944 id="path1041"
1945 inkscape:connector-curvature="0" /><path
1946 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1947 d="m 18005.481,636.145 -53.795,0"
1948 id="path1043"
1949 inkscape:connector-curvature="0" /><path
1950 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1951 d="m 17919.206,636.145 -53.795,0"
1952 id="path1045"
1953 inkscape:connector-curvature="0" /><path
1954 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1955 d="m 17831.916,636.145 -53.795,0"
1956 id="path1047"
1957 inkscape:connector-curvature="0" /><path
1958 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1959 d="m 17745.641,636.145 -53.795,0"
1960 id="path1049"
1961 inkscape:connector-curvature="0" /><path
1962 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1963 d="m 17659.366,636.145 -54.81,0"
1964 id="path1051"
1965 inkscape:connector-curvature="0" /><path
1966 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1967 d="m 17572.076,636.145 -53.795,0"
1968 id="path1053"
1969 inkscape:connector-curvature="0" /><path
1970 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1971 d="m 17485.801,636.145 -53.795,0"
1972 id="path1055"
1973 inkscape:connector-curvature="0" /><path
1974 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1975 d="m 17398.511,636.145 -53.795,0"
1976 id="path1057"
1977 inkscape:connector-curvature="0" /><path
1978 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1979 d="m 17312.236,636.145 -53.795,0"
1980 id="path1059"
1981 inkscape:connector-curvature="0" /><path
1982 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1983 d="m 17224.946,636.145 -53.795,0"
1984 id="path1061"
1985 inkscape:connector-curvature="0" /><path
1986 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1987 d="m 17138.671,636.145 -53.795,0"
1988 id="path1063"
1989 inkscape:connector-curvature="0" /><path
1990 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1991 d="m 17052.396,636.145 -54.81,0"
1992 id="path1065"
1993 inkscape:connector-curvature="0" /><path
1994 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1995 d="m 16965.106,636.145 -53.795,0"
1996 id="path1067"
1997 inkscape:connector-curvature="0" /><path
1998 style="fill:none;stroke:#3465af;stroke-width:28.432024"
1999 d="m 16878.831,636.145 -53.795,0"
2000 id="path1069"
2001 inkscape:connector-curvature="0" /><path
2002 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2003 d="m 16791.541,636.145 -53.795,0"
2004 id="path1071"
2005 inkscape:connector-curvature="0" /><path
2006 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2007 d="m 16705.266,636.145 -53.795,0"
2008 id="path1073"
2009 inkscape:connector-curvature="0" /><path
2010 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2011 d="m 16617.976,636.145 -53.795,0"
2012 id="path1075"
2013 inkscape:connector-curvature="0" /><path
2014 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2015 d="m 16531.701,636.145 -53.795,0"
2016 id="path1077"
2017 inkscape:connector-curvature="0" /><path
2018 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2019 d="m 16445.426,636.145 -54.81,0"
2020 id="path1079"
2021 inkscape:connector-curvature="0" /><path
2022 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2023 d="m 16358.136,636.145 -53.795,0"
2024 id="path1081"
2025 inkscape:connector-curvature="0" /><path
2026 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2027 d="m 16271.861,636.145 -53.795,0"
2028 id="path1083"
2029 inkscape:connector-curvature="0" /><path
2030 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2031 d="m 16184.571,636.145 -53.795,0"
2032 id="path1085"
2033 inkscape:connector-curvature="0" /><path
2034 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2035 d="m 16098.296,636.145 -53.795,0"
2036 id="path1087"
2037 inkscape:connector-curvature="0" /><path
2038 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2039 d="m 16011.006,636.145 -53.795,0"
2040 id="path1089"
2041 inkscape:connector-curvature="0" /><path
2042 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2043 d="m 15924.731,636.145 -53.795,0"
2044 id="path1091"
2045 inkscape:connector-curvature="0" /><path
2046 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2047 d="m 15837.441,636.145 -53.795,0"
2048 id="path1093"
2049 inkscape:connector-curvature="0" /><path
2050 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2051 d="m 15751.166,636.145 -53.795,0"
2052 id="path1095"
2053 inkscape:connector-curvature="0" /><path
2054 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2055 d="m 15664.891,636.145 -53.795,0"
2056 id="path1097"
2057 inkscape:connector-curvature="0" /><path
2058 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2059 d="m 15577.601,636.145 -53.795,0"
2060 id="path1099"
2061 inkscape:connector-curvature="0" /><path
2062 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2063 d="m 15491.326,636.145 -53.795,0"
2064 id="path1101"
2065 inkscape:connector-curvature="0" /><path
2066 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2067 d="m 15404.036,636.145 -53.795,0"
2068 id="path1103"
2069 inkscape:connector-curvature="0" /><path
2070 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2071 d="m 15317.761,636.145 -53.795,0"
2072 id="path1105"
2073 inkscape:connector-curvature="0" /><path
2074 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2075 d="m 15230.471,636.145 -53.795,0"
2076 id="path1107"
2077 inkscape:connector-curvature="0" /><path
2078 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2079 d="m 15144.196,636.145 -53.795,0"
2080 id="path1109"
2081 inkscape:connector-curvature="0" /><path
2082 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2083 d="m 15057.921,636.145 -53.795,0"
2084 id="path1111"
2085 inkscape:connector-curvature="0" /><path
2086 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2087 d="m 14970.631,636.145 -53.795,0"
2088 id="path1113"
2089 inkscape:connector-curvature="0" /><path
2090 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2091 d="m 14884.356,636.145 -53.795,0"
2092 id="path1115"
2093 inkscape:connector-curvature="0" /><path
2094 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2095 d="m 14797.066,636.145 -53.795,0"
2096 id="path1117"
2097 inkscape:connector-curvature="0" /><path
2098 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2099 d="m 14710.791,636.145 -53.795,0"
2100 id="path1119"
2101 inkscape:connector-curvature="0" /><path
2102 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2103 d="m 14623.501,636.145 -53.795,0"
2104 id="path1121"
2105 inkscape:connector-curvature="0" /><path
2106 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2107 d="m 14537.226,636.145 -53.795,0"
2108 id="path1123"
2109 inkscape:connector-curvature="0" /><path
2110 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2111 d="m 14450.951,636.145 -54.81,0"
2112 id="path1125"
2113 inkscape:connector-curvature="0" /><path
2114 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2115 d="m 14363.661,636.145 -53.795,0"
2116 id="path1127"
2117 inkscape:connector-curvature="0" /><path
2118 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2119 d="m 14277.386,636.145 -53.795,0"
2120 id="path1129"
2121 inkscape:connector-curvature="0" /><path
2122 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2123 d="m 14190.096,636.145 -53.795,0"
2124 id="path1131"
2125 inkscape:connector-curvature="0" /><path
2126 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2127 d="m 14103.821,636.145 -53.795,0"
2128 id="path1133"
2129 inkscape:connector-curvature="0" /><path
2130 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2131 d="m 14016.531,636.145 -53.795,0"
2132 id="path1135"
2133 inkscape:connector-curvature="0" /><path
2134 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2135 d="m 13930.256,636.145 -53.795,0"
2136 id="path1137"
2137 inkscape:connector-curvature="0" /><path
2138 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2139 d="m 13843.981,636.145 -54.81,0"
2140 id="path1139"
2141 inkscape:connector-curvature="0" /><path
2142 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2143 d="m 13756.691,636.145 -53.795,0"
2144 id="path1141"
2145 inkscape:connector-curvature="0" /><path
2146 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2147 d="m 13670.416,636.145 -53.795,0"
2148 id="path1143"
2149 inkscape:connector-curvature="0" /><path
2150 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2151 d="m 13583.126,636.145 -53.795,0"
2152 id="path1145"
2153 inkscape:connector-curvature="0" /><path
2154 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2155 d="m 13496.851,636.145 -53.795,0"
2156 id="path1147"
2157 inkscape:connector-curvature="0" /><path
2158 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2159 d="m 13409.561,636.145 -53.795,0"
2160 id="path1149"
2161 inkscape:connector-curvature="0" /><path
2162 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2163 d="m 13323.286,636.145 -53.795,0"
2164 id="path1151"
2165 inkscape:connector-curvature="0" /><path
2166 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2167 d="m 13237.011,636.145 -54.81,0"
2168 id="path1153"
2169 inkscape:connector-curvature="0" /><path
2170 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2171 d="m 13149.721,636.145 -53.795,0"
2172 id="path1155"
2173 inkscape:connector-curvature="0" /><path
2174 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2175 d="m 13063.446,636.145 -53.795,0"
2176 id="path1157"
2177 inkscape:connector-curvature="0" /><path
2178 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2179 d="m 12976.156,636.145 -53.795,0"
2180 id="path1159"
2181 inkscape:connector-curvature="0" /><path
2182 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2183 d="m 12889.881,636.145 -53.795,0"
2184 id="path1161"
2185 inkscape:connector-curvature="0" /><path
2186 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2187 d="m 12802.591,636.145 -53.795,0"
2188 id="path1163"
2189 inkscape:connector-curvature="0" /><path
2190 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2191 d="m 12716.316,636.145 -53.795,0"
2192 id="path1165"
2193 inkscape:connector-curvature="0" /><path
2194 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2195 d="m 12630.041,636.145 -54.81,0"
2196 id="path1167"
2197 inkscape:connector-curvature="0" /><path
2198 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2199 d="m 12542.751,636.145 -53.795,0"
2200 id="path1169"
2201 inkscape:connector-curvature="0" /><path
2202 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2203 d="m 12456.476,636.145 -53.795,0"
2204 id="path1171"
2205 inkscape:connector-curvature="0" /><path
2206 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2207 d="m 12369.186,636.145 -53.795,0"
2208 id="path1173"
2209 inkscape:connector-curvature="0" /><path
2210 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2211 d="m 12282.911,636.145 -53.795,0"
2212 id="path1175"
2213 inkscape:connector-curvature="0" /><path
2214 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2215 d="m 12195.621,636.145 -53.795,0"
2216 id="path1177"
2217 inkscape:connector-curvature="0" /><path
2218 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2219 d="m 12109.346,636.145 -53.795,0"
2220 id="path1179"
2221 inkscape:connector-curvature="0" /><path
2222 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2223 d="m 12022.056,636.145 -53.795,0"
2224 id="path1181"
2225 inkscape:connector-curvature="0" /><path
2226 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2227 d="m 11935.781,636.145 -53.795,0"
2228 id="path1183"
2229 inkscape:connector-curvature="0" /><path
2230 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2231 d="m 11849.506,636.145 -53.795,0"
2232 id="path1185"
2233 inkscape:connector-curvature="0" /><path
2234 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2235 d="m 11762.216,636.145 -53.795,0"
2236 id="path1187"
2237 inkscape:connector-curvature="0" /><path
2238 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2239 d="m 11675.941,636.145 -53.795,0"
2240 id="path1189"
2241 inkscape:connector-curvature="0" /><path
2242 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2243 d="m 11588.651,636.145 -53.795,0"
2244 id="path1191"
2245 inkscape:connector-curvature="0" /><path
2246 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2247 d="m 11502.376,636.145 -53.795,0"
2248 id="path1193"
2249 inkscape:connector-curvature="0" /><path
2250 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2251 d="m 11415.086,636.145 -53.795,0"
2252 id="path1195"
2253 inkscape:connector-curvature="0" /><path
2254 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2255 d="m 11328.811,636.145 -53.795,0"
2256 id="path1197"
2257 inkscape:connector-curvature="0" /><path
2258 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2259 d="m 11242.536,636.145 -53.795,0"
2260 id="path1199"
2261 inkscape:connector-curvature="0" /><path
2262 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2263 d="m 11155.246,636.145 -53.795,0"
2264 id="path1201"
2265 inkscape:connector-curvature="0" /><path
2266 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2267 d="m 11068.971,636.145 -53.795,0"
2268 id="path1203"
2269 inkscape:connector-curvature="0" /><path
2270 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2271 d="m 10981.681,636.145 -53.795,0"
2272 id="path1205"
2273 inkscape:connector-curvature="0" /><path
2274 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2275 d="m 10895.406,636.145 -53.795,0"
2276 id="path1207"
2277 inkscape:connector-curvature="0" /><path
2278 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2279 d="m 10808.116,636.145 -53.795,0"
2280 id="path1209"
2281 inkscape:connector-curvature="0" /><path
2282 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2283 d="m 10721.841,636.145 -53.795,0"
2284 id="path1211"
2285 inkscape:connector-curvature="0" /><path
2286 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2287 d="m 10635.566,636.145 -53.795,0"
2288 id="path1213"
2289 inkscape:connector-curvature="0" /><path
2290 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2291 d="m 10548.276,636.145 -53.795,0"
2292 id="path1215"
2293 inkscape:connector-curvature="0" /><path
2294 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2295 d="m 10462.001,636.145 -53.795,0"
2296 id="path1217"
2297 inkscape:connector-curvature="0" /><path
2298 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2299 d="m 10374.711,636.145 -53.795,0"
2300 id="path1219"
2301 inkscape:connector-curvature="0" /><path
2302 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2303 d="m 10288.436,636.145 -53.795,0"
2304 id="path1221"
2305 inkscape:connector-curvature="0" /><path
2306 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2307 d="m 10201.146,636.145 -53.795,0"
2308 id="path1223"
2309 inkscape:connector-curvature="0" /><path
2310 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2311 d="m 10114.871,636.145 -53.795,0"
2312 id="path1225"
2313 inkscape:connector-curvature="0" /><path
2314 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2315 d="m 10028.596,636.145 -54.8101,0"
2316 id="path1227"
2317 inkscape:connector-curvature="0" /><path
2318 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2319 d="m 9941.3059,636.145 -53.795,0"
2320 id="path1229"
2321 inkscape:connector-curvature="0" /><path
2322 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2323 d="m 9855.0309,636.145 -53.795,0"
2324 id="path1231"
2325 inkscape:connector-curvature="0" /><path
2326 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2327 d="m 9767.7409,636.145 -53.795,0"
2328 id="path1233"
2329 inkscape:connector-curvature="0" /><path
2330 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2331 d="m 9681.4659,636.145 -53.795,0"
2332 id="path1235"
2333 inkscape:connector-curvature="0" /><path
2334 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2335 d="m 9594.1759,636.145 -53.795,0"
2336 id="path1237"
2337 inkscape:connector-curvature="0" /><path
2338 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2339 d="m 9507.9009,636.145 -53.795,0"
2340 id="path1239"
2341 inkscape:connector-curvature="0" /><path
2342 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2343 d="m 9421.6259,636.145 -54.81,0"
2344 id="path1241"
2345 inkscape:connector-curvature="0" /><path
2346 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2347 d="m 9334.3359,636.145 -53.795,0"
2348 id="path1243"
2349 inkscape:connector-curvature="0" /><path
2350 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2351 d="m 9248.0609,636.145 -53.795,0"
2352 id="path1245"
2353 inkscape:connector-curvature="0" /><path
2354 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2355 d="m 9160.7709,636.145 -53.795,0"
2356 id="path1247"
2357 inkscape:connector-curvature="0" /><path
2358 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2359 d="m 9074.4959,636.145 -53.795,0"
2360 id="path1249"
2361 inkscape:connector-curvature="0" /><path
2362 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2363 d="m 8987.2059,636.145 -53.795,0"
2364 id="path1251"
2365 inkscape:connector-curvature="0" /><path
2366 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2367 d="m 8900.9309,636.145 -53.795,0"
2368 id="path1253"
2369 inkscape:connector-curvature="0" /><path
2370 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2371 d="m 8814.6559,636.145 -54.81,0"
2372 id="path1255"
2373 inkscape:connector-curvature="0" /><path
2374 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2375 d="m 8727.3659,636.145 -53.795,0"
2376 id="path1257"
2377 inkscape:connector-curvature="0" /><path
2378 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2379 d="m 8641.0909,636.145 -53.795,0"
2380 id="path1259"
2381 inkscape:connector-curvature="0" /><path
2382 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2383 d="m 8553.8009,636.145 -53.795,0"
2384 id="path1261"
2385 inkscape:connector-curvature="0" /><path
2386 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2387 d="m 8467.5259,636.145 -53.795,0"
2388 id="path1263"
2389 inkscape:connector-curvature="0" /><path
2390 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2391 d="m 8380.2359,636.145 -53.795,0"
2392 id="path1265"
2393 inkscape:connector-curvature="0" /><path
2394 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2395 d="m 8293.9609,636.145 -53.795,0"
2396 id="path1267"
2397 inkscape:connector-curvature="0" /><path
2398 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2399 d="m 8207.6859,636.145 -54.81,0"
2400 id="path1269"
2401 inkscape:connector-curvature="0" /><path
2402 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2403 d="m 8120.3959,636.145 -53.795,0"
2404 id="path1271"
2405 inkscape:connector-curvature="0" /><path
2406 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2407 d="m 8034.1209,636.145 -53.795,0"
2408 id="path1273"
2409 inkscape:connector-curvature="0" /><path
2410 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2411 d="m 7946.8309,636.145 -53.795,0"
2412 id="path1275"
2413 inkscape:connector-curvature="0" /><path
2414 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2415 d="m 7860.5559,636.145 -53.795,0"
2416 id="path1277"
2417 inkscape:connector-curvature="0" /><path
2418 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2419 d="m 7773.2659,636.145 -53.795,0"
2420 id="path1279"
2421 inkscape:connector-curvature="0" /><path
2422 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2423 d="m 7686.9909,636.145 -53.795,0"
2424 id="path1281"
2425 inkscape:connector-curvature="0" /><path
2426 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2427 d="m 7599.7009,636.145 -53.795,0"
2428 id="path1283"
2429 inkscape:connector-curvature="0" /><path
2430 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2431 d="m 7513.4259,636.145 -53.795,0"
2432 id="path1285"
2433 inkscape:connector-curvature="0" /><path
2434 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2435 d="m 7427.1509,636.145 -53.795,0"
2436 id="path1287"
2437 inkscape:connector-curvature="0" /><path
2438 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2439 d="m 7339.8609,636.145 -53.795,0"
2440 id="path1289"
2441 inkscape:connector-curvature="0" /><path
2442 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2443 d="m 7253.5859,636.145 -53.795,0"
2444 id="path1291"
2445 inkscape:connector-curvature="0" /><path
2446 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2447 d="m 7166.2959,636.145 -53.795,0"
2448 id="path1293"
2449 inkscape:connector-curvature="0" /><path
2450 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2451 d="m 7080.0209,636.145 -53.795,0"
2452 id="path1295"
2453 inkscape:connector-curvature="0" /><path
2454 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2455 d="m 6992.7309,636.145 -53.795,0"
2456 id="path1297"
2457 inkscape:connector-curvature="0" /><path
2458 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2459 d="m 6906.4559,636.145 -53.795,0"
2460 id="path1299"
2461 inkscape:connector-curvature="0" /><path
2462 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2463 d="m 6820.1809,636.145 -53.795,0"
2464 id="path1301"
2465 inkscape:connector-curvature="0" /><path
2466 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2467 d="m 6732.8909,636.145 -53.795,0"
2468 id="path1303"
2469 inkscape:connector-curvature="0" /><path
2470 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2471 d="m 6646.6159,636.145 -53.795,0"
2472 id="path1305"
2473 inkscape:connector-curvature="0" /><path
2474 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2475 d="m 6559.3259,636.145 -53.795,0"
2476 id="path1307"
2477 inkscape:connector-curvature="0" /><path
2478 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2479 d="m 6473.0509,636.145 -53.795,0"
2480 id="path1309"
2481 inkscape:connector-curvature="0" /><path
2482 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2483 d="m 6385.7609,636.145 -53.795,0"
2484 id="path1311"
2485 inkscape:connector-curvature="0" /><path
2486 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2487 d="m 6299.4859,636.145 -53.795,0"
2488 id="path1313"
2489 inkscape:connector-curvature="0" /><path
2490 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2491 d="m 6213.2109,636.145 -54.81,0"
2492 id="path1315"
2493 inkscape:connector-curvature="0" /><path
2494 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2495 d="m 6125.9209,636.145 -53.795,0"
2496 id="path1317"
2497 inkscape:connector-curvature="0" /><path
2498 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2499 d="m 6039.6459,636.145 -53.795,0"
2500 id="path1319"
2501 inkscape:connector-curvature="0" /><path
2502 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2503 d="m 5952.3559,636.145 -53.795,0"
2504 id="path1321"
2505 inkscape:connector-curvature="0" /><path
2506 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2507 d="m 5866.0809,636.145 -53.795,0"
2508 id="path1323"
2509 inkscape:connector-curvature="0" /><path
2510 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2511 d="m 5778.7909,636.145 -53.795,0"
2512 id="path1325"
2513 inkscape:connector-curvature="0" /><path
2514 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2515 d="m 5692.5159,636.145 -53.795,0"
2516 id="path1327"
2517 inkscape:connector-curvature="0" /><path
2518 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2519 d="m 5606.2409,636.145 -54.81,0"
2520 id="path1329"
2521 inkscape:connector-curvature="0" /><path
2522 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2523 d="m 5518.9509,636.145 -53.795,0"
2524 id="path1331"
2525 inkscape:connector-curvature="0" /><path
2526 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2527 d="m 5432.6759,636.145 -53.795,0"
2528 id="path1333"
2529 inkscape:connector-curvature="0" /><path
2530 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2531 d="m 5345.3859,636.145 -53.795,0"
2532 id="path1335"
2533 inkscape:connector-curvature="0" /><path
2534 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2535 d="m 5259.1109,636.145 -53.795,0"
2536 id="path1337"
2537 inkscape:connector-curvature="0" /><path
2538 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2539 d="m 5171.8209,636.145 -53.795,0"
2540 id="path1339"
2541 inkscape:connector-curvature="0" /><path
2542 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2543 d="m 5085.5459,636.145 -53.795,0"
2544 id="path1341"
2545 inkscape:connector-curvature="0" /><path
2546 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2547 d="m 4999.2709,636.145 -54.81,0"
2548 id="path1343"
2549 inkscape:connector-curvature="0" /><path
2550 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2551 d="m 4911.9809,636.145 -53.795,0"
2552 id="path1345"
2553 inkscape:connector-curvature="0" /><path
2554 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2555 d="m 4825.7059,636.145 -53.795,0"
2556 id="path1347"
2557 inkscape:connector-curvature="0" /><path
2558 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2559 d="m 4738.4159,636.145 -53.795,0"
2560 id="path1349"
2561 inkscape:connector-curvature="0" /><path
2562 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2563 d="m 4652.1409,636.145 -53.795,0"
2564 id="path1351"
2565 inkscape:connector-curvature="0" /><path
2566 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2567 d="m 4564.8509,636.145 -53.795,0"
2568 id="path1353"
2569 inkscape:connector-curvature="0" /><path
2570 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2571 d="m 4478.5759,636.145 -53.795,0"
2572 id="path1355"
2573 inkscape:connector-curvature="0" /><path
2574 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2575 d="m 4392.3009,636.145 -54.81,0"
2576 id="path1357"
2577 inkscape:connector-curvature="0" /><path
2578 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2579 d="m 4305.0109,636.145 -53.795,0"
2580 id="path1359"
2581 inkscape:connector-curvature="0" /><path
2582 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2583 d="m 4218.7359,636.145 -53.795,0"
2584 id="path1361"
2585 inkscape:connector-curvature="0" /><path
2586 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2587 d="m 4131.4459,636.145 -53.795,0"
2588 id="path1363"
2589 inkscape:connector-curvature="0" /><path
2590 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2591 d="m 4045.1709,636.145 -53.795,0"
2592 id="path1365"
2593 inkscape:connector-curvature="0" /><path
2594 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2595 d="m 3957.8809,636.145 -53.795,0"
2596 id="path1367"
2597 inkscape:connector-curvature="0" /><path
2598 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2599 d="m 3871.6059,636.145 -53.795,0"
2600 id="path1369"
2601 inkscape:connector-curvature="0" /><path
2602 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2603 d="m 3785.3309,636.145 -54.81,0"
2604 id="path1371"
2605 inkscape:connector-curvature="0" /><path
2606 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2607 d="m 3698.0409,636.145 -53.795,0"
2608 id="path1373"
2609 inkscape:connector-curvature="0" /><path
2610 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2611 d="m 3611.7659,636.145 -53.795,0"
2612 id="path1375"
2613 inkscape:connector-curvature="0" /><path
2614 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2615 d="m 3524.4759,636.145 -53.795,0"
2616 id="path1377"
2617 inkscape:connector-curvature="0" /><path
2618 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2619 d="m 3438.2009,636.145 -53.795,0"
2620 id="path1379"
2621 inkscape:connector-curvature="0" /><path
2622 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2623 d="m 3350.9109,636.145 -53.795,0"
2624 id="path1381"
2625 inkscape:connector-curvature="0" /><path
2626 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2627 d="m 3264.6359,636.145 -53.795,0"
2628 id="path1383"
2629 inkscape:connector-curvature="0" /><path
2630 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2631 d="m 3177.3459,636.145 -53.795,0"
2632 id="path1385"
2633 inkscape:connector-curvature="0" /><path
2634 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2635 d="m 3091.0709,636.145 -53.795,0"
2636 id="path1387"
2637 inkscape:connector-curvature="0" /><path
2638 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2639 d="m 3004.7959,636.145 -53.795,0"
2640 id="path1389"
2641 inkscape:connector-curvature="0" /><path
2642 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2643 d="m 2917.5059,636.145 -53.795,0"
2644 id="path1391"
2645 inkscape:connector-curvature="0" /><path
2646 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2647 d="m 2831.2309,636.145 -53.795,0"
2648 id="path1393"
2649 inkscape:connector-curvature="0" /><path
2650 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2651 d="m 2743.9409,636.145 -53.795,0"
2652 id="path1395"
2653 inkscape:connector-curvature="0" /><path
2654 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2655 d="m 2657.6659,636.145 -53.795,0"
2656 id="path1397"
2657 inkscape:connector-curvature="0" /><path
2658 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2659 d="m 2570.3759,636.145 -53.795,0"
2660 id="path1399"
2661 inkscape:connector-curvature="0" /><path
2662 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2663 d="m 2484.1009,636.145 -53.795,0"
2664 id="path1401"
2665 inkscape:connector-curvature="0" /><path
2666 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2667 d="m 2397.8259,636.145 -53.795,0"
2668 id="path1403"
2669 inkscape:connector-curvature="0" /><path
2670 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2671 d="m 2310.5359,636.145 -53.795,0"
2672 id="path1405"
2673 inkscape:connector-curvature="0" /><path
2674 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2675 d="m 2224.2609,636.145 -53.795,0"
2676 id="path1407"
2677 inkscape:connector-curvature="0" /><path
2678 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2679 d="m 2136.9709,636.145 -53.795,0"
2680 id="path1409"
2681 inkscape:connector-curvature="0" /><path
2682 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2683 d="m 2050.6959,636.145 -53.795,0"
2684 id="path1411"
2685 inkscape:connector-curvature="0" /><path
2686 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2687 d="m 1963.4059,636.145 -53.795,0"
2688 id="path1413"
2689 inkscape:connector-curvature="0" /><path
2690 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2691 d="m 1877.1309,636.145 -53.795,0"
2692 id="path1415"
2693 inkscape:connector-curvature="0" /><path
2694 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2695 d="m 1790.8559,636.145 -54.81,0"
2696 id="path1417"
2697 inkscape:connector-curvature="0" /><path
2698 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2699 d="m 1703.5659,636.145 -53.795,0"
2700 id="path1419"
2701 inkscape:connector-curvature="0" /><path
2702 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2703 d="m 1617.2909,636.145 -53.795,0"
2704 id="path1421"
2705 inkscape:connector-curvature="0" /><path
2706 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2707 d="m 1530.0009,636.145 -53.795,0"
2708 id="path1423"
2709 inkscape:connector-curvature="0" /><path
2710 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2711 d="m 1443.7259,636.145 -53.795,0"
2712 id="path1425"
2713 inkscape:connector-curvature="0" /><path
2714 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2715 d="m 1356.4359,636.145 -53.795,0"
2716 id="path1427"
2717 inkscape:connector-curvature="0" /><path
2718 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2719 d="m 1270.1609,636.145 -53.795,0"
2720 id="path1429"
2721 inkscape:connector-curvature="0" /><path
2722 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2723 d="m 1183.8859,636.145 -54.81,0"
2724 id="path1431"
2725 inkscape:connector-curvature="0" /><path
2726 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2727 d="m 1096.5959,636.145 -53.795,0"
2728 id="path1433"
2729 inkscape:connector-curvature="0" /><path
2730 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2731 d="m 1010.3209,636.145 -53.795,0"
2732 id="path1435"
2733 inkscape:connector-curvature="0" /><path
2734 style="fill:none;stroke:#3465af;stroke-width:28.432024"
2735 d="m 923.0309,636.145 -53.795,0"
2736 id="path1437"
2737 inkscape:connector-curvature="0" /><g
2738 id="g4044"><rect
2739 height="1100.7"
2740 width="1213.6"
2741 y="4753.1133"
2742 x="21109.146"
2743 id="rect1441"
2744 style="fill:#f3e777" /><path
2745 d="m 20656.146,5536.413 0,-405.46 150.7,-169.16 c 82.886,-93.039 170.53,-186.62 194.77,-207.96 l 44.069,-38.798 783.23,-0.086 783.23,-0.086 0,613.5 0,613.5 -978,0 -978,0 0,-405.46 z m 1027.7,136.98 0,-78.372 -169.91,4.925 -169.91,4.9249 -5.09,45.854 c -8.249,74.303 46.711,101.04 207.69,101.04 l 137.21,0 0,-78.372 z m 235.86,-262.94 4.495,-341.31 207.2,-8.6408 207.2,-8.6408 5.144,-46.443 c 9.596,-86.615 -41.863,-102.05 -322.02,-96.607 l -246.71,4.7956 -4.438,419.08 -4.439,419.08 74.537,0 74.538,0 4.494,-341.31 z m 391.3,313.72 c 26.41,-19.286 36.255,-41.399 32.697,-73.447 l -5.09,-45.854 -174.05,0 -174.05,0 -5.38,48.984 c -9.97,90.771 0.993,97.91 150.36,97.91 99.305,0 148.27,-7.6982 175.52,-27.594 z m -627.16,-274.84 0,-77.768 -174.05,0 -174.05,0 0,66.246 c 0,36.436 4.973,71.431 11.051,77.768 6.078,6.3366 84.401,11.521 174.05,11.521 l 163,0 0,-77.768 z m 659.89,-4.9154 5.125,-74.042 -179.18,4.9155 -179.18,4.9155 -5.38,48.984 c -10.473,95.348 -2.259,99.57 183.28,94.197 l 170.2,-4.9284 5.125,-74.042 z m -659.89,-237.63 0,-78.372 -169.91,4.925 -169.91,4.925 -5.097,73.447 -5.097,73.447 175,0 175,0 0,-78.372 z m 659.86,4.925 -5.097,-73.447 -174.05,0 -174.05,0 -5.38,48.984 c -10.289,93.673 -2.146,97.91 188.15,97.91 l 175.52,0 -5.097,-73.447 z m -659.86,-228.98 0,-77.768 -137.21,0 c -97.358,0 -147.91,7.8138 -174.05,26.902 -34.952,25.523 -49.645,92.242 -25.79,117.11 6.078,6.3366 84.401,11.521 174.05,11.521 l 163,0 0,-77.768 z"
2746 id="path1443"
2747 inkscape:connector-curvature="0"
2748 style="fill:#ca4677" /></g><text
2749 style="font-size:9.10937119px;fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"
2750 class="TextShape"
2751 id="text1489"
2752 transform="scale(1.1035537,0.9061634)"
2753 x="171.41566"
2754 y="9913.7109"><tspan
2755 font-size="635px"
2756 font-weight="400"
2757 class="TextParagraph"
2758 id="tspan1491"
2759 style="font-weight:400;font-size:482.03753662px;font-family:'Times New Roman', serif" /></text>
2760<g
2761 id="g4048"><rect
2762 height="2342.4341"
2763 width="2320.7097"
2764 y="13737.451"
2765 x="18796.941"
2766 id="rect1447"
2767 style="fill:#6076b3" /><rect
2768 id="rect1451"
2769 height="137.78799"
2770 x="18532.135"
2771 width="302.70312"
2772 y="13817.405"
2773 style="fill:#e0ee2c;fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round" /><rect
2774 id="rect1453"
2775 height="137.78799"
2776 x="18532.135"
2777 width="302.70312"
2778 y="14075.544"
2779 style="fill:#e0ee2c;fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round" /><rect
2780 id="rect1455"
2781 height="137.78799"
2782 x="18532.135"
2783 width="302.70312"
2784 y="14334.443"
2785 style="fill:#e0ee2c;fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round" /><rect
2786 id="rect1457"
2787 height="137.78799"
2788 x="18532.135"
2789 width="302.70312"
2790 y="14592.582"
2791 style="fill:#e0ee2c;fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round" /><rect
2792 id="rect1459"
2793 height="137.78799"
2794 x="18532.135"
2795 width="302.70312"
2796 y="14850.721"
2797 style="fill:#e0ee2c;fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round" /><rect
2798 id="rect1461"
2799 height="137.78799"
2800 x="18532.135"
2801 width="302.70312"
2802 y="15109.62"
2803 style="fill:#e0ee2c;fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round" /><rect
2804 id="rect1463"
2805 height="137.78799"
2806 x="18532.135"
2807 width="302.70312"
2808 y="15367.759"
2809 style="fill:#e0ee2c;fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round" /><rect
2810 id="rect1465"
2811 height="137.78799"
2812 x="18532.135"
2813 width="302.70312"
2814 y="15625.896"
2815 style="fill:#e0ee2c;fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round" /><rect
2816 id="rect1467"
2817 height="137.78799"
2818 x="18532.135"
2819 width="302.70312"
2820 y="15884.035"
2821 style="fill:#e0ee2c;fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round" /><rect
2822 id="rect1469"
2823 height="137.78799"
2824 x="21080.053"
2825 width="302.70312"
2826 y="13783.14"
2827 style="fill:#e0ee2c;fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round" /><rect
2828 id="rect1471"
2829 height="137.78799"
2830 x="21080.053"
2831 width="302.70312"
2832 y="14041.277"
2833 style="fill:#e0ee2c;fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round" /><rect
2834 id="rect1473"
2835 height="137.78799"
2836 x="21080.053"
2837 width="302.70312"
2838 y="14299.416"
2839 style="fill:#e0ee2c;fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round" /><rect
2840 id="rect1475"
2841 height="137.78799"
2842 x="21080.053"
2843 width="302.70312"
2844 y="14558.315"
2845 style="fill:#e0ee2c;fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round" /><rect
2846 id="rect1477"
2847 height="137.78799"
2848 x="21080.053"
2849 width="302.70312"
2850 y="14816.454"
2851 style="fill:#e0ee2c;fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round" /><rect
2852 id="rect1479"
2853 height="137.78799"
2854 x="21080.053"
2855 width="302.70312"
2856 y="15074.593"
2857 style="fill:#e0ee2c;fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round" /><rect
2858 id="rect1481"
2859 height="137.78799"
2860 x="21080.053"
2861 width="302.70312"
2862 y="15333.492"
2863 style="fill:#e0ee2c;fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round" /><rect
2864 id="rect1483"
2865 height="137.78799"
2866 x="21080.053"
2867 width="302.70312"
2868 y="15591.631"
2869 style="fill:#e0ee2c;fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round" /><rect
2870 id="rect1485"
2871 height="137.78799"
2872 x="21080.053"
2873 width="302.70312"
2874 y="15849.769"
2875 style="fill:#e0ee2c;fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round" /><text
2876 transform="scale(1.1035537,0.9061634)"
2877 sodipodi:linespacing="125%"
2878 id="text1493"
2879 line-height="125%"
2880 x="17205.688"
2881 y="16777.641"
2882 font-size="1128.9px"
2883 xml:space="preserve"
2884 style="font-size:856.96411133px;line-height:125%;font-family:Sans;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"><tspan
2885 id="tspan1495"
2886 x="17205.688"
2887 y="16777.641">CPU</tspan></text>
2888</g><text
2889 style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"
2890 id="text1499"
2891 class="TextShape"
2892 x="-11700.553"
2893 y="565.61298"><tspan
2894 style="font-weight:400;font-size:706px;font-family:'Times New Roman', serif"
2895 id="tspan1501"
2896 class="TextParagraph"
2897 font-weight="400"
2898 font-size="706px"><tspan
2899 id="tspan1503"
2900 transform="matrix(0,-1,1,0,8509,40173)"
2901 class="TextPosition"
2902 x="12640.447"
2903 y="16397.613"><tspan
2904 style="fill:#000000"
2905 id="tspan1505">PCI, USB, SPI, I2C, ...</tspan></tspan></tspan></text>
2906<path
2907 d="m 12408.066,15561.578 -1115.084,0 0,-1420.331 2230.169,0 0,1420.331 -1115.085,0 z"
2908 id="path1511"
2909 inkscape:connector-curvature="0"
2910 style="fill:#cfe7f5;fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round" /><path
2911 d="m 12408.066,15561.578 -1115.084,0 0,-1420.331 2230.169,0 0,1420.331 -1115.085,0 z"
2912 id="path1513"
2913 inkscape:connector-curvature="0"
2914 style="fill:none;fill-rule:evenodd;stroke:#3465af;stroke-width:19.84712601;stroke-linejoin:round" /><text
2915 style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"
2916 id="text1515"
2917 class="TextShape"
2918 x="-1394.0863"
2919 y="590.73016"><tspan
2920 style="font-weight:400;font-size:635px;font-family:'Times New Roman', serif"
2921 id="tspan1517"
2922 class="TextParagraph"
2923 font-weight="400"
2924 font-size="635px"><tspan
2925 id="tspan1519"
2926 class="TextPosition"
2927 x="11487.915"
2928 y="14672.743"><tspan
2929 style="fill:#000000"
2930 id="tspan1521">Bridge</tspan></tspan></tspan></text>
2931<text
2932 style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"
2933 id="text1523"
2934 class="TextShape"
2935 x="-1450.5308"
2936 y="1324.5078"><tspan
2937 style="font-weight:400;font-size:635px;font-family:'Times New Roman', serif"
2938 id="tspan1525"
2939 class="TextParagraph"
2940 font-weight="400"
2941 font-size="635px"><tspan
2942 id="tspan1527"
2943 class="TextPosition"
2944 x="11431.471"
2945 y="15406.52"><tspan
2946 style="fill:#000000"
2947 id="tspan1529"> DMA</tspan></tspan></tspan></text>
2948</svg> \ No newline at end of file
diff --git a/Documentation/media/uapi/dvb/dvbstb.svg b/Documentation/media/uapi/dvb/dvbstb.svg
index c4140fb518af..4effe45b448d 100644
--- a/Documentation/media/uapi/dvb/dvbstb.svg
+++ b/Documentation/media/uapi/dvb/dvbstb.svg
@@ -1,651 +1,17 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<svg 2<svg id="svg2" width="237.7mm" height="126.28mm" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" preserveAspectRatio="xMidYMid" version="1.2" viewBox="0 0 23770.221 12628.221" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><metadata id="metadata519"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata><rect id="rect197" class="BoundingBox" x="5355.1" y="13.111" width="18403" height="9603" fill="none"/><path id="path199" d="m14556 9614.1h-9200v-9600h18400v9600h-9200z" fill="#fff"/><path id="path201" d="m14556 9614.1h-9200v-9600h18400v9600h-9200z" fill="none" stroke="#000"/><rect id="rect206"
3 xmlns:dc="http://purl.org/dc/elements/1.1/" 3class="BoundingBox" x="13.111" y="4013.1" width="4544" height="2403" fill="none"/><path id="path208" d="m2285.1 6414.1h-2271v-2400h4541v2400h-2270z" fill="#fff"/><path id="path210" d="m2285.1 6414.1h-2271v-2400h4541v2400h-2270z" fill="none" stroke="#000"/><text id="text212" class="TextShape" x="-2443.8889" y="-4585.8892"><tspan id="tspan214" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan216" class="TextPosition" x="1281.111" y="5435.1108"><tspan id="tspan218" fill="#000000">Antena</tspan></tspan></tspan></text>
4 xmlns:cc="http://creativecommons.org/ns#" 4<rect id="rect223" class="BoundingBox" x="6213.1" y="1813.1" width="4544" height="2403" fill="none"/><path id="path225" d="m8485.1 4214.1h-2271v-2400h4541v2400h-2270z" fill="#fff"/><path id="path227" d="m8485.1 4214.1h-2271v-2400h4541v2400h-2270z" fill="none" stroke="#000"/><text id="text229" class="TextShape" x="-2443.8889" y="-4585.8892"><tspan id="tspan231" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan233" class="TextPosition" x="7217.1108" y="3235.1111"><tspan id="tspan235" fill="#000000">Frontend</tspan></tspan></tspan></text>
5 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 5<rect id="rect240" class="BoundingBox" x="12113" y="1813.1" width="4544" height="2403" fill="none"/><path id="path242" d="m14385 4214.1h-2271v-2400h4541v2400h-2270z" fill="#fff"/><path id="path244" d="m14385 4214.1h-2271v-2400h4541v2400h-2270z" fill="none" stroke="#000"/><text id="text246" class="TextShape" x="-2443.8889" y="-4585.8892"><tspan id="tspan248" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan250" class="TextPosition" x="13944.111" y="3235.1111"><tspan id="tspan252" fill="#000000">CA</tspan></tspan></tspan></text>
6 xmlns:svg="http://www.w3.org/2000/svg" 6<rect id="rect257" class="BoundingBox" x="18113" y="1813.1" width="4544" height="2403" fill="none"/><path id="path259" d="m20385 4214.1h-2271v-2400h4541v2400h-2270z" fill="#fff"/><path id="path261" d="m20385 4214.1h-2271v-2400h4541v2400h-2270z" fill="none" stroke="#000"/><text id="text263" class="TextShape" x="-2443.8889" y="-4585.8892"><tspan id="tspan265" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan267" class="TextPosition" x="19384.111" y="3235.1111"><tspan id="tspan269" fill="#000000">Demux</tspan></tspan></tspan></text>
7 xmlns="http://www.w3.org/2000/svg" 7<rect id="rect274" class="BoundingBox" x="6113.1" y="5813.1" width="4544" height="2403" fill="none"/><path id="path276" d="m8385.1 8214.1h-2271v-2400h4541v2400h-2270z" fill="#fff"/><path id="path278" d="m8385.1 8214.1h-2271v-2400h4541v2400h-2270z" fill="none" stroke="#000"/><text id="text280" class="TextShape" x="-2443.8889" y="-4585.8892"><tspan id="tspan282" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan284" class="TextPosition" x="7733.1108" y="7235.1108"><tspan id="tspan286" fill="#000000">SEC</tspan></tspan></tspan></text>
8 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 8<rect id="rect291" class="BoundingBox" x="12213" y="5813.1" width="4544" height="2403" fill="none"/><path id="path293" d="m14485 8214.1h-2271v-2400h4541v2400h-2270z" fill="#fff"/><path id="path295" d="m14485 8214.1h-2271v-2400h4541v2400h-2270z" fill="none" stroke="#000"/><text id="text297" class="TextShape" x="-2443.8889" y="-4585.8892"><tspan id="tspan299" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan301" class="TextPosition" x="13676.111" y="7235.1108"><tspan id="tspan303" fill="#000000">Audio</tspan></tspan></tspan></text>
9 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 9<rect id="rect308" class="BoundingBox" x="18113" y="5813.1" width="4544" height="2403" fill="none"/><path id="path310" d="m20385 8214.1h-2271v-2400h4541v2400h-2270z" fill="#fff"/><path id="path312" d="m20385 8214.1h-2271v-2400h4541v2400h-2270z" fill="none" stroke="#000"/><text id="text314" class="TextShape" x="-2443.8889" y="-4585.8892"><tspan id="tspan316" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan318" class="TextPosition" x="19583.111" y="7235.1108"><tspan id="tspan320" fill="#000000">Video</tspan></tspan></tspan></text>
10 version="1.2" 10<rect id="rect325" class="BoundingBox" x="15213" y="10213" width="4544" height="2403" fill="none"/><path id="path327" d="m17485 12614h-2271v-2400h4541v2400h-2270z" fill="#fff"/><path id="path329" d="m17485 12614h-2271v-2400h4541v2400h-2270z" fill="none" stroke="#000"/><text id="text331" class="TextShape" x="-2443.8889" y="-4585.8892"><tspan id="tspan333" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan335" class="TextPosition" x="17076.111" y="11635.111"><tspan id="tspan337" fill="#000000">TV</tspan></tspan></tspan></text>
11 width="237.70221mm" 11<rect id="rect342" class="BoundingBox" x="4555.1" y="3014.1" width="1661" height="2202" fill="none"/><path id="path344" d="m4556.1 5214.1 1400-1857" fill="none" stroke="#000"/><path id="path346" d="m6215.1 3014.1-391 269 240 181 151-450z"/><rect id="rect351" class="BoundingBox" x="4555.1" y="5213.1" width="1561" height="1802" fill="none"/><path id="path353" d="m4556.1 5214.1 1277 1475" fill="none" stroke="#000"/><path id="path355" d="m6115.1 7014.1-181-438-227 196 408 242z"/><rect id="rect360" class="BoundingBox" x="10755" y="2864.1" width="1361" height="301" fill="none"/><path id="path362" d="m10756 3014.1h929" fill="none" stroke="#000"/><path id="path364" d="m12115 3014.1-450-150v300l450-150z"/><rect id="rect369" class="BoundingBox" x="16655" y="2864.1" width="1461" height="301" fill="none"/><path id="path371" d="m16656 3014.1h1029" fill="none" stroke="#000"/><path id="path373"
12 height="126.28221mm" 12d="m18115 3014.1-450-150v300l450-150z"/><rect id="rect378" class="BoundingBox" x="20235" y="4213.1" width="301" height="1602" fill="none"/><path id="path380" d="m20385 4214.1v1170" fill="none" stroke="#000"/><path id="path382" d="m20385 5814.1 150-450h-300l150 450z"/><rect id="rect387" class="BoundingBox" x="17485" y="8213.1" width="2902" height="2002" fill="none"/><path id="path389" d="m20385 8214.1-2546 1756" fill="none" stroke="#000"/><path id="path391" d="m17485 10214 456-132-171-247-285 379z"/><rect id="rect396" class="BoundingBox" x="14484" y="8213.1" width="3002" height="2002" fill="none"/><path id="path398" d="m14485 8214.1 2642 1761" fill="none" stroke="#000"/><path id="path400" d="m17485 10214-291-374-167 249 458 125z"/><rect id="rect405" class="BoundingBox" x="14485" y="4213.1" width="5902" height="1629" fill="none"/><path id="path407" d="m20385 4214.1-51 14" fill="none"
13 viewBox="0 0 23770.221 12628.221" 13stroke="#000"/><path id="path409" d="m20283 4242.1-52 14" fill="none" stroke="#000"/><path id="path411" d="m20180 4270.1-51 13" fill="none" stroke="#000"/><path id="path413" d="m20078 4297.1-52 14" fill="none" stroke="#000"/><path id="path415" d="m19975 4325.1-51 14" fill="none" stroke="#000"/><path id="path417" d="m19873 4353.1-52 14" fill="none" stroke="#000"/><path id="path419" d="m19770 4381.1-51 14" fill="none" stroke="#000"/><path id="path421" d="m19668 4409.1-52 13" fill="none" stroke="#000"/><path id="path423" d="m19565 4436.1-51 14" fill="none" stroke="#000"/><path id="path425" d="m19463 4464.1-52 14" fill="none" stroke="#000"/><path id="path427" d="m19360 4492.1-51 14" fill="none" stroke="#000"/><path id="path429" d="m19258 4520.1-52 14" fill="none" stroke="#000"/><path id="path431" d="m19155 4547.1-51 14" fill="none" stroke="#000"/><path id="path433" d="m19053 4575.1-52 14"
14 preserveAspectRatio="xMidYMid" 14fill="none" stroke="#000"/><path id="path435" d="m18950 4603.1-51 14" fill="none" stroke="#000"/><path id="path437" d="m18848 4631.1-51 14" fill="none" stroke="#000"/><path id="path439" d="m18745 4659.1-51 14" fill="none" stroke="#000"/><path id="path441" d="m18643 4686.1-51 14" fill="none" stroke="#000"/><path id="path443" d="m18540 4714.1-51 14" fill="none" stroke="#000"/><path id="path445" d="m18438 4742.1-51 14" fill="none" stroke="#000"/><path id="path447" d="m18335 4770.1-51 14" fill="none" stroke="#000"/><path id="path449" d="m18233 4798.1-51 14" fill="none" stroke="#000"/><path id="path451" d="m18130 4825.1-51 14" fill="none" stroke="#000"/><path id="path453" d="m18028 4853.1-51 14" fill="none" stroke="#000"/><path id="path455" d="m17925 4881.1-51 14" fill="none" stroke="#000"/><path id="path457" d="m17823 4909.1-51 14" fill="none" stroke="#000"/><path id="path459" d="m17720
15 xml:space="preserve" 154937.1-51 13" fill="none" stroke="#000"/><path id="path461" d="m17618 4964.1-51 14" fill="none" stroke="#000"/><path id="path463" d="m17516 4992.1-52 14" fill="none" stroke="#000"/><path id="path465" d="m17413 5020.1-51 14" fill="none" stroke="#000"/><path id="path467" d="m17311 5048.1-52 14" fill="none" stroke="#000"/><path id="path469" d="m17208 5076.1-51 13" fill="none" stroke="#000"/><path id="path471" d="m17106 5103.1-52 14" fill="none" stroke="#000"/><path id="path473" d="m17003 5131.1-51 14" fill="none" stroke="#000"/><path id="path475" d="m16901 5159.1-52 14" fill="none" stroke="#000"/><path id="path477" d="m16798 5187.1-51 14" fill="none" stroke="#000"/><path id="path479" d="m16696 5214.1-52 14" fill="none" stroke="#000"/><path id="path481" d="m16593 5242.1-51 14" fill="none" stroke="#000"/><path id="path483" d="m16491 5270.1-52 14" fill="none" stroke="#000"/><path id="path485"
16 id="svg2" 16d="m16388 5298.1-51 14" fill="none" stroke="#000"/><path id="path487" d="m16286 5326.1-52 14" fill="none" stroke="#000"/><path id="path489" d="m16183 5353.1-51 14" fill="none" stroke="#000"/><path id="path491" d="m16081 5381.1-51 14" fill="none" stroke="#000"/><path id="path493" d="m15978 5409.1-51 14" fill="none" stroke="#000"/><path id="path495" d="m15876 5437.1-51 14" fill="none" stroke="#000"/><path id="path497" d="m15773 5465.1-51 14" fill="none" stroke="#000"/><path id="path499" d="m15671 5492.1-51 14" fill="none" stroke="#000"/><path id="path501" d="m15568 5520.1-51 14" fill="none" stroke="#000"/><path id="path503" d="m15466 5548.1-51 14" fill="none" stroke="#000"/><path id="path505" d="m15363 5576.1-51 14" fill="none" stroke="#000"/><path id="path507" d="m15261 5604.1-51 13" fill="none" stroke="#000"/><path id="path509" d="m15158 5631.1-51 14" fill="none" stroke="#000"/><path
17 inkscape:version="0.91 r13725" 17id="path511" d="m15056 5659.1-51 14" fill="none" stroke="#000"/><path id="path513" d="m14953 5687.1-51 14" fill="none" stroke="#000"/><path id="path515" d="m14485 5814.1 474 27-79-290-395 263z"/></svg>
18 sodipodi:docname="dvbstb.svg"
19 style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"><metadata
20 id="metadata519"><rdf:RDF><cc:Work
21 rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
22 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><sodipodi:namedview
23 pagecolor="#ffffff"
24 bordercolor="#666666"
25 borderopacity="1"
26 objecttolerance="10"
27 gridtolerance="10"
28 guidetolerance="10"
29 inkscape:pageopacity="0"
30 inkscape:pageshadow="2"
31 inkscape:window-width="1920"
32 inkscape:window-height="997"
33 id="namedview517"
34 showgrid="false"
35 inkscape:zoom="1.0818519"
36 inkscape:cx="411.31718"
37 inkscape:cy="274.87517"
38 inkscape:window-x="1920"
39 inkscape:window-y="30"
40 inkscape:window-maximized="1"
41 inkscape:current-layer="svg2"
42 fit-margin-top="0"
43 fit-margin-left="0"
44 fit-margin-right="0"
45 fit-margin-bottom="0" /><defs
46 class="ClipPathGroup"
47 id="defs4" /><defs
48 id="defs9" /><defs
49 id="defs90" /><defs
50 id="defs113" /><defs
51 class="TextShapeIndex"
52 id="defs124" /><defs
53 class="EmbeddedBulletChars"
54 id="defs128" /><defs
55 class="TextEmbeddedBitmaps"
56 id="defs157" /><rect
57 class="BoundingBox"
58 x="5355.1108"
59 y="13.111"
60 width="18403"
61 height="9603"
62 id="rect197"
63 style="fill:none;stroke:none" /><path
64 d="m 14556.111,9614.111 -9200,0 0,-9600 18400,0 0,9600 -9200,0 z"
65 id="path199"
66 inkscape:connector-curvature="0"
67 style="fill:#ffffff;stroke:none" /><path
68 d="m 14556.111,9614.111 -9200,0 0,-9600 18400,0 0,9600 -9200,0 z"
69 id="path201"
70 inkscape:connector-curvature="0"
71 style="fill:none;stroke:#000000" /><rect
72 class="BoundingBox"
73 x="13.111"
74 y="4013.1111"
75 width="4544"
76 height="2403"
77 id="rect206"
78 style="fill:none;stroke:none" /><path
79 d="m 2285.111,6414.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
80 id="path208"
81 inkscape:connector-curvature="0"
82 style="fill:#ffffff;stroke:none" /><path
83 d="m 2285.111,6414.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
84 id="path210"
85 inkscape:connector-curvature="0"
86 style="fill:none;stroke:#000000" /><text
87 class="TextShape"
88 id="text212"
89 y="-4585.8892"
90 x="-2443.8889"><tspan
91 class="TextParagraph"
92 font-size="635px"
93 font-weight="400"
94 id="tspan214"
95 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
96 class="TextPosition"
97 x="1281.111"
98 y="5435.1108"
99 id="tspan216"><tspan
100 id="tspan218"
101 style="fill:#000000;stroke:none">Antena</tspan></tspan></tspan></text>
102<rect
103 class="BoundingBox"
104 x="6213.1108"
105 y="1813.111"
106 width="4544"
107 height="2403"
108 id="rect223"
109 style="fill:none;stroke:none" /><path
110 d="m 8485.111,4214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
111 id="path225"
112 inkscape:connector-curvature="0"
113 style="fill:#ffffff;stroke:none" /><path
114 d="m 8485.111,4214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
115 id="path227"
116 inkscape:connector-curvature="0"
117 style="fill:none;stroke:#000000" /><text
118 class="TextShape"
119 id="text229"
120 x="-2443.8889"
121 y="-4585.8892"><tspan
122 class="TextParagraph"
123 font-size="635px"
124 font-weight="400"
125 id="tspan231"
126 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
127 class="TextPosition"
128 x="7217.1108"
129 y="3235.1111"
130 id="tspan233"><tspan
131 id="tspan235"
132 style="fill:#000000;stroke:none">Frontend</tspan></tspan></tspan></text>
133<rect
134 class="BoundingBox"
135 x="12113.111"
136 y="1813.111"
137 width="4544"
138 height="2403"
139 id="rect240"
140 style="fill:none;stroke:none" /><path
141 d="m 14385.111,4214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
142 id="path242"
143 inkscape:connector-curvature="0"
144 style="fill:#ffffff;stroke:none" /><path
145 d="m 14385.111,4214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
146 id="path244"
147 inkscape:connector-curvature="0"
148 style="fill:none;stroke:#000000" /><text
149 class="TextShape"
150 id="text246"
151 x="-2443.8889"
152 y="-4585.8892"><tspan
153 class="TextParagraph"
154 font-size="635px"
155 font-weight="400"
156 id="tspan248"
157 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
158 class="TextPosition"
159 x="13944.111"
160 y="3235.1111"
161 id="tspan250"><tspan
162 id="tspan252"
163 style="fill:#000000;stroke:none">CA</tspan></tspan></tspan></text>
164<rect
165 class="BoundingBox"
166 x="18113.111"
167 y="1813.111"
168 width="4544"
169 height="2403"
170 id="rect257"
171 style="fill:none;stroke:none" /><path
172 d="m 20385.111,4214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
173 id="path259"
174 inkscape:connector-curvature="0"
175 style="fill:#ffffff;stroke:none" /><path
176 d="m 20385.111,4214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
177 id="path261"
178 inkscape:connector-curvature="0"
179 style="fill:none;stroke:#000000" /><text
180 class="TextShape"
181 id="text263"
182 x="-2443.8889"
183 y="-4585.8892"><tspan
184 class="TextParagraph"
185 font-size="635px"
186 font-weight="400"
187 id="tspan265"
188 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
189 class="TextPosition"
190 x="19384.111"
191 y="3235.1111"
192 id="tspan267"><tspan
193 id="tspan269"
194 style="fill:#000000;stroke:none">Demux</tspan></tspan></tspan></text>
195<rect
196 class="BoundingBox"
197 x="6113.1108"
198 y="5813.1108"
199 width="4544"
200 height="2403"
201 id="rect274"
202 style="fill:none;stroke:none" /><path
203 d="m 8385.111,8214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
204 id="path276"
205 inkscape:connector-curvature="0"
206 style="fill:#ffffff;stroke:none" /><path
207 d="m 8385.111,8214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
208 id="path278"
209 inkscape:connector-curvature="0"
210 style="fill:none;stroke:#000000" /><text
211 class="TextShape"
212 id="text280"
213 x="-2443.8889"
214 y="-4585.8892"><tspan
215 class="TextParagraph"
216 font-size="635px"
217 font-weight="400"
218 id="tspan282"
219 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
220 class="TextPosition"
221 x="7733.1108"
222 y="7235.1108"
223 id="tspan284"><tspan
224 id="tspan286"
225 style="fill:#000000;stroke:none">SEC</tspan></tspan></tspan></text>
226<rect
227 class="BoundingBox"
228 x="12213.111"
229 y="5813.1108"
230 width="4544"
231 height="2403"
232 id="rect291"
233 style="fill:none;stroke:none" /><path
234 d="m 14485.111,8214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
235 id="path293"
236 inkscape:connector-curvature="0"
237 style="fill:#ffffff;stroke:none" /><path
238 d="m 14485.111,8214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
239 id="path295"
240 inkscape:connector-curvature="0"
241 style="fill:none;stroke:#000000" /><text
242 class="TextShape"
243 id="text297"
244 x="-2443.8889"
245 y="-4585.8892"><tspan
246 class="TextParagraph"
247 font-size="635px"
248 font-weight="400"
249 id="tspan299"
250 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
251 class="TextPosition"
252 x="13676.111"
253 y="7235.1108"
254 id="tspan301"><tspan
255 id="tspan303"
256 style="fill:#000000;stroke:none">Audio</tspan></tspan></tspan></text>
257<rect
258 class="BoundingBox"
259 x="18113.111"
260 y="5813.1108"
261 width="4544"
262 height="2403"
263 id="rect308"
264 style="fill:none;stroke:none" /><path
265 d="m 20385.111,8214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
266 id="path310"
267 inkscape:connector-curvature="0"
268 style="fill:#ffffff;stroke:none" /><path
269 d="m 20385.111,8214.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
270 id="path312"
271 inkscape:connector-curvature="0"
272 style="fill:none;stroke:#000000" /><text
273 class="TextShape"
274 id="text314"
275 x="-2443.8889"
276 y="-4585.8892"><tspan
277 class="TextParagraph"
278 font-size="635px"
279 font-weight="400"
280 id="tspan316"
281 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
282 class="TextPosition"
283 x="19583.111"
284 y="7235.1108"
285 id="tspan318"><tspan
286 id="tspan320"
287 style="fill:#000000;stroke:none">Video</tspan></tspan></tspan></text>
288<rect
289 class="BoundingBox"
290 x="15213.111"
291 y="10213.111"
292 width="4544"
293 height="2403"
294 id="rect325"
295 style="fill:none;stroke:none" /><path
296 d="m 17485.111,12614.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
297 id="path327"
298 inkscape:connector-curvature="0"
299 style="fill:#ffffff;stroke:none" /><path
300 d="m 17485.111,12614.111 -2271,0 0,-2400 4541,0 0,2400 -2270,0 z"
301 id="path329"
302 inkscape:connector-curvature="0"
303 style="fill:none;stroke:#000000" /><text
304 class="TextShape"
305 id="text331"
306 x="-2443.8889"
307 y="-4585.8892"><tspan
308 class="TextParagraph"
309 font-size="635px"
310 font-weight="400"
311 id="tspan333"
312 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
313 class="TextPosition"
314 x="17076.111"
315 y="11635.111"
316 id="tspan335"><tspan
317 id="tspan337"
318 style="fill:#000000;stroke:none">TV</tspan></tspan></tspan></text>
319<rect
320 class="BoundingBox"
321 x="4555.1108"
322 y="3014.1111"
323 width="1661"
324 height="2202"
325 id="rect342"
326 style="fill:none;stroke:none" /><path
327 d="m 4556.111,5214.111 1400,-1857"
328 id="path344"
329 inkscape:connector-curvature="0"
330 style="fill:none;stroke:#000000" /><path
331 d="m 6215.111,3014.111 -391,269 240,181 151,-450 z"
332 id="path346"
333 inkscape:connector-curvature="0"
334 style="fill:#000000;stroke:none" /><rect
335 class="BoundingBox"
336 x="4555.1108"
337 y="5213.1108"
338 width="1561"
339 height="1802"
340 id="rect351"
341 style="fill:none;stroke:none" /><path
342 d="m 4556.111,5214.111 1277,1475"
343 id="path353"
344 inkscape:connector-curvature="0"
345 style="fill:none;stroke:#000000" /><path
346 d="m 6115.111,7014.111 -181,-438 -227,196 408,242 z"
347 id="path355"
348 inkscape:connector-curvature="0"
349 style="fill:#000000;stroke:none" /><rect
350 class="BoundingBox"
351 x="10755.111"
352 y="2864.1111"
353 width="1361"
354 height="301"
355 id="rect360"
356 style="fill:none;stroke:none" /><path
357 d="m 10756.111,3014.111 929,0"
358 id="path362"
359 inkscape:connector-curvature="0"
360 style="fill:none;stroke:#000000" /><path
361 d="m 12115.111,3014.111 -450,-150 0,300 450,-150 z"
362 id="path364"
363 inkscape:connector-curvature="0"
364 style="fill:#000000;stroke:none" /><rect
365 class="BoundingBox"
366 x="16655.111"
367 y="2864.1111"
368 width="1461"
369 height="301"
370 id="rect369"
371 style="fill:none;stroke:none" /><path
372 d="m 16656.111,3014.111 1029,0"
373 id="path371"
374 inkscape:connector-curvature="0"
375 style="fill:none;stroke:#000000" /><path
376 d="m 18115.111,3014.111 -450,-150 0,300 450,-150 z"
377 id="path373"
378 inkscape:connector-curvature="0"
379 style="fill:#000000;stroke:none" /><rect
380 class="BoundingBox"
381 x="20235.111"
382 y="4213.1108"
383 width="301"
384 height="1602"
385 id="rect378"
386 style="fill:none;stroke:none" /><path
387 d="m 20385.111,4214.111 0,1170"
388 id="path380"
389 inkscape:connector-curvature="0"
390 style="fill:none;stroke:#000000" /><path
391 d="m 20385.111,5814.111 150,-450 -300,0 150,450 z"
392 id="path382"
393 inkscape:connector-curvature="0"
394 style="fill:#000000;stroke:none" /><rect
395 class="BoundingBox"
396 x="17485.111"
397 y="8213.1113"
398 width="2902"
399 height="2002"
400 id="rect387"
401 style="fill:none;stroke:none" /><path
402 d="m 20385.111,8214.111 -2546,1756"
403 id="path389"
404 inkscape:connector-curvature="0"
405 style="fill:none;stroke:#000000" /><path
406 d="m 17485.111,10214.111 456,-132 -171,-247 -285,379 z"
407 id="path391"
408 inkscape:connector-curvature="0"
409 style="fill:#000000;stroke:none" /><rect
410 class="BoundingBox"
411 x="14484.111"
412 y="8213.1113"
413 width="3002"
414 height="2002"
415 id="rect396"
416 style="fill:none;stroke:none" /><path
417 d="m 14485.111,8214.111 2642,1761"
418 id="path398"
419 inkscape:connector-curvature="0"
420 style="fill:none;stroke:#000000" /><path
421 d="m 17485.111,10214.111 -291,-374 -167,249 458,125 z"
422 id="path400"
423 inkscape:connector-curvature="0"
424 style="fill:#000000;stroke:none" /><rect
425 class="BoundingBox"
426 x="14485.111"
427 y="4213.1108"
428 width="5902"
429 height="1629"
430 id="rect405"
431 style="fill:none;stroke:none" /><path
432 d="m 20385.111,4214.111 -51,14"
433 id="path407"
434 inkscape:connector-curvature="0"
435 style="fill:none;stroke:#000000" /><path
436 d="m 20283.111,4242.111 -52,14"
437 id="path409"
438 inkscape:connector-curvature="0"
439 style="fill:none;stroke:#000000" /><path
440 d="m 20180.111,4270.111 -51,13"
441 id="path411"
442 inkscape:connector-curvature="0"
443 style="fill:none;stroke:#000000" /><path
444 d="m 20078.111,4297.111 -52,14"
445 id="path413"
446 inkscape:connector-curvature="0"
447 style="fill:none;stroke:#000000" /><path
448 d="m 19975.111,4325.111 -51,14"
449 id="path415"
450 inkscape:connector-curvature="0"
451 style="fill:none;stroke:#000000" /><path
452 d="m 19873.111,4353.111 -52,14"
453 id="path417"
454 inkscape:connector-curvature="0"
455 style="fill:none;stroke:#000000" /><path
456 d="m 19770.111,4381.111 -51,14"
457 id="path419"
458 inkscape:connector-curvature="0"
459 style="fill:none;stroke:#000000" /><path
460 d="m 19668.111,4409.111 -52,13"
461 id="path421"
462 inkscape:connector-curvature="0"
463 style="fill:none;stroke:#000000" /><path
464 d="m 19565.111,4436.111 -51,14"
465 id="path423"
466 inkscape:connector-curvature="0"
467 style="fill:none;stroke:#000000" /><path
468 d="m 19463.111,4464.111 -52,14"
469 id="path425"
470 inkscape:connector-curvature="0"
471 style="fill:none;stroke:#000000" /><path
472 d="m 19360.111,4492.111 -51,14"
473 id="path427"
474 inkscape:connector-curvature="0"
475 style="fill:none;stroke:#000000" /><path
476 d="m 19258.111,4520.111 -52,14"
477 id="path429"
478 inkscape:connector-curvature="0"
479 style="fill:none;stroke:#000000" /><path
480 d="m 19155.111,4547.111 -51,14"
481 id="path431"
482 inkscape:connector-curvature="0"
483 style="fill:none;stroke:#000000" /><path
484 d="m 19053.111,4575.111 -52,14"
485 id="path433"
486 inkscape:connector-curvature="0"
487 style="fill:none;stroke:#000000" /><path
488 d="m 18950.111,4603.111 -51,14"
489 id="path435"
490 inkscape:connector-curvature="0"
491 style="fill:none;stroke:#000000" /><path
492 d="m 18848.111,4631.111 -51,14"
493 id="path437"
494 inkscape:connector-curvature="0"
495 style="fill:none;stroke:#000000" /><path
496 d="m 18745.111,4659.111 -51,14"
497 id="path439"
498 inkscape:connector-curvature="0"
499 style="fill:none;stroke:#000000" /><path
500 d="m 18643.111,4686.111 -51,14"
501 id="path441"
502 inkscape:connector-curvature="0"
503 style="fill:none;stroke:#000000" /><path
504 d="m 18540.111,4714.111 -51,14"
505 id="path443"
506 inkscape:connector-curvature="0"
507 style="fill:none;stroke:#000000" /><path
508 d="m 18438.111,4742.111 -51,14"
509 id="path445"
510 inkscape:connector-curvature="0"
511 style="fill:none;stroke:#000000" /><path
512 d="m 18335.111,4770.111 -51,14"
513 id="path447"
514 inkscape:connector-curvature="0"
515 style="fill:none;stroke:#000000" /><path
516 d="m 18233.111,4798.111 -51,14"
517 id="path449"
518 inkscape:connector-curvature="0"
519 style="fill:none;stroke:#000000" /><path
520 d="m 18130.111,4825.111 -51,14"
521 id="path451"
522 inkscape:connector-curvature="0"
523 style="fill:none;stroke:#000000" /><path
524 d="m 18028.111,4853.111 -51,14"
525 id="path453"
526 inkscape:connector-curvature="0"
527 style="fill:none;stroke:#000000" /><path
528 d="m 17925.111,4881.111 -51,14"
529 id="path455"
530 inkscape:connector-curvature="0"
531 style="fill:none;stroke:#000000" /><path
532 d="m 17823.111,4909.111 -51,14"
533 id="path457"
534 inkscape:connector-curvature="0"
535 style="fill:none;stroke:#000000" /><path
536 d="m 17720.111,4937.111 -51,13"
537 id="path459"
538 inkscape:connector-curvature="0"
539 style="fill:none;stroke:#000000" /><path
540 d="m 17618.111,4964.111 -51,14"
541 id="path461"
542 inkscape:connector-curvature="0"
543 style="fill:none;stroke:#000000" /><path
544 d="m 17516.111,4992.111 -52,14"
545 id="path463"
546 inkscape:connector-curvature="0"
547 style="fill:none;stroke:#000000" /><path
548 d="m 17413.111,5020.111 -51,14"
549 id="path465"
550 inkscape:connector-curvature="0"
551 style="fill:none;stroke:#000000" /><path
552 d="m 17311.111,5048.111 -52,14"
553 id="path467"
554 inkscape:connector-curvature="0"
555 style="fill:none;stroke:#000000" /><path
556 d="m 17208.111,5076.111 -51,13"
557 id="path469"
558 inkscape:connector-curvature="0"
559 style="fill:none;stroke:#000000" /><path
560 d="m 17106.111,5103.111 -52,14"
561 id="path471"
562 inkscape:connector-curvature="0"
563 style="fill:none;stroke:#000000" /><path
564 d="m 17003.111,5131.111 -51,14"
565 id="path473"
566 inkscape:connector-curvature="0"
567 style="fill:none;stroke:#000000" /><path
568 d="m 16901.111,5159.111 -52,14"
569 id="path475"
570 inkscape:connector-curvature="0"
571 style="fill:none;stroke:#000000" /><path
572 d="m 16798.111,5187.111 -51,14"
573 id="path477"
574 inkscape:connector-curvature="0"
575 style="fill:none;stroke:#000000" /><path
576 d="m 16696.111,5214.111 -52,14"
577 id="path479"
578 inkscape:connector-curvature="0"
579 style="fill:none;stroke:#000000" /><path
580 d="m 16593.111,5242.111 -51,14"
581 id="path481"
582 inkscape:connector-curvature="0"
583 style="fill:none;stroke:#000000" /><path
584 d="m 16491.111,5270.111 -52,14"
585 id="path483"
586 inkscape:connector-curvature="0"
587 style="fill:none;stroke:#000000" /><path
588 d="m 16388.111,5298.111 -51,14"
589 id="path485"
590 inkscape:connector-curvature="0"
591 style="fill:none;stroke:#000000" /><path
592 d="m 16286.111,5326.111 -52,14"
593 id="path487"
594 inkscape:connector-curvature="0"
595 style="fill:none;stroke:#000000" /><path
596 d="m 16183.111,5353.111 -51,14"
597 id="path489"
598 inkscape:connector-curvature="0"
599 style="fill:none;stroke:#000000" /><path
600 d="m 16081.111,5381.111 -51,14"
601 id="path491"
602 inkscape:connector-curvature="0"
603 style="fill:none;stroke:#000000" /><path
604 d="m 15978.111,5409.111 -51,14"
605 id="path493"
606 inkscape:connector-curvature="0"
607 style="fill:none;stroke:#000000" /><path
608 d="m 15876.111,5437.111 -51,14"
609 id="path495"
610 inkscape:connector-curvature="0"
611 style="fill:none;stroke:#000000" /><path
612 d="m 15773.111,5465.111 -51,14"
613 id="path497"
614 inkscape:connector-curvature="0"
615 style="fill:none;stroke:#000000" /><path
616 d="m 15671.111,5492.111 -51,14"
617 id="path499"
618 inkscape:connector-curvature="0"
619 style="fill:none;stroke:#000000" /><path
620 d="m 15568.111,5520.111 -51,14"
621 id="path501"
622 inkscape:connector-curvature="0"
623 style="fill:none;stroke:#000000" /><path
624 d="m 15466.111,5548.111 -51,14"
625 id="path503"
626 inkscape:connector-curvature="0"
627 style="fill:none;stroke:#000000" /><path
628 d="m 15363.111,5576.111 -51,14"
629 id="path505"
630 inkscape:connector-curvature="0"
631 style="fill:none;stroke:#000000" /><path
632 d="m 15261.111,5604.111 -51,13"
633 id="path507"
634 inkscape:connector-curvature="0"
635 style="fill:none;stroke:#000000" /><path
636 d="m 15158.111,5631.111 -51,14"
637 id="path509"
638 inkscape:connector-curvature="0"
639 style="fill:none;stroke:#000000" /><path
640 d="m 15056.111,5659.111 -51,14"
641 id="path511"
642 inkscape:connector-curvature="0"
643 style="fill:none;stroke:#000000" /><path
644 d="m 14953.111,5687.111 -51,14"
645 id="path513"
646 inkscape:connector-curvature="0"
647 style="fill:none;stroke:#000000" /><path
648 d="m 14485.111,5814.111 474,27 -79,-290 -395,263 z"
649 id="path515"
650 inkscape:connector-curvature="0"
651 style="fill:#000000;stroke:none" /></svg> \ No newline at end of file
diff --git a/Documentation/media/uapi/v4l/bayer.svg b/Documentation/media/uapi/v4l/bayer.svg
index fbd4cfb5e6bf..c395113d1876 100644
--- a/Documentation/media/uapi/v4l/bayer.svg
+++ b/Documentation/media/uapi/v4l/bayer.svg
@@ -1,984 +1,29 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<svg 2<svg id="svg2" width="164.15mm" height="46.771mm" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" preserveAspectRatio="xMidYMid" version="1.2" viewBox="0 0 16415.333 4677.1107" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><metadata id="metadata652"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata><g id="g186" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id6"><rect id="rect189" class="BoundingBox" x="3299" y="3199" width="1303" height="1203" fill="none"/><path id="path191" d="m3950 4400h-650v-1200h1300v1200h-650z" fill="#00f"/><path id="path193" d="m3950
3 xmlns:dc="http://purl.org/dc/elements/1.1/" 34400h-650v-1200h1300v1200h-650z" fill="none" stroke="#3465a4"/><text id="text195" class="TextShape"><tspan id="tspan197" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan199" class="TextPosition" x="3739" y="4021"><tspan id="tspan201" fill="#ffffff">B</tspan></tspan></tspan></text>
4 xmlns:cc="http://creativecommons.org/ns#" 4</g></g><g id="g203" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id7"><rect id="rect206" class="BoundingBox" x="4599" y="3199" width="1303" height="1203" fill="none"/><path id="path208" d="m5250 4400h-650v-1200h1300v1200h-650z" fill="#0c0"/><path id="path210" d="m5250 4400h-650v-1200h1300v1200h-650z" fill="none" stroke="#3465a4"/><text id="text212" class="TextShape"><tspan id="tspan214" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan216" class="TextPosition" x="5003" y="4021"><tspan id="tspan218" fill="#ffffff">G</tspan></tspan></tspan></text>
5 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 5</g></g><g id="g220" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id8"><rect id="rect223" class="BoundingBox" x="3299" y="4399" width="1303" height="1203" fill="none"/><path id="path225" d="m3950 5600h-650v-1200h1300v1200h-650z" fill="#0c0"/><path id="path227" d="m3950 5600h-650v-1200h1300v1200h-650z" fill="none" stroke="#3465a4"/><text id="text229" class="TextShape"><tspan id="tspan231" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan233" class="TextPosition" x="3703" y="5221"><tspan id="tspan235" fill="#ffffff">G</tspan></tspan></tspan></text>
6 xmlns:svg="http://www.w3.org/2000/svg" 6</g></g><g id="g237" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id9"><rect id="rect240" class="BoundingBox" x="4599" y="4399" width="1303" height="1203" fill="none"/><path id="path242" d="m5250 5600h-650v-1200h1300v1200h-650z" fill="#f00"/><path id="path244" d="m5250 5600h-650v-1200h1300v1200h-650z" fill="none" stroke="#3465a4"/><text id="text246" class="TextShape"><tspan id="tspan248" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan250" class="TextPosition" x="5022" y="5221"><tspan id="tspan252" fill="#ffffff">R</tspan></tspan></tspan></text>
7 xmlns="http://www.w3.org/2000/svg" 7</g></g><g id="g254" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id10" fill="none"><rect id="rect257" class="BoundingBox" x="5999" y="3299" width="1003" height="1003"/><path id="path259" d="m6500 4300h-500v-1e3h1e3v1e3h-500z" stroke="#00f"/></g></g><g id="g261" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id11" fill="none"><rect id="rect264" class="BoundingBox" x="4699" y="5699" width="1003" height="1003"/><path id="path266" d="m5200 6700h-500v-1e3h1e3v1e3h-500z" stroke="#0c0"/></g></g><g id="g268" class="com.sun.star.drawing.TextShape" transform="translate(-3285.9 -3185.9)"><g id="id12"><rect id="rect271" class="BoundingBox" x="4e3" y="6900" width="2374" height="963" fill="none"/><text id="text273" class="TextShape"><tspan id="tspan275" class="TextParagraph" font-family="sans-serif" font-size="635px"
8 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 8font-weight="400"><tspan id="tspan277" class="TextPosition" x="4250" y="7601"><tspan id="tspan279" fill="#000000">BGGR</tspan></tspan></tspan></text>
9 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 9</g></g><g id="g281" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id13"><rect id="rect284" class="BoundingBox" x="8799" y="3199" width="1303" height="1203" fill="none"/><path id="path286" d="m9450 4400h-650v-1200h1300v1200h-650z" fill="#00f"/><path id="path288" d="m9450 4400h-650v-1200h1300v1200h-650z" fill="none" stroke="#3465a4"/><text id="text290" class="TextShape"><tspan id="tspan292" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan294" class="TextPosition" x="9239" y="4021"><tspan id="tspan296" fill="#ffffff">B</tspan></tspan></tspan></text>
10 version="1.2" 10</g></g><g id="g298" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id14"><rect id="rect301" class="BoundingBox" x="7499" y="3199" width="1303" height="1203" fill="none"/><path id="path303" d="m8150 4400h-650v-1200h1300v1200h-650z" fill="#0c0"/><path id="path305" d="m8150 4400h-650v-1200h1300v1200h-650z" fill="none" stroke="#3465a4"/><text id="text307" class="TextShape"><tspan id="tspan309" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan311" class="TextPosition" x="7903" y="4021"><tspan id="tspan313" fill="#ffffff">G</tspan></tspan></tspan></text>
11 width="164.15334mm" 11</g></g><g id="g315" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id15"><rect id="rect318" class="BoundingBox" x="8799" y="4399" width="1303" height="1203" fill="none"/><path id="path320" d="m9450 5600h-650v-1200h1300v1200h-650z" fill="#0c0"/><path id="path322" d="m9450 5600h-650v-1200h1300v1200h-650z" fill="none" stroke="#3465a4"/><text id="text324" class="TextShape"><tspan id="tspan326" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan328" class="TextPosition" x="9203" y="5221"><tspan id="tspan330" fill="#ffffff">G</tspan></tspan></tspan></text>
12 height="46.771107mm" 12</g></g><g id="g332" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id16"><rect id="rect335" class="BoundingBox" x="7499" y="4399" width="1303" height="1203" fill="none"/><path id="path337" d="m8150 5600h-650v-1200h1300v1200h-650z" fill="#f00"/><path id="path339" d="m8150 5600h-650v-1200h1300v1200h-650z" fill="none" stroke="#3465a4"/><text id="text341" class="TextShape"><tspan id="tspan343" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan345" class="TextPosition" x="7922" y="5221"><tspan id="tspan347" fill="#ffffff">R</tspan></tspan></tspan></text>
13 viewBox="0 0 16415.333 4677.1107" 13</g></g><g id="g349" class="com.sun.star.drawing.TextShape" transform="translate(-3285.9 -3185.9)"><g id="id17"><rect id="rect352" class="BoundingBox" x="8200" y="6900" width="2374" height="963" fill="none"/><text id="text354" class="TextShape"><tspan id="tspan356" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan358" class="TextPosition" x="8450" y="7601"><tspan id="tspan360" fill="#000000">GBRG</tspan></tspan></tspan></text>
14 preserveAspectRatio="xMidYMid" 14</g></g><g id="g362" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id18"><rect id="rect365" class="BoundingBox" x="17299" y="4399" width="1303" height="1203" fill="none"/><path id="path367" d="m17950 5600h-650v-1200h1300v1200h-650z" fill="#00f"/><path id="path369" d="m17950 5600h-650v-1200h1300v1200h-650z" fill="none" stroke="#3465a4"/><text id="text371" class="TextShape"><tspan id="tspan373" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan375" class="TextPosition" x="17739" y="5221"><tspan id="tspan377" fill="#ffffff">B</tspan></tspan></tspan></text>
15 xml:space="preserve" 15</g></g><g id="g379" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id19"><rect id="rect382" class="BoundingBox" x="17299" y="3199" width="1303" height="1203" fill="none"/><path id="path384" d="m17950 4400h-650v-1200h1300v1200h-650z" fill="#0c0"/><path id="path386" d="m17950 4400h-650v-1200h1300v1200h-650z" fill="none" stroke="#3465a4"/><text id="text388" class="TextShape"><tspan id="tspan390" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan392" class="TextPosition" x="17703" y="4021"><tspan id="tspan394" fill="#ffffff">G</tspan></tspan></tspan></text>
16 id="svg2" 16</g></g><g id="g396" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id20"><rect id="rect399" class="BoundingBox" x="15999" y="4399" width="1303" height="1203" fill="none"/><path id="path401" d="m16650 5600h-650v-1200h1300v1200h-650z" fill="#0c0"/><path id="path403" d="m16650 5600h-650v-1200h1300v1200h-650z" fill="none" stroke="#3465a4"/><text id="text405" class="TextShape"><tspan id="tspan407" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan409" class="TextPosition" x="16403" y="5221"><tspan id="tspan411" fill="#ffffff">G</tspan></tspan></tspan></text>
17 inkscape:version="0.91 r13725" 17</g></g><g id="g413" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id21"><rect id="rect416" class="BoundingBox" x="15999" y="3199" width="1303" height="1203" fill="none"/><path id="path418" d="m16650 4400h-650v-1200h1300v1200h-650z" fill="#f00"/><path id="path420" d="m16650 4400h-650v-1200h1300v1200h-650z" fill="none" stroke="#3465a4"/><text id="text422" class="TextShape"><tspan id="tspan424" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan426" class="TextPosition" x="16422" y="4021"><tspan id="tspan428" fill="#ffffff">R</tspan></tspan></tspan></text>
18 sodipodi:docname="bayer.svg" 18</g></g><g id="g430" class="com.sun.star.drawing.TextShape" transform="translate(-3285.9 -3185.9)"><g id="id22"><rect id="rect433" class="BoundingBox" x="16700" y="6900" width="2374" height="963" fill="none"/><text id="text435" class="TextShape"><tspan id="tspan437" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan439" class="TextPosition" x="16950" y="7601"><tspan id="tspan441" fill="#000000">RGGB</tspan></tspan></tspan></text>
19 style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"><metadata 19</g></g><g id="g443" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id23"><rect id="rect446" class="BoundingBox" x="11699" y="4399" width="1303" height="1203" fill="none"/><path id="path448" d="m12350 5600h-650v-1200h1300v1200h-650z" fill="#00f"/><path id="path450" d="m12350 5600h-650v-1200h1300v1200h-650z" fill="none" stroke="#3465a4"/><text id="text452" class="TextShape"><tspan id="tspan454" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan456" class="TextPosition" x="12139" y="5221"><tspan id="tspan458" fill="#ffffff">B</tspan></tspan></tspan></text>
20 id="metadata652"><rdf:RDF><cc:Work 20</g></g><g id="g460" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id24"><rect id="rect463" class="BoundingBox" x="11699" y="3199" width="1303" height="1203" fill="none"/><path id="path465" d="m12350 4400h-650v-1200h1300v1200h-650z" fill="#0c0"/><path id="path467" d="m12350 4400h-650v-1200h1300v1200h-650z" fill="none" stroke="#3465a4"/><text id="text469" class="TextShape"><tspan id="tspan471" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan473" class="TextPosition" x="12103" y="4021"><tspan id="tspan475" fill="#ffffff">G</tspan></tspan></tspan></text>
21 rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type 21</g></g><g id="g477" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id25"><rect id="rect480" class="BoundingBox" x="12999" y="4399" width="1303" height="1203" fill="none"/><path id="path482" d="m13650 5600h-650v-1200h1300v1200h-650z" fill="#0c0"/><path id="path484" d="m13650 5600h-650v-1200h1300v1200h-650z" fill="none" stroke="#3465a4"/><text id="text486" class="TextShape"><tspan id="tspan488" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan490" class="TextPosition" x="13403" y="5221"><tspan id="tspan492" fill="#ffffff">G</tspan></tspan></tspan></text>
22 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><sodipodi:namedview 22</g></g><g id="g494" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id26"><rect id="rect497" class="BoundingBox" x="12999" y="3199" width="1303" height="1203" fill="none"/><path id="path499" d="m13650 4400h-650v-1200h1300v1200h-650z" fill="#f00"/><path id="path501" d="m13650 4400h-650v-1200h1300v1200h-650z" fill="none" stroke="#3465a4"/><text id="text503" class="TextShape"><tspan id="tspan505" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan507" class="TextPosition" x="13422" y="4021"><tspan id="tspan509" fill="#ffffff">R</tspan></tspan></tspan></text>
23 pagecolor="#ffffff" 23</g></g><g id="g511" class="com.sun.star.drawing.TextShape" transform="translate(-3285.9 -3185.9)"><g id="id27"><rect id="rect514" class="BoundingBox" x="12400" y="6900" width="2374" height="963" fill="none"/><text id="text516" class="TextShape"><tspan id="tspan518" class="TextParagraph" font-family="sans-serif" font-size="635px" font-weight="400"><tspan id="tspan520" class="TextPosition" x="12650" y="7601"><tspan id="tspan522" fill="#000000">GRBG</tspan></tspan></tspan></text>
24 bordercolor="#666666" 24</g></g><g id="g524" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id28" fill="none"><rect id="rect527" class="BoundingBox" x="5999" y="5699" width="1003" height="1003"/><path id="path529" d="m6500 6700h-500v-1e3h1e3v1e3h-500z" stroke="#00f"/></g></g><g id="g531" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id29" fill="none"><rect id="rect534" class="BoundingBox" x="3399" y="5699" width="1003" height="1003"/><path id="path536" d="m3900 6700h-500v-1e3h1e3v1e3h-500z" stroke="#00f"/></g></g><g id="g538" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id30" fill="none"><rect id="rect541" class="BoundingBox" x="5999" y="4499" width="1003" height="1003"/><path id="path543" d="m6500 5500h-500v-1e3h1e3v1e3h-500z" stroke="#0c0"/></g></g><g id="g545"
25 borderopacity="1" 25class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id31" fill="none"><rect id="rect548" class="BoundingBox" x="7599" y="5799" width="1003" height="1003"/><path id="path550" d="m8100 6800h-500v-1e3h1e3v1e3h-500z" stroke="#0c0"/></g></g><g id="g552" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id32" fill="none"><rect id="rect555" class="BoundingBox" x="10199" y="5799" width="1003" height="1003"/><path id="path557" d="m10700 6800h-500v-1e3h1e3v1e3h-500z" stroke="#0c0"/></g></g><g id="g559" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id33" fill="none"><rect id="rect562" class="BoundingBox" x="8899" y="5799" width="1003" height="1003"/><path id="path564" d="m9400 6800h-500v-1e3h1e3v1e3h-500z" stroke="#00f"/></g></g><g id="g566" class="com.sun.star.drawing.CustomShape"
26 objecttolerance="10" 26transform="translate(-3285.9 -3185.9)"><g id="id34" fill="none"><rect id="rect569" class="BoundingBox" x="10199" y="4499" width="1003" height="1003"/><path id="path571" d="m10700 5500h-500v-1e3h1e3v1e3h-500z" stroke="#f00"/></g></g><g id="g573" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id35" fill="none"><rect id="rect576" class="BoundingBox" x="10199" y="3299" width="1003" height="1003"/><path id="path578" d="m10700 4300h-500v-1e3h1e3v1e3h-500z" stroke="#0c0"/></g></g><g id="g580" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id36" fill="none"><rect id="rect583" class="BoundingBox" x="14399" y="3299" width="1003" height="1003"/><path id="path585" d="m14900 4300h-500v-1e3h1e3v1e3h-500z" stroke="#0c0"/></g></g><g id="g587" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g
27 gridtolerance="10" 27id="id37" fill="none"><rect id="rect590" class="BoundingBox" x="14399" y="5799" width="1003" height="1003"/><path id="path592" d="m14900 6800h-500v-1e3h1e3v1e3h-500z" stroke="#0c0"/></g></g><g id="g594" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id38" fill="none"><rect id="rect597" class="BoundingBox" x="11799" y="5799" width="1003" height="1003"/><path id="path599" d="m12300 6800h-500v-1e3h1e3v1e3h-500z" stroke="#0c0"/></g></g><g id="g601" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id39" fill="none"><rect id="rect604" class="BoundingBox" x="14399" y="4499" width="1003" height="1003"/><path id="path606" d="m14900 5500h-500v-1e3h1e3v1e3h-500z" stroke="#00f"/></g></g><g id="g608" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id40" fill="none"><rect id="rect611"
28 guidetolerance="10" 28class="BoundingBox" x="13099" y="5799" width="1003" height="1003"/><path id="path613" d="m13600 6800h-500v-1e3h1e3v1e3h-500z" stroke="#f00"/></g></g><g id="g615" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id41" fill="none"><rect id="rect618" class="BoundingBox" x="16099" y="5799" width="1003" height="1003"/><path id="path620" d="m16600 6800h-500v-1e3h1e3v1e3h-500z" stroke="#f00"/></g></g><g id="g622" class="com.sun.star.drawing.CustomShape" transform="translate(-3398.8 -3185.9)"><g id="id42" fill="none"><rect id="rect625" class="BoundingBox" x="18799" y="5799" width="1003" height="1003"/><path id="path627" d="m19300 6800h-500v-1e3h1e3v1e3h-500z" stroke="#f00"/></g></g><g id="g629" class="com.sun.star.drawing.CustomShape" transform="translate(-3398.8 -3185.9)"><g id="id43" fill="none"><rect id="rect632" class="BoundingBox" x="18799" y="3299"
29 inkscape:pageopacity="0" 29width="1003" height="1003"/><path id="path634" d="m19300 4300h-500v-1e3h1e3v1e3h-500z" stroke="#f00"/></g></g><g id="g636" class="com.sun.star.drawing.CustomShape" transform="translate(-3285.9 -3185.9)"><g id="id44" fill="none"><rect id="rect639" class="BoundingBox" x="17399" y="5799" width="1003" height="1003"/><path id="path641" d="m17900 6800h-500v-1e3h1e3v1e3h-500z" stroke="#0c0"/></g></g><g id="g643" class="com.sun.star.drawing.CustomShape" transform="translate(-3398.8 -3185.9)"><g id="id45" fill="none"><rect id="rect646" class="BoundingBox" x="18799" y="4499" width="1003" height="1003"/><path id="path648" d="m19300 5500h-500v-1e3h1e3v1e3h-500z" stroke="#0c0"/></g></g></svg>
30 inkscape:pageshadow="2"
31 inkscape:window-width="1920"
32 inkscape:window-height="997"
33 id="namedview650"
34 showgrid="false"
35 fit-margin-top="0"
36 fit-margin-left="0"
37 fit-margin-right="0"
38 fit-margin-bottom="0"
39 inkscape:zoom="2.4000866"
40 inkscape:cx="290.82284"
41 inkscape:cy="82.862197"
42 inkscape:window-x="1920"
43 inkscape:window-y="30"
44 inkscape:window-maximized="1"
45 inkscape:current-layer="svg2" /><defs
46 class="ClipPathGroup"
47 id="defs4" /><defs
48 id="defs9" /><defs
49 id="defs82" /><defs
50 id="defs105" /><defs
51 class="TextShapeIndex"
52 id="defs116" /><defs
53 class="EmbeddedBulletChars"
54 id="defs120" /><defs
55 class="TextEmbeddedBitmaps"
56 id="defs149" /><g
57 class="com.sun.star.drawing.CustomShape"
58 id="g186"
59 transform="translate(-3285.889,-3185.889)"><g
60 id="id6"><rect
61 class="BoundingBox"
62 x="3299"
63 y="3199"
64 width="1303"
65 height="1203"
66 id="rect189"
67 style="fill:none;stroke:none" /><path
68 d="m 3950,4400 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
69 id="path191"
70 inkscape:connector-curvature="0"
71 style="fill:#0000ff;stroke:none" /><path
72 d="m 3950,4400 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
73 id="path193"
74 inkscape:connector-curvature="0"
75 style="fill:none;stroke:#3465a4" /><text
76 class="TextShape"
77 id="text195"><tspan
78 class="TextParagraph"
79 font-size="635px"
80 font-weight="400"
81 id="tspan197"
82 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
83 class="TextPosition"
84 x="3739"
85 y="4021"
86 id="tspan199"><tspan
87 id="tspan201"
88 style="fill:#ffffff;stroke:none">B</tspan></tspan></tspan></text>
89</g></g><g
90 class="com.sun.star.drawing.CustomShape"
91 id="g203"
92 transform="translate(-3285.889,-3185.889)"><g
93 id="id7"><rect
94 class="BoundingBox"
95 x="4599"
96 y="3199"
97 width="1303"
98 height="1203"
99 id="rect206"
100 style="fill:none;stroke:none" /><path
101 d="m 5250,4400 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
102 id="path208"
103 inkscape:connector-curvature="0"
104 style="fill:#00cc00;stroke:none" /><path
105 d="m 5250,4400 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
106 id="path210"
107 inkscape:connector-curvature="0"
108 style="fill:none;stroke:#3465a4" /><text
109 class="TextShape"
110 id="text212"><tspan
111 class="TextParagraph"
112 font-size="635px"
113 font-weight="400"
114 id="tspan214"
115 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
116 class="TextPosition"
117 x="5003"
118 y="4021"
119 id="tspan216"><tspan
120 id="tspan218"
121 style="fill:#ffffff;stroke:none">G</tspan></tspan></tspan></text>
122</g></g><g
123 class="com.sun.star.drawing.CustomShape"
124 id="g220"
125 transform="translate(-3285.889,-3185.889)"><g
126 id="id8"><rect
127 class="BoundingBox"
128 x="3299"
129 y="4399"
130 width="1303"
131 height="1203"
132 id="rect223"
133 style="fill:none;stroke:none" /><path
134 d="m 3950,5600 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
135 id="path225"
136 inkscape:connector-curvature="0"
137 style="fill:#00cc00;stroke:none" /><path
138 d="m 3950,5600 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
139 id="path227"
140 inkscape:connector-curvature="0"
141 style="fill:none;stroke:#3465a4" /><text
142 class="TextShape"
143 id="text229"><tspan
144 class="TextParagraph"
145 font-size="635px"
146 font-weight="400"
147 id="tspan231"
148 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
149 class="TextPosition"
150 x="3703"
151 y="5221"
152 id="tspan233"><tspan
153 id="tspan235"
154 style="fill:#ffffff;stroke:none">G</tspan></tspan></tspan></text>
155</g></g><g
156 class="com.sun.star.drawing.CustomShape"
157 id="g237"
158 transform="translate(-3285.889,-3185.889)"><g
159 id="id9"><rect
160 class="BoundingBox"
161 x="4599"
162 y="4399"
163 width="1303"
164 height="1203"
165 id="rect240"
166 style="fill:none;stroke:none" /><path
167 d="m 5250,5600 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
168 id="path242"
169 inkscape:connector-curvature="0"
170 style="fill:#ff0000;stroke:none" /><path
171 d="m 5250,5600 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
172 id="path244"
173 inkscape:connector-curvature="0"
174 style="fill:none;stroke:#3465a4" /><text
175 class="TextShape"
176 id="text246"><tspan
177 class="TextParagraph"
178 font-size="635px"
179 font-weight="400"
180 id="tspan248"
181 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
182 class="TextPosition"
183 x="5022"
184 y="5221"
185 id="tspan250"><tspan
186 id="tspan252"
187 style="fill:#ffffff;stroke:none">R</tspan></tspan></tspan></text>
188</g></g><g
189 class="com.sun.star.drawing.CustomShape"
190 id="g254"
191 transform="translate(-3285.889,-3185.889)"><g
192 id="id10"><rect
193 class="BoundingBox"
194 x="5999"
195 y="3299"
196 width="1003"
197 height="1003"
198 id="rect257"
199 style="fill:none;stroke:none" /><path
200 d="m 6500,4300 -500,0 0,-1000 1000,0 0,1000 -500,0 z"
201 id="path259"
202 inkscape:connector-curvature="0"
203 style="fill:none;stroke:#0000ff" /></g></g><g
204 class="com.sun.star.drawing.CustomShape"
205 id="g261"
206 transform="translate(-3285.889,-3185.889)"><g
207 id="id11"><rect
208 class="BoundingBox"
209 x="4699"
210 y="5699"
211 width="1003"
212 height="1003"
213 id="rect264"
214 style="fill:none;stroke:none" /><path
215 d="m 5200,6700 -500,0 0,-1000 1000,0 0,1000 -500,0 z"
216 id="path266"
217 inkscape:connector-curvature="0"
218 style="fill:none;stroke:#00cc00" /></g></g><g
219 class="com.sun.star.drawing.TextShape"
220 id="g268"
221 transform="translate(-3285.889,-3185.889)"><g
222 id="id12"><rect
223 class="BoundingBox"
224 x="4000"
225 y="6900"
226 width="2374"
227 height="963"
228 id="rect271"
229 style="fill:none;stroke:none" /><text
230 class="TextShape"
231 id="text273"><tspan
232 class="TextParagraph"
233 font-size="635px"
234 font-weight="400"
235 id="tspan275"
236 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
237 class="TextPosition"
238 x="4250"
239 y="7601"
240 id="tspan277"><tspan
241 id="tspan279"
242 style="fill:#000000;stroke:none">BGGR</tspan></tspan></tspan></text>
243</g></g><g
244 class="com.sun.star.drawing.CustomShape"
245 id="g281"
246 transform="translate(-3285.889,-3185.889)"><g
247 id="id13"><rect
248 class="BoundingBox"
249 x="8799"
250 y="3199"
251 width="1303"
252 height="1203"
253 id="rect284"
254 style="fill:none;stroke:none" /><path
255 d="m 9450,4400 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
256 id="path286"
257 inkscape:connector-curvature="0"
258 style="fill:#0000ff;stroke:none" /><path
259 d="m 9450,4400 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
260 id="path288"
261 inkscape:connector-curvature="0"
262 style="fill:none;stroke:#3465a4" /><text
263 class="TextShape"
264 id="text290"><tspan
265 class="TextParagraph"
266 font-size="635px"
267 font-weight="400"
268 id="tspan292"
269 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
270 class="TextPosition"
271 x="9239"
272 y="4021"
273 id="tspan294"><tspan
274 id="tspan296"
275 style="fill:#ffffff;stroke:none">B</tspan></tspan></tspan></text>
276</g></g><g
277 class="com.sun.star.drawing.CustomShape"
278 id="g298"
279 transform="translate(-3285.889,-3185.889)"><g
280 id="id14"><rect
281 class="BoundingBox"
282 x="7499"
283 y="3199"
284 width="1303"
285 height="1203"
286 id="rect301"
287 style="fill:none;stroke:none" /><path
288 d="m 8150,4400 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
289 id="path303"
290 inkscape:connector-curvature="0"
291 style="fill:#00cc00;stroke:none" /><path
292 d="m 8150,4400 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
293 id="path305"
294 inkscape:connector-curvature="0"
295 style="fill:none;stroke:#3465a4" /><text
296 class="TextShape"
297 id="text307"><tspan
298 class="TextParagraph"
299 font-size="635px"
300 font-weight="400"
301 id="tspan309"
302 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
303 class="TextPosition"
304 x="7903"
305 y="4021"
306 id="tspan311"><tspan
307 id="tspan313"
308 style="fill:#ffffff;stroke:none">G</tspan></tspan></tspan></text>
309</g></g><g
310 class="com.sun.star.drawing.CustomShape"
311 id="g315"
312 transform="translate(-3285.889,-3185.889)"><g
313 id="id15"><rect
314 class="BoundingBox"
315 x="8799"
316 y="4399"
317 width="1303"
318 height="1203"
319 id="rect318"
320 style="fill:none;stroke:none" /><path
321 d="m 9450,5600 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
322 id="path320"
323 inkscape:connector-curvature="0"
324 style="fill:#00cc00;stroke:none" /><path
325 d="m 9450,5600 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
326 id="path322"
327 inkscape:connector-curvature="0"
328 style="fill:none;stroke:#3465a4" /><text
329 class="TextShape"
330 id="text324"><tspan
331 class="TextParagraph"
332 font-size="635px"
333 font-weight="400"
334 id="tspan326"
335 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
336 class="TextPosition"
337 x="9203"
338 y="5221"
339 id="tspan328"><tspan
340 id="tspan330"
341 style="fill:#ffffff;stroke:none">G</tspan></tspan></tspan></text>
342</g></g><g
343 class="com.sun.star.drawing.CustomShape"
344 id="g332"
345 transform="translate(-3285.889,-3185.889)"><g
346 id="id16"><rect
347 class="BoundingBox"
348 x="7499"
349 y="4399"
350 width="1303"
351 height="1203"
352 id="rect335"
353 style="fill:none;stroke:none" /><path
354 d="m 8150,5600 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
355 id="path337"
356 inkscape:connector-curvature="0"
357 style="fill:#ff0000;stroke:none" /><path
358 d="m 8150,5600 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
359 id="path339"
360 inkscape:connector-curvature="0"
361 style="fill:none;stroke:#3465a4" /><text
362 class="TextShape"
363 id="text341"><tspan
364 class="TextParagraph"
365 font-size="635px"
366 font-weight="400"
367 id="tspan343"
368 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
369 class="TextPosition"
370 x="7922"
371 y="5221"
372 id="tspan345"><tspan
373 id="tspan347"
374 style="fill:#ffffff;stroke:none">R</tspan></tspan></tspan></text>
375</g></g><g
376 class="com.sun.star.drawing.TextShape"
377 id="g349"
378 transform="translate(-3285.889,-3185.889)"><g
379 id="id17"><rect
380 class="BoundingBox"
381 x="8200"
382 y="6900"
383 width="2374"
384 height="963"
385 id="rect352"
386 style="fill:none;stroke:none" /><text
387 class="TextShape"
388 id="text354"><tspan
389 class="TextParagraph"
390 font-size="635px"
391 font-weight="400"
392 id="tspan356"
393 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
394 class="TextPosition"
395 x="8450"
396 y="7601"
397 id="tspan358"><tspan
398 id="tspan360"
399 style="fill:#000000;stroke:none">GBRG</tspan></tspan></tspan></text>
400</g></g><g
401 class="com.sun.star.drawing.CustomShape"
402 id="g362"
403 transform="translate(-3285.889,-3185.889)"><g
404 id="id18"><rect
405 class="BoundingBox"
406 x="17299"
407 y="4399"
408 width="1303"
409 height="1203"
410 id="rect365"
411 style="fill:none;stroke:none" /><path
412 d="m 17950,5600 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
413 id="path367"
414 inkscape:connector-curvature="0"
415 style="fill:#0000ff;stroke:none" /><path
416 d="m 17950,5600 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
417 id="path369"
418 inkscape:connector-curvature="0"
419 style="fill:none;stroke:#3465a4" /><text
420 class="TextShape"
421 id="text371"><tspan
422 class="TextParagraph"
423 font-size="635px"
424 font-weight="400"
425 id="tspan373"
426 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
427 class="TextPosition"
428 x="17739"
429 y="5221"
430 id="tspan375"><tspan
431 id="tspan377"
432 style="fill:#ffffff;stroke:none">B</tspan></tspan></tspan></text>
433</g></g><g
434 class="com.sun.star.drawing.CustomShape"
435 id="g379"
436 transform="translate(-3285.889,-3185.889)"><g
437 id="id19"><rect
438 class="BoundingBox"
439 x="17299"
440 y="3199"
441 width="1303"
442 height="1203"
443 id="rect382"
444 style="fill:none;stroke:none" /><path
445 d="m 17950,4400 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
446 id="path384"
447 inkscape:connector-curvature="0"
448 style="fill:#00cc00;stroke:none" /><path
449 d="m 17950,4400 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
450 id="path386"
451 inkscape:connector-curvature="0"
452 style="fill:none;stroke:#3465a4" /><text
453 class="TextShape"
454 id="text388"><tspan
455 class="TextParagraph"
456 font-size="635px"
457 font-weight="400"
458 id="tspan390"
459 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
460 class="TextPosition"
461 x="17703"
462 y="4021"
463 id="tspan392"><tspan
464 id="tspan394"
465 style="fill:#ffffff;stroke:none">G</tspan></tspan></tspan></text>
466</g></g><g
467 class="com.sun.star.drawing.CustomShape"
468 id="g396"
469 transform="translate(-3285.889,-3185.889)"><g
470 id="id20"><rect
471 class="BoundingBox"
472 x="15999"
473 y="4399"
474 width="1303"
475 height="1203"
476 id="rect399"
477 style="fill:none;stroke:none" /><path
478 d="m 16650,5600 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
479 id="path401"
480 inkscape:connector-curvature="0"
481 style="fill:#00cc00;stroke:none" /><path
482 d="m 16650,5600 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
483 id="path403"
484 inkscape:connector-curvature="0"
485 style="fill:none;stroke:#3465a4" /><text
486 class="TextShape"
487 id="text405"><tspan
488 class="TextParagraph"
489 font-size="635px"
490 font-weight="400"
491 id="tspan407"
492 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
493 class="TextPosition"
494 x="16403"
495 y="5221"
496 id="tspan409"><tspan
497 id="tspan411"
498 style="fill:#ffffff;stroke:none">G</tspan></tspan></tspan></text>
499</g></g><g
500 class="com.sun.star.drawing.CustomShape"
501 id="g413"
502 transform="translate(-3285.889,-3185.889)"><g
503 id="id21"><rect
504 class="BoundingBox"
505 x="15999"
506 y="3199"
507 width="1303"
508 height="1203"
509 id="rect416"
510 style="fill:none;stroke:none" /><path
511 d="m 16650,4400 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
512 id="path418"
513 inkscape:connector-curvature="0"
514 style="fill:#ff0000;stroke:none" /><path
515 d="m 16650,4400 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
516 id="path420"
517 inkscape:connector-curvature="0"
518 style="fill:none;stroke:#3465a4" /><text
519 class="TextShape"
520 id="text422"><tspan
521 class="TextParagraph"
522 font-size="635px"
523 font-weight="400"
524 id="tspan424"
525 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
526 class="TextPosition"
527 x="16422"
528 y="4021"
529 id="tspan426"><tspan
530 id="tspan428"
531 style="fill:#ffffff;stroke:none">R</tspan></tspan></tspan></text>
532</g></g><g
533 class="com.sun.star.drawing.TextShape"
534 id="g430"
535 transform="translate(-3285.889,-3185.889)"><g
536 id="id22"><rect
537 class="BoundingBox"
538 x="16700"
539 y="6900"
540 width="2374"
541 height="963"
542 id="rect433"
543 style="fill:none;stroke:none" /><text
544 class="TextShape"
545 id="text435"><tspan
546 class="TextParagraph"
547 font-size="635px"
548 font-weight="400"
549 id="tspan437"
550 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
551 class="TextPosition"
552 x="16950"
553 y="7601"
554 id="tspan439"><tspan
555 id="tspan441"
556 style="fill:#000000;stroke:none">RGGB</tspan></tspan></tspan></text>
557</g></g><g
558 class="com.sun.star.drawing.CustomShape"
559 id="g443"
560 transform="translate(-3285.889,-3185.889)"><g
561 id="id23"><rect
562 class="BoundingBox"
563 x="11699"
564 y="4399"
565 width="1303"
566 height="1203"
567 id="rect446"
568 style="fill:none;stroke:none" /><path
569 d="m 12350,5600 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
570 id="path448"
571 inkscape:connector-curvature="0"
572 style="fill:#0000ff;stroke:none" /><path
573 d="m 12350,5600 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
574 id="path450"
575 inkscape:connector-curvature="0"
576 style="fill:none;stroke:#3465a4" /><text
577 class="TextShape"
578 id="text452"><tspan
579 class="TextParagraph"
580 font-size="635px"
581 font-weight="400"
582 id="tspan454"
583 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
584 class="TextPosition"
585 x="12139"
586 y="5221"
587 id="tspan456"><tspan
588 id="tspan458"
589 style="fill:#ffffff;stroke:none">B</tspan></tspan></tspan></text>
590</g></g><g
591 class="com.sun.star.drawing.CustomShape"
592 id="g460"
593 transform="translate(-3285.889,-3185.889)"><g
594 id="id24"><rect
595 class="BoundingBox"
596 x="11699"
597 y="3199"
598 width="1303"
599 height="1203"
600 id="rect463"
601 style="fill:none;stroke:none" /><path
602 d="m 12350,4400 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
603 id="path465"
604 inkscape:connector-curvature="0"
605 style="fill:#00cc00;stroke:none" /><path
606 d="m 12350,4400 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
607 id="path467"
608 inkscape:connector-curvature="0"
609 style="fill:none;stroke:#3465a4" /><text
610 class="TextShape"
611 id="text469"><tspan
612 class="TextParagraph"
613 font-size="635px"
614 font-weight="400"
615 id="tspan471"
616 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
617 class="TextPosition"
618 x="12103"
619 y="4021"
620 id="tspan473"><tspan
621 id="tspan475"
622 style="fill:#ffffff;stroke:none">G</tspan></tspan></tspan></text>
623</g></g><g
624 class="com.sun.star.drawing.CustomShape"
625 id="g477"
626 transform="translate(-3285.889,-3185.889)"><g
627 id="id25"><rect
628 class="BoundingBox"
629 x="12999"
630 y="4399"
631 width="1303"
632 height="1203"
633 id="rect480"
634 style="fill:none;stroke:none" /><path
635 d="m 13650,5600 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
636 id="path482"
637 inkscape:connector-curvature="0"
638 style="fill:#00cc00;stroke:none" /><path
639 d="m 13650,5600 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
640 id="path484"
641 inkscape:connector-curvature="0"
642 style="fill:none;stroke:#3465a4" /><text
643 class="TextShape"
644 id="text486"><tspan
645 class="TextParagraph"
646 font-size="635px"
647 font-weight="400"
648 id="tspan488"
649 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
650 class="TextPosition"
651 x="13403"
652 y="5221"
653 id="tspan490"><tspan
654 id="tspan492"
655 style="fill:#ffffff;stroke:none">G</tspan></tspan></tspan></text>
656</g></g><g
657 class="com.sun.star.drawing.CustomShape"
658 id="g494"
659 transform="translate(-3285.889,-3185.889)"><g
660 id="id26"><rect
661 class="BoundingBox"
662 x="12999"
663 y="3199"
664 width="1303"
665 height="1203"
666 id="rect497"
667 style="fill:none;stroke:none" /><path
668 d="m 13650,4400 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
669 id="path499"
670 inkscape:connector-curvature="0"
671 style="fill:#ff0000;stroke:none" /><path
672 d="m 13650,4400 -650,0 0,-1200 1300,0 0,1200 -650,0 z"
673 id="path501"
674 inkscape:connector-curvature="0"
675 style="fill:none;stroke:#3465a4" /><text
676 class="TextShape"
677 id="text503"><tspan
678 class="TextParagraph"
679 font-size="635px"
680 font-weight="400"
681 id="tspan505"
682 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
683 class="TextPosition"
684 x="13422"
685 y="4021"
686 id="tspan507"><tspan
687 id="tspan509"
688 style="fill:#ffffff;stroke:none">R</tspan></tspan></tspan></text>
689</g></g><g
690 class="com.sun.star.drawing.TextShape"
691 id="g511"
692 transform="translate(-3285.889,-3185.889)"><g
693 id="id27"><rect
694 class="BoundingBox"
695 x="12400"
696 y="6900"
697 width="2374"
698 height="963"
699 id="rect514"
700 style="fill:none;stroke:none" /><text
701 class="TextShape"
702 id="text516"><tspan
703 class="TextParagraph"
704 font-size="635px"
705 font-weight="400"
706 id="tspan518"
707 style="font-weight:400;font-size:635px;font-family:'Liberation Sans', sans-serif"><tspan
708 class="TextPosition"
709 x="12650"
710 y="7601"
711 id="tspan520"><tspan
712 id="tspan522"
713 style="fill:#000000;stroke:none">GRBG</tspan></tspan></tspan></text>
714</g></g><g
715 class="com.sun.star.drawing.CustomShape"
716 id="g524"
717 transform="translate(-3285.889,-3185.889)"><g
718 id="id28"><rect
719 class="BoundingBox"
720 x="5999"
721 y="5699"
722 width="1003"
723 height="1003"
724 id="rect527"
725 style="fill:none;stroke:none" /><path
726 d="m 6500,6700 -500,0 0,-1000 1000,0 0,1000 -500,0 z"
727 id="path529"
728 inkscape:connector-curvature="0"
729 style="fill:none;stroke:#0000ff" /></g></g><g
730 class="com.sun.star.drawing.CustomShape"
731 id="g531"
732 transform="translate(-3285.889,-3185.889)"><g
733 id="id29"><rect
734 class="BoundingBox"
735 x="3399"
736 y="5699"
737 width="1003"
738 height="1003"
739 id="rect534"
740 style="fill:none;stroke:none" /><path
741 d="m 3900,6700 -500,0 0,-1000 1000,0 0,1000 -500,0 z"
742 id="path536"
743 inkscape:connector-curvature="0"
744 style="fill:none;stroke:#0000ff" /></g></g><g
745 class="com.sun.star.drawing.CustomShape"
746 id="g538"
747 transform="translate(-3285.889,-3185.889)"><g
748 id="id30"><rect
749 class="BoundingBox"
750 x="5999"
751 y="4499"
752 width="1003"
753 height="1003"
754 id="rect541"
755 style="fill:none;stroke:none" /><path
756 d="m 6500,5500 -500,0 0,-1000 1000,0 0,1000 -500,0 z"
757 id="path543"
758 inkscape:connector-curvature="0"
759 style="fill:none;stroke:#00cc00" /></g></g><g
760 class="com.sun.star.drawing.CustomShape"
761 id="g545"
762 transform="translate(-3285.889,-3185.889)"><g
763 id="id31"><rect
764 class="BoundingBox"
765 x="7599"
766 y="5799"
767 width="1003"
768 height="1003"
769 id="rect548"
770 style="fill:none;stroke:none" /><path
771 d="m 8100,6800 -500,0 0,-1000 1000,0 0,1000 -500,0 z"
772 id="path550"
773 inkscape:connector-curvature="0"
774 style="fill:none;stroke:#00cc00" /></g></g><g
775 class="com.sun.star.drawing.CustomShape"
776 id="g552"
777 transform="translate(-3285.889,-3185.889)"><g
778 id="id32"><rect
779 class="BoundingBox"
780 x="10199"
781 y="5799"
782 width="1003"
783 height="1003"
784 id="rect555"
785 style="fill:none;stroke:none" /><path
786 d="m 10700,6800 -500,0 0,-1000 1000,0 0,1000 -500,0 z"
787 id="path557"
788 inkscape:connector-curvature="0"
789 style="fill:none;stroke:#00cc00" /></g></g><g
790 class="com.sun.star.drawing.CustomShape"
791 id="g559"
792 transform="translate(-3285.889,-3185.889)"><g
793 id="id33"><rect
794 class="BoundingBox"
795 x="8899"
796 y="5799"
797 width="1003"
798 height="1003"
799 id="rect562"
800 style="fill:none;stroke:none" /><path
801 d="m 9400,6800 -500,0 0,-1000 1000,0 0,1000 -500,0 z"
802 id="path564"
803 inkscape:connector-curvature="0"
804 style="fill:none;stroke:#0000ff" /></g></g><g
805 class="com.sun.star.drawing.CustomShape"
806 id="g566"
807 transform="translate(-3285.889,-3185.889)"><g
808 id="id34"><rect
809 class="BoundingBox"
810 x="10199"
811 y="4499"
812 width="1003"
813 height="1003"
814 id="rect569"
815 style="fill:none;stroke:none" /><path
816 d="m 10700,5500 -500,0 0,-1000 1000,0 0,1000 -500,0 z"
817 id="path571"
818 inkscape:connector-curvature="0"
819 style="fill:none;stroke:#ff0000" /></g></g><g
820 class="com.sun.star.drawing.CustomShape"
821 id="g573"
822 transform="translate(-3285.889,-3185.889)"><g
823 id="id35"><rect
824 class="BoundingBox"
825 x="10199"
826 y="3299"
827 width="1003"
828 height="1003"
829 id="rect576"
830 style="fill:none;stroke:none" /><path
831 d="m 10700,4300 -500,0 0,-1000 1000,0 0,1000 -500,0 z"
832 id="path578"
833 inkscape:connector-curvature="0"
834 style="fill:none;stroke:#00cc00" /></g></g><g
835 class="com.sun.star.drawing.CustomShape"
836 id="g580"
837 transform="translate(-3285.889,-3185.889)"><g
838 id="id36"><rect
839 class="BoundingBox"
840 x="14399"
841 y="3299"
842 width="1003"
843 height="1003"
844 id="rect583"
845 style="fill:none;stroke:none" /><path
846 d="m 14900,4300 -500,0 0,-1000 1000,0 0,1000 -500,0 z"
847 id="path585"
848 inkscape:connector-curvature="0"
849 style="fill:none;stroke:#00cc00" /></g></g><g
850 class="com.sun.star.drawing.CustomShape"
851 id="g587"
852 transform="translate(-3285.889,-3185.889)"><g
853 id="id37"><rect
854 class="BoundingBox"
855 x="14399"
856 y="5799"
857 width="1003"
858 height="1003"
859 id="rect590"
860 style="fill:none;stroke:none" /><path
861 d="m 14900,6800 -500,0 0,-1000 1000,0 0,1000 -500,0 z"
862 id="path592"
863 inkscape:connector-curvature="0"
864 style="fill:none;stroke:#00cc00" /></g></g><g
865 class="com.sun.star.drawing.CustomShape"
866 id="g594"
867 transform="translate(-3285.889,-3185.889)"><g
868 id="id38"><rect
869 class="BoundingBox"
870 x="11799"
871 y="5799"
872 width="1003"
873 height="1003"
874 id="rect597"
875 style="fill:none;stroke:none" /><path
876 d="m 12300,6800 -500,0 0,-1000 1000,0 0,1000 -500,0 z"
877 id="path599"
878 inkscape:connector-curvature="0"
879 style="fill:none;stroke:#00cc00" /></g></g><g
880 class="com.sun.star.drawing.CustomShape"
881 id="g601"
882 transform="translate(-3285.889,-3185.889)"><g
883 id="id39"><rect
884 class="BoundingBox"
885 x="14399"
886 y="4499"
887 width="1003"
888 height="1003"
889 id="rect604"
890 style="fill:none;stroke:none" /><path
891 d="m 14900,5500 -500,0 0,-1000 1000,0 0,1000 -500,0 z"
892 id="path606"
893 inkscape:connector-curvature="0"
894 style="fill:none;stroke:#0000ff" /></g></g><g
895 class="com.sun.star.drawing.CustomShape"
896 id="g608"
897 transform="translate(-3285.889,-3185.889)"><g
898 id="id40"><rect
899 class="BoundingBox"
900 x="13099"
901 y="5799"
902 width="1003"
903 height="1003"
904 id="rect611"
905 style="fill:none;stroke:none" /><path
906 d="m 13600,6800 -500,0 0,-1000 1000,0 0,1000 -500,0 z"
907 id="path613"
908 inkscape:connector-curvature="0"
909 style="fill:none;stroke:#ff0000" /></g></g><g
910 class="com.sun.star.drawing.CustomShape"
911 id="g615"
912 transform="translate(-3285.889,-3185.889)"><g
913 id="id41"><rect
914 class="BoundingBox"
915 x="16099"
916 y="5799"
917 width="1003"
918 height="1003"
919 id="rect618"
920 style="fill:none;stroke:none" /><path
921 d="m 16600,6800 -500,0 0,-1000 1000,0 0,1000 -500,0 z"
922 id="path620"
923 inkscape:connector-curvature="0"
924 style="fill:none;stroke:#ff0000" /></g></g><g
925 class="com.sun.star.drawing.CustomShape"
926 id="g622"
927 transform="translate(-3398.7778,-3185.889)"><g
928 id="id42"><rect
929 class="BoundingBox"
930 x="18799"
931 y="5799"
932 width="1003"
933 height="1003"
934 id="rect625"
935 style="fill:none;stroke:none" /><path
936 d="m 19300,6800 -500,0 0,-1000 1000,0 0,1000 -500,0 z"
937 id="path627"
938 inkscape:connector-curvature="0"
939 style="fill:none;stroke:#ff0000" /></g></g><g
940 class="com.sun.star.drawing.CustomShape"
941 id="g629"
942 transform="translate(-3398.7778,-3185.889)"><g
943 id="id43"><rect
944 class="BoundingBox"
945 x="18799"
946 y="3299"
947 width="1003"
948 height="1003"
949 id="rect632"
950 style="fill:none;stroke:none" /><path
951 d="m 19300,4300 -500,0 0,-1000 1000,0 0,1000 -500,0 z"
952 id="path634"
953 inkscape:connector-curvature="0"
954 style="fill:none;stroke:#ff0000" /></g></g><g
955 class="com.sun.star.drawing.CustomShape"
956 id="g636"
957 transform="translate(-3285.889,-3185.889)"><g
958 id="id44"><rect
959 class="BoundingBox"
960 x="17399"
961 y="5799"
962 width="1003"
963 height="1003"
964 id="rect639"
965 style="fill:none;stroke:none" /><path
966 d="m 17900,6800 -500,0 0,-1000 1000,0 0,1000 -500,0 z"
967 id="path641"
968 inkscape:connector-curvature="0"
969 style="fill:none;stroke:#00cc00" /></g></g><g
970 class="com.sun.star.drawing.CustomShape"
971 id="g643"
972 transform="translate(-3398.7778,-3185.889)"><g
973 id="id45"><rect
974 class="BoundingBox"
975 x="18799"
976 y="4499"
977 width="1003"
978 height="1003"
979 id="rect646"
980 style="fill:none;stroke:none" /><path
981 d="m 19300,5500 -500,0 0,-1000 1000,0 0,1000 -500,0 z"
982 id="path648"
983 inkscape:connector-curvature="0"
984 style="fill:none;stroke:#00cc00" /></g></g></svg> \ No newline at end of file
diff --git a/Documentation/media/uapi/v4l/constraints.svg b/Documentation/media/uapi/v4l/constraints.svg
index f710ee46b1f8..7e5d7185ca49 100644
--- a/Documentation/media/uapi/v4l/constraints.svg
+++ b/Documentation/media/uapi/v4l/constraints.svg
@@ -1,346 +1,10 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<svg 2<svg id="svg2" width="249.01mm" height="143.01mm" fill-rule="evenodd" stroke-linejoin="round" stroke-width="28.222" preserveAspectRatio="xMidYMid" version="1.2" viewBox="0 0 24900.998 14300.999" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"><metadata id="metadata325"><rdf:RDF><cc:Work rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/><dc:title/></cc:Work></rdf:RDF></metadata><defs id="defs4" class="ClipPathGroup"><marker id="marker6261" overflow="visible" orient="auto"><path id="path6263" transform="matrix(-.4 0 0 -.4 -4 0)" d="m0 0 5-5-17.5 5 17.5 5-5-5z" fill="#f00" fill-rule="evenodd" stroke="#f00" stroke-width="1pt"/></marker><marker id="marker6125" overflow="visible"
3 xmlns:dc="http://purl.org/dc/elements/1.1/" 3orient="auto"><path id="path6127" transform="matrix(-.4 0 0 -.4 -4 0)" d="m0 0 5-5-17.5 5 17.5 5-5-5z" fill="#f00" fill-rule="evenodd" stroke="#f00" stroke-width="1pt"/></marker><marker id="marker6001" overflow="visible" orient="auto"><path id="path6003" transform="matrix(-.4 0 0 -.4 -4 0)" d="m0 0 5-5-17.5 5 17.5 5-5-5z" fill="#f00" fill-rule="evenodd" stroke="#f00" stroke-width="1pt"/></marker><marker id="marker5693" overflow="visible" orient="auto"><path id="path5695" transform="matrix(-.4 0 0 -.4 -4 0)" d="m0 0 5-5-17.5 5 17.5 5-5-5z" fill="#f00" fill-rule="evenodd" stroke="#f00" stroke-width="1pt"/></marker><marker id="marker5575" overflow="visible" orient="auto"><path id="path5577" transform="matrix(-.4 0 0 -.4 -4 0)" d="m0 0 5-5-17.5 5 17.5 5-5-5z" fill="#000080" fill-rule="evenodd" stroke="#000080" stroke-width="1pt"/></marker><marker id="marker5469" overflow="visible"
4 xmlns:cc="http://creativecommons.org/ns#" 4orient="auto"><path id="path5471" transform="matrix(-.4 0 0 -.4 -4 0)" d="m0 0 5-5-17.5 5 17.5 5-5-5z" fill="#000080" fill-rule="evenodd" stroke="#000080" stroke-width="1pt"/></marker><marker id="marker5259" overflow="visible" orient="auto"><path id="path5261" transform="matrix(-.4 0 0 -.4 -4 0)" d="m0 0 5-5-17.5 5 17.5 5-5-5z" fill="#000080" fill-rule="evenodd" stroke="#000080" stroke-width="1pt"/></marker><marker id="Arrow2Mend" overflow="visible" orient="auto"><path id="path4241" transform="scale(-.6)" d="m8.7186 4.0337-10.926-4.0177 10.926-4.0177c-1.7455 2.3721-1.7354 5.6175-6e-7 8.0354z" fill="#000080" fill-rule="evenodd" stroke="#000080" stroke-linejoin="round" stroke-width=".625"/></marker></defs><g id="g204" class="com.sun.star.drawing.CustomShape" transform="translate(-1350,-3250)"><g id="id6"><rect id="rect207" class="BoundingBox" x="1350" y="3250" width="24901" height="14301"
5 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 5fill="none"/><path id="path209" d="m13800 17500h-12400v-14200h24800v14200h-12400z" fill="#fff"/><path id="path211" d="m13800 17500h-12400v-14200h24800v14200h-12400z" fill="none" stroke="#f00" stroke-linejoin="round" stroke-width="100"/><text id="text213" class="TextShape"><tspan id="tspan215" class="TextParagraph" font-family="sans-serif" font-size="846px" font-weight="400"><tspan id="tspan217" class="TextPosition" x="1652" y="17093" fill="#ff0000"><tspan id="tspan219"/><tspan id="tspan221">V4L2_SEL_FLAG_GE</tspan></tspan></tspan></text>
6 xmlns:svg="http://www.w3.org/2000/svg" 6</g></g><rect id="rect226" class="BoundingBox" x="3e3" y="2200" width="18101" height="10101" fill="none"/><path id="path228" d="m12050 12250h-9e3v-1e4h18000v1e4h-9e3z" fill="#fff"/><path id="path230" d="m12050 12250h-9e3v-1e4h18000v1e4h-9e3z" fill="none" stroke="#000" stroke-linejoin="round" stroke-width="100"/><text id="text232" class="TextShape" x="-1350" y="-3250"><tspan id="tspan234" class="TextParagraph" font-family="sans-serif" font-size="987px" font-weight="400"><tspan id="tspan236" class="TextPosition" x="3227" y="11503" fill="#000000"><tspan id="tspan238"/><tspan id="tspan240">ORIGINAL</tspan></tspan></tspan></text>
7 xmlns="http://www.w3.org/2000/svg" 7<g id="g242" class="com.sun.star.drawing.CustomShape" transform="translate(-1350,-3250)"><g id="id8"><rect id="rect245" class="BoundingBox" x="7050" y="7950" width="7901" height="5501" fill="none"/><path id="path247" d="m11000 13400h-3900v-5400h7800v5400h-3900z" fill="#fff"/><path id="path249" d="m11000 13400h-3900v-5400h7800v5400h-3900z" fill="none" stroke="#3465a4" stroke-linejoin="round" stroke-width="100"/><text id="text251" class="TextShape"><tspan id="tspan253" class="TextParagraph" font-family="sans-serif" font-size="776px" font-weight="400"><tspan id="tspan255" class="TextPosition" x="7228" y="10969"><tspan id="tspan257" fill="#000080">V4L2_SEL_FLAG_LE</tspan></tspan></tspan></text>
8 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 8</g></g><rect id="rect262" class="BoundingBox" x="13700" y="7100" width="7101" height="101" fill="none"/><path id="path264" d="m20750 7150h-7e3" fill="none" marker-end="url(#Arrow2Mend)" stroke="#000080" stroke-linejoin="round" stroke-width="99.991"/><rect id="rect269" class="BoundingBox" x="3400" y="7100" width="2101" height="101" fill="none"/><path id="path271" d="m3450 7150h2e3" fill="none" marker-end="url(#marker5575)" stroke="#000080" stroke-linejoin="round" stroke-width="100"/><rect id="rect276" class="BoundingBox" x="9800" y="2900" width="101" height="1501" fill="none"/><path id="path278" d="m9850 2950v1400" fill="none" marker-end="url(#marker5259)" stroke="#000080" stroke-linejoin="round" stroke-width="100"/><rect id="rect283" class="BoundingBox" x="9600" y="10600" width="101" height="1301" fill="none"/><path id="path285" d="m9650 11850v-1200" fill="none"
9 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 9marker-end="url(#marker5469)" stroke="#000080" stroke-linejoin="round" stroke-width="100"/><rect id="rect290" class="BoundingBox" x="450" y="6850" width="2051" height="601" fill="none"/><path id="path292" d="m2450 7150h-2000.9" fill="none" marker-end="url(#marker6125)" stroke="#f00" stroke-linejoin="round" stroke-width="132.48"/><rect id="rect299" class="BoundingBox" x="21600" y="6750" width="2651" height="601" fill="none"/><path id="path301" d="m21650 7050h2522.6" fill="none" marker-end="url(#marker6001)" stroke="#f00" stroke-linejoin="round" stroke-width="120.41"/><rect id="rect308" class="BoundingBox" x="9550" y="550" width="601" height="1451" fill="none"/><path id="path310" d="m9837 1950v-1453" fill="none" marker-end="url(#marker6261)" stroke="#f00" stroke-linejoin="round" stroke-width="164.04"/><rect id="rect317" class="BoundingBox" x="9350" y="12500" width="601" height="1451"
10 version="1.2" 10fill="none"/><path id="path319" d="m9650 12550v1505.2" fill="none" marker-end="url(#marker5693)" stroke="#f00" stroke-linejoin="round" stroke-width="166.96"/></svg>
11 width="249.00998mm"
12 height="143.00999mm"
13 viewBox="0 0 24900.998 14300.999"
14 preserveAspectRatio="xMidYMid"
15 xml:space="preserve"
16 id="svg2"
17 inkscape:version="0.91 r13725"
18 sodipodi:docname="constraints.svg"
19 style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"><metadata
20 id="metadata325"><rdf:RDF><cc:Work
21 rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
22 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><sodipodi:namedview
23 pagecolor="#ffffff"
24 bordercolor="#666666"
25 borderopacity="1"
26 objecttolerance="10"
27 gridtolerance="10"
28 guidetolerance="10"
29 inkscape:pageopacity="0"
30 inkscape:pageshadow="2"
31 inkscape:window-width="1920"
32 inkscape:window-height="997"
33 id="namedview323"
34 showgrid="false"
35 inkscape:zoom="1.0818519"
36 inkscape:cx="270.29272"
37 inkscape:cy="249.83854"
38 inkscape:window-x="1920"
39 inkscape:window-y="30"
40 inkscape:window-maximized="1"
41 inkscape:current-layer="svg2"
42 fit-margin-top="0"
43 fit-margin-left="0"
44 fit-margin-right="0"
45 fit-margin-bottom="0" /><defs
46 class="ClipPathGroup"
47 id="defs4"><marker
48 inkscape:isstock="true"
49 style="overflow:visible"
50 id="marker6261"
51 refX="0"
52 refY="0"
53 orient="auto"
54 inkscape:stockid="Arrow1Mend"><path
55 transform="matrix(-0.4,0,0,-0.4,-4,0)"
56 style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
57 d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
58 id="path6263"
59 inkscape:connector-curvature="0" /></marker><marker
60 inkscape:stockid="Arrow1Mend"
61 orient="auto"
62 refY="0"
63 refX="0"
64 id="marker6125"
65 style="overflow:visible"
66 inkscape:isstock="true"
67 inkscape:collect="always"><path
68 id="path6127"
69 d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
70 style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
71 transform="matrix(-0.4,0,0,-0.4,-4,0)"
72 inkscape:connector-curvature="0" /></marker><marker
73 inkscape:isstock="true"
74 style="overflow:visible"
75 id="marker6001"
76 refX="0"
77 refY="0"
78 orient="auto"
79 inkscape:stockid="Arrow1Mend"
80 inkscape:collect="always"><path
81 transform="matrix(-0.4,0,0,-0.4,-4,0)"
82 style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
83 d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
84 id="path6003"
85 inkscape:connector-curvature="0" /></marker><marker
86 inkscape:stockid="Arrow1Mend"
87 orient="auto"
88 refY="0"
89 refX="0"
90 id="marker5693"
91 style="overflow:visible"
92 inkscape:isstock="true"
93 inkscape:collect="always"><path
94 id="path5695"
95 d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
96 style="fill:#ff0000;fill-opacity:1;fill-rule:evenodd;stroke:#ff0000;stroke-width:1pt;stroke-opacity:1"
97 transform="matrix(-0.4,0,0,-0.4,-4,0)"
98 inkscape:connector-curvature="0" /></marker><marker
99 inkscape:isstock="true"
100 style="overflow:visible"
101 id="marker5575"
102 refX="0"
103 refY="0"
104 orient="auto"
105 inkscape:stockid="Arrow1Mend"
106 inkscape:collect="always"><path
107 transform="matrix(-0.4,0,0,-0.4,-4,0)"
108 style="fill:#000080;fill-opacity:1;fill-rule:evenodd;stroke:#000080;stroke-width:1pt;stroke-opacity:1"
109 d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
110 id="path5577"
111 inkscape:connector-curvature="0" /></marker><marker
112 inkscape:stockid="Arrow1Mend"
113 orient="auto"
114 refY="0"
115 refX="0"
116 id="marker5469"
117 style="overflow:visible"
118 inkscape:isstock="true"
119 inkscape:collect="always"><path
120 id="path5471"
121 d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
122 style="fill:#000080;fill-opacity:1;fill-rule:evenodd;stroke:#000080;stroke-width:1pt;stroke-opacity:1"
123 transform="matrix(-0.4,0,0,-0.4,-4,0)"
124 inkscape:connector-curvature="0" /></marker><marker
125 inkscape:stockid="Arrow1Mend"
126 orient="auto"
127 refY="0"
128 refX="0"
129 id="marker5259"
130 style="overflow:visible"
131 inkscape:isstock="true"><path
132 id="path5261"
133 d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
134 style="fill:#000080;fill-opacity:1;fill-rule:evenodd;stroke:#000080;stroke-width:1pt;stroke-opacity:1"
135 transform="matrix(-0.4,0,0,-0.4,-4,0)"
136 inkscape:connector-curvature="0" /></marker><marker
137 inkscape:stockid="Arrow2Mend"
138 orient="auto"
139 refY="0"
140 refX="0"
141 id="Arrow2Mend"
142 style="overflow:visible"
143 inkscape:isstock="true"><path
144 id="path4241"
145 style="fill:#000080;fill-opacity:1;fill-rule:evenodd;stroke:#000080;stroke-width:0.625;stroke-linejoin:round;stroke-opacity:1"
146 d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
147 transform="scale(-0.6,-0.6)"
148 inkscape:connector-curvature="0" /></marker></defs><defs
149 id="defs9" /><defs
150 id="defs100" /><defs
151 id="defs123" /><defs
152 class="TextShapeIndex"
153 id="defs134" /><defs
154 class="EmbeddedBulletChars"
155 id="defs138" /><defs
156 class="TextEmbeddedBitmaps"
157 id="defs167" /><g
158 class="com.sun.star.drawing.CustomShape"
159 id="g204"
160 transform="translate(-1350,-3250)"><g
161 id="id6"><rect
162 class="BoundingBox"
163 x="1350"
164 y="3250"
165 width="24901"
166 height="14301"
167 id="rect207"
168 style="fill:none;stroke:none" /><path
169 d="m 13800,17500 -12400,0 0,-14200 24800,0 0,14200 -12400,0 z"
170 id="path209"
171 inkscape:connector-curvature="0"
172 style="fill:#ffffff;stroke:none" /><path
173 d="m 13800,17500 -12400,0 0,-14200 24800,0 0,14200 -12400,0 z"
174 id="path211"
175 inkscape:connector-curvature="0"
176 style="fill:none;stroke:#ff0000;stroke-width:100;stroke-linejoin:round" /><text
177 class="TextShape"
178 id="text213"><tspan
179 class="TextParagraph"
180 font-size="846px"
181 font-weight="400"
182 id="tspan215"
183 style="font-weight:400;font-size:846px;font-family:'Liberation Sans', sans-serif"><tspan
184 class="TextPosition"
185 x="1652"
186 y="17093"
187 id="tspan217"><tspan
188 id="tspan219"
189 style="fill:#ff0000;stroke:none" /><tspan
190 id="tspan221"
191 style="fill:#ff0000;stroke:none">V4L2_SEL_FLAG_GE</tspan></tspan></tspan></text>
192</g></g><rect
193 class="BoundingBox"
194 x="3000"
195 y="2200"
196 width="18101"
197 height="10101"
198 id="rect226"
199 style="fill:none;stroke:none" /><path
200 d="m 12050,12250 -9000,0 0,-10000 18000,0 0,10000 -9000,0 z"
201 id="path228"
202 inkscape:connector-curvature="0"
203 style="fill:#ffffff;stroke:none" /><path
204 d="m 12050,12250 -9000,0 0,-10000 18000,0 0,10000 -9000,0 z"
205 id="path230"
206 inkscape:connector-curvature="0"
207 style="fill:none;stroke:#000000;stroke-width:100;stroke-linejoin:round" /><text
208 class="TextShape"
209 id="text232"
210 x="-1350"
211 y="-3250"><tspan
212 class="TextParagraph"
213 font-size="987px"
214 font-weight="400"
215 id="tspan234"
216 style="font-weight:400;font-size:987px;font-family:'Liberation Sans', sans-serif"><tspan
217 class="TextPosition"
218 x="3227"
219 y="11503"
220 id="tspan236"><tspan
221 id="tspan238"
222 style="fill:#000000;stroke:none" /><tspan
223 id="tspan240"
224 style="fill:#000000;stroke:none">ORIGINAL</tspan></tspan></tspan></text>
225<g
226 class="com.sun.star.drawing.CustomShape"
227 id="g242"
228 transform="translate(-1350,-3250)"><g
229 id="id8"><rect
230 class="BoundingBox"
231 x="7050"
232 y="7950"
233 width="7901"
234 height="5501"
235 id="rect245"
236 style="fill:none;stroke:none" /><path
237 d="m 11000,13400 -3900,0 0,-5400 7800,0 0,5400 -3900,0 z"
238 id="path247"
239 inkscape:connector-curvature="0"
240 style="fill:#ffffff;stroke:none" /><path
241 d="m 11000,13400 -3900,0 0,-5400 7800,0 0,5400 -3900,0 z"
242 id="path249"
243 inkscape:connector-curvature="0"
244 style="fill:none;stroke:#3465a4;stroke-width:100;stroke-linejoin:round" /><text
245 class="TextShape"
246 id="text251"><tspan
247 class="TextParagraph"
248 font-size="776px"
249 font-weight="400"
250 id="tspan253"
251 style="font-weight:400;font-size:776px;font-family:'Liberation Sans', sans-serif"><tspan
252 class="TextPosition"
253 x="7228"
254 y="10969"
255 id="tspan255"><tspan
256 id="tspan257"
257 style="fill:#000080;stroke:none">V4L2_SEL_FLAG_LE</tspan></tspan></tspan></text>
258</g></g><rect
259 class="BoundingBox"
260 x="13700"
261 y="7100"
262 width="7101"
263 height="101"
264 id="rect262"
265 style="fill:none;stroke:none" /><path
266 d="m 20750,7150 -7000,0"
267 id="path264"
268 inkscape:connector-curvature="0"
269 style="fill:none;stroke:#000080;stroke-width:99.99134064;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;marker-end:url(#Arrow2Mend)" /><rect
270 class="BoundingBox"
271 x="3400"
272 y="7100"
273 width="2101"
274 height="101"
275 id="rect269"
276 style="fill:none;stroke:none" /><path
277 d="m 3450,7150 2000,0"
278 id="path271"
279 inkscape:connector-curvature="0"
280 style="fill:none;stroke:#000080;stroke-width:100;stroke-linejoin:round;marker-end:url(#marker5575)" /><rect
281 class="BoundingBox"
282 x="9800"
283 y="2900"
284 width="101"
285 height="1501"
286 id="rect276"
287 style="fill:none;stroke:none" /><path
288 d="m 9850,2950 0,1400"
289 id="path278"
290 inkscape:connector-curvature="0"
291 style="fill:none;stroke:#000080;stroke-width:100;stroke-linejoin:round;marker-end:url(#marker5259)" /><rect
292 class="BoundingBox"
293 x="9600"
294 y="10600"
295 width="101"
296 height="1301"
297 id="rect283"
298 style="fill:none;stroke:none" /><path
299 d="m 9650,11850 0,-1200"
300 id="path285"
301 inkscape:connector-curvature="0"
302 style="fill:none;stroke:#000080;stroke-width:100;stroke-linejoin:round;marker-end:url(#marker5469)" /><rect
303 class="BoundingBox"
304 x="450"
305 y="6850"
306 width="2051"
307 height="601"
308 id="rect290"
309 style="fill:none;stroke:none" /><path
310 d="m 2450,7150 -2000.8696,0"
311 id="path292"
312 inkscape:connector-curvature="0"
313 style="fill:none;stroke:#ff0000;stroke-width:132.48202515;stroke-linejoin:round;marker-end:url(#marker6125)" /><rect
314 class="BoundingBox"
315 x="21600"
316 y="6750"
317 width="2651"
318 height="601"
319 id="rect299"
320 style="fill:none;stroke:none" /><path
321 d="m 21650,7050 2522.609,0"
322 id="path301"
323 inkscape:connector-curvature="0"
324 style="fill:none;stroke:#ff0000;stroke-width:120.40660858;stroke-linejoin:round;marker-end:url(#marker6001)" /><rect
325 class="BoundingBox"
326 x="9550"
327 y="550"
328 width="601"
329 height="1451"
330 id="rect308"
331 style="fill:none;stroke:none" /><path
332 d="m 9836.957,1950 0,-1453.0435"
333 id="path310"
334 inkscape:connector-curvature="0"
335 style="fill:none;stroke:#ff0000;stroke-width:164.03721619;stroke-linejoin:round;marker-end:url(#marker6261)" /><rect
336 class="BoundingBox"
337 x="9350"
338 y="12500"
339 width="601"
340 height="1451"
341 id="rect317"
342 style="fill:none;stroke:none" /><path
343 d="m 9650,12550 0,1505.217"
344 id="path319"
345 inkscape:connector-curvature="0"
346 style="fill:none;stroke:#ff0000;stroke-width:166.95626831;stroke-linejoin:round;marker-end:url(#marker5693)" /></svg> \ No newline at end of file
diff --git a/Documentation/media/uapi/v4l/crop.svg b/Documentation/media/uapi/v4l/crop.svg
index dc9a471bae6b..3878fe4c49e9 100644
--- a/Documentation/media/uapi/v4l/crop.svg
+++ b/Documentation/media/uapi/v4l/crop.svg
@@ -18,33 +18,34 @@
18 viewBox="0 0 739.11388 339.6584" 18 viewBox="0 0 739.11388 339.6584"
19 sodipodi:docname="crop.svg"><metadata 19 sodipodi:docname="crop.svg"><metadata
20 id="metadata8"><rdf:RDF><cc:Work 20 id="metadata8"><rdf:RDF><cc:Work
21 rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type 21 rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
22 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs 22 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
23 id="defs6"><clipPath 23 id="defs6"><clipPath
24 clipPathUnits="userSpaceOnUse" 24 clipPathUnits="userSpaceOnUse"
25 id="clipPath44"><path 25 id="clipPath44"><path
26 d="m 0,0 0,1895 4118,0 L 4118,0 0,0 Z m 3051.62,250.48 8.19,17.01 -46.93,23.31 29.61,-25.515 -38.12,8.505 47.25,-23.31 z m -1559.25,800.73 -8.5,-17.01 46.93,-23.31 -29.29,25.2 37.8,-8.19 -46.94,23.31 z" 26 d="m 0,0 0,1895 4118,0 L 4118,0 0,0 Z m 3051.62,250.48 8.19,17.01 -46.93,23.31 29.61,-25.515 -38.12,8.505 47.25,-23.31 z m -1559.25,800.73 -8.5,-17.01 46.93,-23.31 -29.29,25.2 37.8,-8.19 -46.94,23.31 z"
27 id="path46" 27 id="path46"
28 inkscape:connector-curvature="0" 28 inkscape:connector-curvature="0"
29 style="clip-rule:evenodd" /></clipPath><clipPath 29 style="clip-rule:evenodd" /></clipPath><clipPath
30 clipPathUnits="userSpaceOnUse" 30 clipPathUnits="userSpaceOnUse"
31 id="clipPath64"><path 31 id="clipPath64"><path
32 d="m 0,0 0,1895 4118,0 0,-1626 -1,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -1,0 0,-1 1,0 0,-1 1,0 0,-1 2,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 2,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 2,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 -4,0 0,1 -5,0 0,1 -4,0 0,1 -5,0 0,1 -4,0 0,1 -4,0 0,1 -4,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 1,0 0,3 1,0 0,2 1,0 0,2 1,0 L 4118,0 0,0 Z m 4074,272 0,-1 1,0 0,1 -1,0 z m -1486,743 0,-1 1,0 0,1 -1,0 z m -2,1 0,-1 1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -2,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -2,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -2,0 0,1 -1,0 0,2 2,0 0,-1 4,0 0,-1 5,0 0,-1 4,0 0,-1 5,0 0,-1 5,0 0,-1 4,0 0,-1 3,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -3,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,-2 -1,0 0,-2 -1,0 0,-2 -1,0 0,-2 -1,0 0,-2 -1,0 0,-2 -1,0 0,-2 -1,0 0,-2 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 z" 32 d="m 0,0 0,1895 4118,0 0,-1626 -1,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -1,0 0,-1 1,0 0,-1 1,0 0,-1 2,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 2,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 2,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 1,0 0,-1 -4,0 0,1 -5,0 0,1 -4,0 0,1 -5,0 0,1 -4,0 0,1 -4,0 0,1 -4,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 1,0 0,3 1,0 0,2 1,0 0,2 1,0 L 4118,0 0,0 Z m 4074,272 0,-1 1,0 0,1 -1,0 z m -1486,743 0,-1 1,0 0,1 -1,0 z m -2,1 0,-1 1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -2,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -1,0 0,1 -2,0 0,1 -1,0 0,1 -1,0 0,1
33 id="path66" 33-1,0 0,1 -1,0 0,1 -1,0 0,1 -2,0 0,1 -1,0 0,2 2,0 0,-1 4,0 0,-1 5,0 0,-1 4,0 0,-1 5,0 0,-1 5,0 0,-1 4,0 0,-1 3,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -3,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,1 -2,0 0,-2 -1,0 0,-2 -1,0 0,-2 -1,0 0,-2 -1,0 0,-2 -1,0 0,-2 -1,0 0,-2 -1,0 0,-2 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 0,-1 2,0 z"
34 inkscape:connector-curvature="0" 34 id="path66"
35 style="clip-rule:evenodd" /></clipPath><clipPath 35 inkscape:connector-curvature="0"
36 style="clip-rule:evenodd" /></clipPath><clipPath
36 clipPathUnits="userSpaceOnUse" 37 clipPathUnits="userSpaceOnUse"
37 id="clipPath84"><path 38 id="clipPath84"><path
38 d="m 0,0 0,1895 4118,0 0,-136 -3,0 0,-1 -11,0 0,-1 -11,0 0,-1 -11,0 0,-1 -11,0 0,-1 5,0 0,-1 6,0 0,-1 7,0 0,-1 6,0 0,-1 6,0 0,-1 4,0 0,-1 -1,0 0,-1 -3,0 0,-1 -3,0 0,-1 -2,0 0,-1 -3,0 0,-1 -3,0 0,-1 -3,0 0,-1 -3,0 0,-1 -3,0 0,-1 -3,0 0,-1 -3,0 0,-1 7,0 0,1 11,0 0,1 11,0 0,1 11,0 0,1 3,0 L 4118,0 0,0 Z m 2552,1599 0,-1 2,0 0,1 11,0 0,1 11,0 0,1 11,0 0,1 11,0 0,1 -4,0 0,1 -7,0 0,1 -6,0 0,1 -7,0 0,1 -6,0 0,1 -3,0 0,1 2,0 0,1 2,0 0,1 3,0 0,1 3,0 0,1 3,0 0,1 3,0 0,1 3,0 0,1 2,0 0,1 3,0 0,1 3,0 0,1 3,0 0,1 -7,0 0,-1 -12,0 0,-1 -11,0 0,-1 -11,0 0,-1 -4,0 0,-1 1,0 0,-12 1,0 0,-4 z" 39 d="m 0,0 0,1895 4118,0 0,-136 -3,0 0,-1 -11,0 0,-1 -11,0 0,-1 -11,0 0,-1 -11,0 0,-1 5,0 0,-1 6,0 0,-1 7,0 0,-1 6,0 0,-1 6,0 0,-1 4,0 0,-1 -1,0 0,-1 -3,0 0,-1 -3,0 0,-1 -2,0 0,-1 -3,0 0,-1 -3,0 0,-1 -3,0 0,-1 -3,0 0,-1 -3,0 0,-1 -3,0 0,-1 -3,0 0,-1 7,0 0,1 11,0 0,1 11,0 0,1 11,0 0,1 3,0 L 4118,0 0,0 Z m 2552,1599 0,-1 2,0 0,1 11,0 0,1 11,0 0,1 11,0 0,1 11,0 0,1 -4,0 0,1 -7,0 0,1 -6,0 0,1 -7,0 0,1 -6,0 0,1 -3,0 0,1 2,0 0,1 2,0 0,1 3,0 0,1 3,0 0,1 3,0 0,1 3,0 0,1 3,0 0,1 2,0 0,1 3,0 0,1 3,0 0,1 3,0 0,1 -7,0 0,-1 -12,0 0,-1 -11,0 0,-1 -11,0 0,-1 -4,0 0,-1 1,0 0,-12 1,0 0,-4 z"
39 id="path86" 40 id="path86"
40 inkscape:connector-curvature="0" 41 inkscape:connector-curvature="0"
41 style="clip-rule:evenodd" /></clipPath><clipPath 42 style="clip-rule:evenodd" /></clipPath><clipPath
42 clipPathUnits="userSpaceOnUse" 43 clipPathUnits="userSpaceOnUse"
43 id="clipPath104"><path 44 id="clipPath104"><path
44 d="m 0,0 0,1895 4118,0 L 4118,0 0,0 Z m 3056.98,1740.43 -1.58,18.9 -52.6,-4.72 38.74,-6.3 -36.85,-12.6 52.29,4.72 z m -1570.28,-123.79 1.58,-18.9 52.6,4.72 -38.43,5.99 36.54,12.91 -52.29,-4.72 z" 45 d="m 0,0 0,1895 4118,0 L 4118,0 0,0 Z m 3056.98,1740.43 -1.58,18.9 -52.6,-4.72 38.74,-6.3 -36.85,-12.6 52.29,4.72 z m -1570.28,-123.79 1.58,-18.9 52.6,4.72 -38.43,5.99 36.54,12.91 -52.29,-4.72 z"
45 id="path106" 46 id="path106"
46 inkscape:connector-curvature="0" 47 inkscape:connector-curvature="0"
47 style="clip-rule:evenodd" /></clipPath></defs><sodipodi:namedview 48 style="clip-rule:evenodd" /></clipPath></defs><sodipodi:namedview
48 pagecolor="#ffffff" 49 pagecolor="#ffffff"
49 bordercolor="#666666" 50 bordercolor="#666666"
50 borderopacity="1" 51 borderopacity="1"
@@ -123,90 +124,90 @@
123 inkscape:connector-curvature="0" /><g 124 inkscape:connector-curvature="0" /><g
124 id="g40" 125 id="g40"
125 transform="matrix(0.14375794,0,0,0.14375794,-0.12334269,-0.08856738)"><g 126 transform="matrix(0.14375794,0,0,0.14375794,-0.12334269,-0.08856738)"><g
126 clip-path="url(#clipPath44)" 127 clip-path="url(#clipPath44)"
127 id="g42"><path 128 id="g42"><path
128 inkscape:connector-curvature="0" 129 inkscape:connector-curvature="0"
129 id="path48" 130 id="path48"
130 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 131 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
131 d="M 1492.37,1040.5 3051.62,260.875" /></g></g><g 132 d="M 1492.37,1040.5 3051.62,260.875" /></g></g><g
132 id="g50" 133 id="g50"
133 transform="matrix(0.14375794,0,0,0.14375794,-0.12334269,-0.08856738)"><path 134 transform="matrix(0.14375794,0,0,0.14375794,-0.12334269,-0.08856738)"><path
134 inkscape:connector-curvature="0" 135 inkscape:connector-curvature="0"
135 id="path52" 136 id="path52"
136 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 137 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
137 d="m 1539.31,1027.9 -37.8,8.19 29.29,-25.2 8.51,17.01" /><path 138 d="m 1539.31,1027.9 -37.8,8.19 29.29,-25.2 8.51,17.01" /><path
138 inkscape:connector-curvature="0" 139 inkscape:connector-curvature="0"
139 id="path54" 140 id="path54"
140 style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 141 style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
141 d="m 1539.31,1027.9 -37.8,8.19 29.29,-25.2 8.51,17.01 z" /><path 142 d="m 1539.31,1027.9 -37.8,8.19 29.29,-25.2 8.51,17.01 z" /><path
142 inkscape:connector-curvature="0" 143 inkscape:connector-curvature="0"
143 id="path56" 144 id="path56"
144 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 145 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
145 d="m 3004.37,273.79 38.12,-8.505 -29.61,25.515 -8.51,-17.01" /><path 146 d="m 3004.37,273.79 38.12,-8.505 -29.61,25.515 -8.51,-17.01" /><path
146 inkscape:connector-curvature="0" 147 inkscape:connector-curvature="0"
147 id="path58" 148 id="path58"
148 style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 149 style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
149 d="m 3004.37,273.79 38.12,-8.505 -29.61,25.515 -8.51,-17.01 z" /></g><g 150 d="m 3004.37,273.79 38.12,-8.505 -29.61,25.515 -8.51,-17.01 z" /></g><g
150 id="g60" 151 id="g60"
151 transform="matrix(0.14375794,0,0,0.14375794,-0.12334269,-0.08856738)"><g 152 transform="matrix(0.14375794,0,0,0.14375794,-0.12334269,-0.08856738)"><g
152 clip-path="url(#clipPath64)" 153 clip-path="url(#clipPath64)"
153 id="g62"><path 154 id="g62"><path
154 inkscape:connector-curvature="0" 155 inkscape:connector-curvature="0"
155 id="path68" 156 id="path68"
156 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 157 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
157 d="M 2555.5,1040.5 4114.75,260.875" /></g></g><g 158 d="M 2555.5,1040.5 4114.75,260.875" /></g></g><g
158 id="g70" 159 id="g70"
159 transform="matrix(0.14375794,0,0,0.14375794,-0.12334269,-0.08856738)"><path 160 transform="matrix(0.14375794,0,0,0.14375794,-0.12334269,-0.08856738)"><path
160 inkscape:connector-curvature="0" 161 inkscape:connector-curvature="0"
161 id="path72" 162 id="path72"
162 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 163 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
163 d="m 2602.43,1027.9 -37.8,8.19 29.3,-25.2 8.5,17.01" /><path 164 d="m 2602.43,1027.9 -37.8,8.19 29.3,-25.2 8.5,17.01" /><path
164 inkscape:connector-curvature="0" 165 inkscape:connector-curvature="0"
165 id="path74" 166 id="path74"
166 style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 167 style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
167 d="m 2602.43,1027.9 -37.8,8.19 29.3,-25.2 8.5,17.01 z" /><path 168 d="m 2602.43,1027.9 -37.8,8.19 29.3,-25.2 8.5,17.01 z" /><path
168 inkscape:connector-curvature="0" 169 inkscape:connector-curvature="0"
169 id="path76" 170 id="path76"
170 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 171 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
171 d="m 4067.5,273.79 38.11,-8.505 -29.61,25.515 -8.5,-17.01" /><path 172 d="m 4067.5,273.79 38.11,-8.505 -29.61,25.515 -8.5,-17.01" /><path
172 inkscape:connector-curvature="0" 173 inkscape:connector-curvature="0"
173 id="path78" 174 id="path78"
174 style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 175 style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
175 d="m 4067.5,273.79 38.11,-8.505 -29.61,25.515 -8.5,-17.01 z" /></g><g 176 d="m 4067.5,273.79 38.11,-8.505 -29.61,25.515 -8.5,-17.01 z" /></g><g
176 id="g80" 177 id="g80"
177 transform="matrix(0.14375794,0,0,0.14375794,-0.12334269,-0.08856738)"><g 178 transform="matrix(0.14375794,0,0,0.14375794,-0.12334269,-0.08856738)"><g
178 clip-path="url(#clipPath84)" 179 clip-path="url(#clipPath84)"
179 id="g82"><path 180 id="g82"><path
180 inkscape:connector-curvature="0" 181 inkscape:connector-curvature="0"
181 id="path88" 182 id="path88"
182 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 183 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
183 d="m 2555.5,1607.5 1559.25,141.75" /></g></g><g 184 d="m 2555.5,1607.5 1559.25,141.75" /></g></g><g
184 id="g90" 185 id="g90"
185 transform="matrix(0.14375794,0,0,0.14375794,-0.12334269,-0.08856738)"><path 186 transform="matrix(0.14375794,0,0,0.14375794,-0.12334269,-0.08856738)"><path
186 inkscape:connector-curvature="0" 187 inkscape:connector-curvature="0"
187 id="path92" 188 id="path92"
188 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 189 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
189 d="m 2602.12,1621.36 -36.54,-12.91 38.43,-5.99 -1.89,18.9" /><path 190 d="m 2602.12,1621.36 -36.54,-12.91 38.43,-5.99 -1.89,18.9" /><path
190 inkscape:connector-curvature="0" 191 inkscape:connector-curvature="0"
191 id="path94" 192 id="path94"
192 style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 193 style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
193 d="m 2602.12,1621.36 -36.54,-12.91 38.43,-5.99 -1.89,18.9 z" /><path 194 d="m 2602.12,1621.36 -36.54,-12.91 38.43,-5.99 -1.89,18.9 z" /><path
194 inkscape:connector-curvature="0" 195 inkscape:connector-curvature="0"
195 id="path96" 196 id="path96"
196 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 197 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
197 d="m 4067.81,1735.71 36.86,12.6 -38.75,6.3 1.89,-18.9" /><path 198 d="m 4067.81,1735.71 36.86,12.6 -38.75,6.3 1.89,-18.9" /><path
198 inkscape:connector-curvature="0" 199 inkscape:connector-curvature="0"
199 id="path98" 200 id="path98"
200 style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 201 style="fill:none;stroke:#000000;stroke-width:4.7249999;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
201 d="m 4067.81,1735.71 36.86,12.6 -38.75,6.3 1.89,-18.9 z" /></g><g 202 d="m 4067.81,1735.71 36.86,12.6 -38.75,6.3 1.89,-18.9 z" /></g><g
202 id="g100" 203 id="g100"
203 transform="matrix(0.14375794,0,0,0.14375794,-0.12334269,-0.08856738)"><g 204 transform="matrix(0.14375794,0,0,0.14375794,-0.12334269,-0.08856738)"><g
204 clip-path="url(#clipPath104)" 205 clip-path="url(#clipPath104)"
205 id="g102"><path 206 id="g102"><path
206 inkscape:connector-curvature="0" 207 inkscape:connector-curvature="0"
207 id="path108" 208 id="path108"
208 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 209 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
209 d="m 1492.37,1607.5 1559.25,141.75" /></g></g><path 210 d="m 1492.37,1607.5 1559.25,141.75" /></g></g><path
210 d="m 221.11869,232.99481 -5.25292,-1.85592 5.52462,-0.86111 -0.2717,2.71703" 211 d="m 221.11869,232.99481 -5.25292,-1.85592 5.52462,-0.86111 -0.2717,2.71703"
211 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 212 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
212 id="path112" 213 id="path112"
@@ -225,43 +226,43 @@
225 inkscape:connector-curvature="0" /><g 226 inkscape:connector-curvature="0" /><g
226 id="g120" 227 id="g120"
227 transform="matrix(1.4375794,0,0,1.4375794,-0.12334269,-0.08856738)"><text 228 transform="matrix(1.4375794,0,0,1.4375794,-0.12334269,-0.08856738)"><text
228 transform="matrix(1,0,0,-1,204.52,9.07751)" 229 transform="matrix(1,0,0,-1,204.52,9.07751)"
229 style="font-variant:normal;font-weight:normal;font-size:6.61499977px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#d10000;fill-opacity:1;fill-rule:nonzero;stroke:none" 230 style="font-variant:normal;font-weight:normal;font-size:6.61499977px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#d10000;fill-opacity:1;fill-rule:nonzero;stroke:none"
230 id="text122"><tspan 231 id="text122"><tspan
231 x="0 3.3074999 6.9854398 8.45397 12.13191 15.80985 19.11735 21.320145 24.998085 28.676025 31.983524 35.661465 39.339405 41.178375 44.856316 48.534256 52.212196 55.890137 59.568073" 232 x="0 3.3074999 6.9854398 8.45397 12.13191 15.80985 19.11735 21.320145 24.998085 28.676025 31.983524 35.661465 39.339405 41.178375 44.856316 48.534256 52.212196 55.890137 59.568073"
232 y="0" 233 y="0"
233 sodipodi:role="line" 234 sodipodi:role="line"
234 id="tspan124">v4l2_cropcap.bounds</tspan></text> 235 id="tspan124">v4l2_cropcap.bounds</tspan></text>
235</g><g 236</g><g
236 id="g126" 237 id="g126"
237 transform="matrix(1.4375794,0,0,1.4375794,-0.12334269,-0.08856738)"><text 238 transform="matrix(1.4375794,0,0,1.4375794,-0.12334269,-0.08856738)"><text
238 transform="matrix(1,0,0,-1,58.5175,166.42)" 239 transform="matrix(1,0,0,-1,58.5175,166.42)"
239 style="font-variant:normal;font-weight:normal;font-size:6.61499977px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#0000d1;fill-opacity:1;fill-rule:nonzero;stroke:none" 240 style="font-variant:normal;font-weight:normal;font-size:6.61499977px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#0000d1;fill-opacity:1;fill-rule:nonzero;stroke:none"
240 id="text128"><tspan 241 id="text128"><tspan
241 x="0 3.3074999 6.9854398 8.45397 12.13191 15.80985 19.11735 21.320145 24.998085 28.676025 31.983524 35.661465 39.339405 41.178375 44.856316 48.534256 50.373226 52.576019 56.25396 59.561459" 242 x="0 3.3074999 6.9854398 8.45397 12.13191 15.80985 19.11735 21.320145 24.998085 28.676025 31.983524 35.661465 39.339405 41.178375 44.856316 48.534256 50.373226 52.576019 56.25396 59.561459"
242 y="0" 243 y="0"
243 sodipodi:role="line" 244 sodipodi:role="line"
244 id="tspan130">v4l2_cropcap.defrect</tspan></text> 245 id="tspan130">v4l2_cropcap.defrect</tspan></text>
245</g><g 246</g><g
246 id="g132" 247 id="g132"
247 transform="matrix(1.4375794,0,0,1.4375794,-0.12334269,-0.08856738)"><text 248 transform="matrix(1.4375794,0,0,1.4375794,-0.12334269,-0.08856738)"><text
248 transform="matrix(1,0,0,-1,153.49,152.245)" 249 transform="matrix(1,0,0,-1,153.49,152.245)"
249 style="font-variant:normal;font-weight:normal;font-size:6.61499977px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#008f00;fill-opacity:1;fill-rule:nonzero;stroke:none" 250 style="font-variant:normal;font-weight:normal;font-size:6.61499977px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#008f00;fill-opacity:1;fill-rule:nonzero;stroke:none"
250 id="text134"><tspan 251 id="text134"><tspan
251 x="0 3.3074999 6.9854398 8.45397 12.13191 15.80985 19.11735 21.320145 24.998085 28.676025 30.514996" 252 x="0 3.3074999 6.9854398 8.45397 12.13191 15.80985 19.11735 21.320145 24.998085 28.676025 30.514996"
252 y="0" 253 y="0"
253 sodipodi:role="line" 254 sodipodi:role="line"
254 id="tspan136">v4l2_crop.c</tspan></text> 255 id="tspan136">v4l2_crop.c</tspan></text>
255</g><g 256</g><g
256 id="g138" 257 id="g138"
257 transform="matrix(1.4375794,0,0,1.4375794,-0.12334269,-0.08856738)"><text 258 transform="matrix(1.4375794,0,0,1.4375794,-0.12334269,-0.08856738)"><text
258 transform="matrix(1,0,0,-1,309.415,30.34)" 259 transform="matrix(1,0,0,-1,309.415,30.34)"
259 style="font-variant:normal;font-weight:normal;font-size:6.61499977px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#b000b0;fill-opacity:1;fill-rule:nonzero;stroke:none" 260 style="font-variant:normal;font-weight:normal;font-size:6.61499977px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#b000b0;fill-opacity:1;fill-rule:nonzero;stroke:none"
260 id="text140"><tspan 261 id="text140"><tspan
261 x="0 3.3074999 6.9854398 8.45397 12.13191 15.80985 17.648821 21.326759 23.529554 29.03985 32.717789" 262 x="0 3.3074999 6.9854398 8.45397 12.13191 15.80985 17.648821 21.326759 23.529554 29.03985 32.717789"
262 y="0" 263 y="0"
263 sodipodi:role="line" 264 sodipodi:role="line"
264 id="tspan142">v4l2_format</tspan></text> 265 id="tspan142">v4l2_format</tspan></text>
265</g><text 266</g><text
266 xml:space="preserve" 267 xml:space="preserve"
267 style="font-style:normal;font-weight:normal;font-size:32px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 268 style="font-style:normal;font-weight:normal;font-size:32px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
@@ -270,12 +271,12 @@
270 id="text3396" 271 id="text3396"
271 sodipodi:linespacing="125%" 272 sodipodi:linespacing="125%"
272 transform="scale(1,-1)"><tspan 273 transform="scale(1,-1)"><tspan
273 sodipodi:role="line" 274 sodipodi:role="line"
274 id="tspan3398" 275 id="tspan3398"
275 x="-99.291145" 276 x="-99.291145"
276 y="-239.49893"></tspan><tspan 277 y="-239.49893"></tspan><tspan
277 sodipodi:role="line" 278 sodipodi:role="line"
278 x="-99.291145" 279 x="-99.291145"
279 y="-199.49893" 280 y="-199.49893"
280 id="tspan3400" /></text> 281 id="tspan3400" /></text>
281</g></svg> 282</g></svg>
diff --git a/Documentation/media/uapi/v4l/fieldseq_bt.svg b/Documentation/media/uapi/v4l/fieldseq_bt.svg
index b195301771ce..909d758f8543 100644
--- a/Documentation/media/uapi/v4l/fieldseq_bt.svg
+++ b/Documentation/media/uapi/v4l/fieldseq_bt.svg
@@ -42,15 +42,15 @@
42 inkscape:window-maximized="1" 42 inkscape:window-maximized="1"
43 inkscape:current-layer="g3627" /><metadata 43 inkscape:current-layer="g3627" /><metadata
44 id="metadata3625"><rdf:RDF><cc:Work 44 id="metadata3625"><rdf:RDF><cc:Work
45 rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type 45 rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
46 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs 46 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
47 id="defs3623"><clipPath 47 id="defs3623"><clipPath
48 id="clipPath4301" 48 id="clipPath4301"
49 clipPathUnits="userSpaceOnUse"><path 49 clipPathUnits="userSpaceOnUse"><path
50 style="clip-rule:evenodd" 50 style="clip-rule:evenodd"
51 inkscape:connector-curvature="0" 51 inkscape:connector-curvature="0"
52 id="path4303" 52 id="path4303"
53 d="M 0,6040 0,0 l 5650,0 0,6040 -5650,0 z m 4786.76,-99.89 103.92,0 0,56.69 -103.92,0 0,0 85.03,-28.35 -85.03,-28.34 z" /></clipPath></defs><g 53 d="M 0,6040 0,0 l 5650,0 0,6040 -5650,0 z m 4786.76,-99.89 103.92,0 0,56.69 -103.92,0 0,0 85.03,-28.35 -85.03,-28.34 z" /></clipPath></defs><g
54 transform="matrix(1.25,0,0,-1.25,-1.0537,751.94632)" 54 transform="matrix(1.25,0,0,-1.25,-1.0537,751.94632)"
55 inkscape:label="fieldseq_bt" 55 inkscape:label="fieldseq_bt"
56 inkscape:groupmode="layer" 56 inkscape:groupmode="layer"
@@ -1390,13 +1390,13 @@
1390 transform="scale(0.1,0.1)" 1390 transform="scale(0.1,0.1)"
1391 id="g4297" 1391 id="g4297"
1392 style=""><g 1392 style=""><g
1393 id="g4299" 1393 id="g4299"
1394 clip-path="url(#clipPath4301)" 1394 clip-path="url(#clipPath4301)"
1395 style=""><path 1395 style=""><path
1396 d="m 3778.18,5968.45 1105.42,0" 1396 d="m 3778.18,5968.45 1105.42,0"
1397 style="fill:none;stroke:#000000;stroke-width:14.17199993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 1397 style="fill:none;stroke:#000000;stroke-width:14.17199993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
1398 id="path4305" 1398 id="path4305"
1399 inkscape:connector-curvature="0" /></g></g><path 1399 inkscape:connector-curvature="0" /></g></g><path
1400 d="m 478.676,594.011 8.503,2.834 -8.503,2.835 0,-5.669" 1400 d="m 478.676,594.011 8.503,2.834 -8.503,2.835 0,-5.669"
1401 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 1401 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
1402 id="path4307" 1402 id="path4307"
@@ -2466,148 +2466,148 @@
2466 id="text4841" 2466 id="text4841"
2467 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2467 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2468 transform="scale(1,-1)"><tspan 2468 transform="scale(1,-1)"><tspan
2469 id="tspan4843" 2469 id="tspan4843"
2470 sodipodi:role="line" 2470 sodipodi:role="line"
2471 y="-533.07098" 2471 y="-533.07098"
2472 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 88.500237 97.835464">V4L2_FIELD_TOP</tspan><tspan 2472 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 88.500237 97.835464">V4L2_FIELD_TOP</tspan><tspan
2473 id="tspan4845" 2473 id="tspan4845"
2474 sodipodi:role="line" 2474 sodipodi:role="line"
2475 y="-465.04559" 2475 y="-465.04559"
2476 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 98.507408 105.83879 113.17018 122.5054">V4L2_FIELD_BOTTOM</tspan><tspan 2476 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 98.507408 105.83879 113.17018 122.5054">V4L2_FIELD_BOTTOM</tspan><tspan
2477 id="tspan4847" 2477 id="tspan4847"
2478 sodipodi:role="line" 2478 sodipodi:role="line"
2479 y="-397.0202" 2479 y="-397.0202"
2480 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 95.843628 103.17502 111.17835 119.84163 128.5049 136.50824 143.83963">V4L2_FIELD_ALTERNATE</tspan></text> 2480 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 95.843628 103.17502 111.17835 119.84163 128.5049 136.50824 143.83963">V4L2_FIELD_ALTERNATE</tspan></text>
2481<text 2481<text
2482 y="-316.23969" 2482 y="-316.23969"
2483 x="103.58983" 2483 x="103.58983"
2484 id="text4849" 2484 id="text4849"
2485 style="font-variant:normal;font-weight:normal;font-size:8.2495203px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2485 style="font-variant:normal;font-weight:normal;font-size:8.2495203px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2486 transform="scale(1,-1)"><tspan 2486 transform="scale(1,-1)"><tspan
2487 id="tspan4851" 2487 id="tspan4851"
2488 sodipodi:role="line" 2488 sodipodi:role="line"
2489 y="-316.23969" 2489 y="-316.23969"
2490 x="103.58983 109.09226 113.67899 118.26572 122.85246 127.43919 132.47964 134.77301 140.27545 144.86218 150.81833 155.40506 160.44553 166.86365 188.62184 194.12427 198.711 203.29774 207.88448 212.47121 217.51166 219.80502 225.30746 229.8942 235.85034 240.43707 245.9395 252.35764 257.3981 262.43854 268.85669 375.69293 381.19534 385.78207 390.3688 394.95554 399.54227 404.58273 406.8761 412.37854 416.96527 422.92142 427.50815 433.01059 439.42871 444.46918 449.50961 455.92776 1.551828 7.0542617 11.640993 16.227724 20.814463 25.401194 30.441652 32.735016 38.237442 42.824177 48.780331 53.367065 58.869492 65.287621 70.328079 75.368538 81.786659">V4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_BOTTOMV4L2_FIELD_BOTTOM</tspan><tspan 2490 x="103.58983 109.09226 113.67899 118.26572 122.85246 127.43919 132.47964 134.77301 140.27545 144.86218 150.81833 155.40506 160.44553 166.86365 188.62184 194.12427 198.711 203.29774 207.88448 212.47121 217.51166 219.80502 225.30746 229.8942 235.85034 240.43707 245.9395 252.35764 257.3981 262.43854 268.85669 375.69293 381.19534 385.78207 390.3688 394.95554 399.54227 404.58273 406.8761 412.37854 416.96527 422.92142 427.50815 433.01059 439.42871 444.46918 449.50961 455.92776 1.551828 7.0542617 11.640993 16.227724 20.814463 25.401194 30.441652 32.735016 38.237442 42.824177 48.780331 53.367065 58.869492 65.287621 70.328079 75.368538 81.786659">V4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_BOTTOMV4L2_FIELD_BOTTOM</tspan><tspan
2491 id="tspan4853" 2491 id="tspan4853"
2492 sodipodi:role="line" 2492 sodipodi:role="line"
2493 y="-328.99481" 2493 y="-328.99481"
2494 x="10.054964 14.17972 18.766451 20.597849 25.18458 29.771311 34.358047 38.944778 41.238144 43.531509 48.118244 50.865334 53.158699 55.452068 57.283459 61.870193 63.701588 68.288322">v4l2_buffer.field:</tspan></text> 2494 x="10.054964 14.17972 18.766451 20.597849 25.18458 29.771311 34.358047 38.944778 41.238144 43.531509 48.118244 50.865334 53.158699 55.452068 57.283459 61.870193 63.701588 68.288322">v4l2_buffer.field:</tspan></text>
2495<text 2495<text
2496 y="-592.59381" 2496 y="-592.59381"
2497 x="5.8034" 2497 x="5.8034"
2498 id="text4855" 2498 id="text4855"
2499 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2499 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2500 transform="scale(1,-1)"><tspan 2500 transform="scale(1,-1)"><tspan
2501 id="tspan4857" 2501 id="tspan4857"
2502 sodipodi:role="line" 2502 sodipodi:role="line"
2503 y="-592.59381" 2503 y="-592.59381"
2504 x="5.8034 13.134789 19.806232 29.801399 36.472843 43.144287 47.139954 53.811398 56.475174 59.810898 66.482346 70.478004 77.149452 83.820892 87.816566 91.152283 94.488007 101.15945 107.83089 111.16662 114.50233 121.17377 131.16895 134.50468 137.84041 140.50418 147.17563 149.8394 156.51085 159.84657 163.1823 165.84607 169.84174 175.84123 179.17696 182.51268 185.8484 189.84407 196.51552 203.18695 209.18646 219.18163 221.8454 225.18112 228.51685 235.18829 241.85973 245.19545 249.19112 255.86256 259.19827 265.86972 269.20544 272.54117 282.53635 285.87207 294.53534 301.86673 309.87006 318.53336">Temporal order, bottom field first transmitted (e.g. M/NTSC)</tspan></text> 2504 x="5.8034 13.134789 19.806232 29.801399 36.472843 43.144287 47.139954 53.811398 56.475174 59.810898 66.482346 70.478004 77.149452 83.820892 87.816566 91.152283 94.488007 101.15945 107.83089 111.16662 114.50233 121.17377 131.16895 134.50468 137.84041 140.50418 147.17563 149.8394 156.51085 159.84657 163.1823 165.84607 169.84174 175.84123 179.17696 182.51268 185.8484 189.84407 196.51552 203.18695 209.18646 219.18163 221.8454 225.18112 228.51685 235.18829 241.85973 245.19545 249.19112 255.86256 259.19827 265.86972 269.20544 272.54117 282.53635 285.87207 294.53534 301.86673 309.87006 318.53336">Temporal order, bottom field first transmitted (e.g. M/NTSC)</tspan></text>
2505<text 2505<text
2506 y="-316.23981" 2506 y="-316.23981"
2507 x="290.6604" 2507 x="290.6604"
2508 id="text4859" 2508 id="text4859"
2509 style="font-variant:normal;font-weight:normal;font-size:8.2495203px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2509 style="font-variant:normal;font-weight:normal;font-size:8.2495203px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2510 transform="scale(1,-1)"><tspan 2510 transform="scale(1,-1)"><tspan
2511 id="tspan4861" 2511 id="tspan4861"
2512 sodipodi:role="line" 2512 sodipodi:role="line"
2513 y="-316.23981" 2513 y="-316.23981"
2514 x="290.6604 296.16284 300.74957 305.3363 309.92303 314.50977 319.55023 321.8436 327.34601 331.93274 337.88889 342.47565 347.51608 353.9342 477.73062 483.23306 487.81979 492.40652 496.99326 501.57999 506.62045 508.91382 514.41626 519.00299 524.95911 529.5459 534.5863 541.00446">V4L2_FIELD_TOPV4L2_FIELD_TOP</tspan></text> 2514 x="290.6604 296.16284 300.74957 305.3363 309.92303 314.50977 319.55023 321.8436 327.34601 331.93274 337.88889 342.47565 347.51608 353.9342 477.73062 483.23306 487.81979 492.40652 496.99326 501.57999 506.62045 508.91382 514.41626 519.00299 524.95911 529.5459 534.5863 541.00446">V4L2_FIELD_TOPV4L2_FIELD_TOP</tspan></text>
2515<text 2515<text
2516 y="-299.23349" 2516 y="-299.23349"
2517 x="5.8034" 2517 x="5.8034"
2518 id="text4863" 2518 id="text4863"
2519 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2519 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2520 transform="scale(1,-1)"><tspan 2520 transform="scale(1,-1)"><tspan
2521 id="tspan4865" 2521 id="tspan4865"
2522 sodipodi:role="line" 2522 sodipodi:role="line"
2523 y="-299.23349" 2523 y="-299.23349"
2524 x="5.8034 13.806733 20.478176 27.149622 33.821064 40.492508 47.823895 51.159618 59.162952 65.834396 74.497673 81.169121 84.504837 93.168114 100.4995 108.50284 117.16611 123.83755 131.8409 140.50418 148.50751 157.17079 160.50652 163.84224 167.17796 175.18129 181.85274 188.52419 195.19562 201.86707 209.19846 212.53418 220.53751 227.20895 235.87224 242.54367 245.87939 254.54268 261.87405 269.87741 278.54068 285.21213 293.21545 301.87872 309.88205 318.54535 325.2168 333.22012">V4L2_FIELD_INTERLACED / V4L2_FIELD_INTERLACED_BT</tspan><tspan 2524 x="5.8034 13.806733 20.478176 27.149622 33.821064 40.492508 47.823895 51.159618 59.162952 65.834396 74.497673 81.169121 84.504837 93.168114 100.4995 108.50284 117.16611 123.83755 131.8409 140.50418 148.50751 157.17079 160.50652 163.84224 167.17796 175.18129 181.85274 188.52419 195.19562 201.86707 209.19846 212.53418 220.53751 227.20895 235.87224 242.54367 245.87939 254.54268 261.87405 269.87741 278.54068 285.21213 293.21545 301.87872 309.88205 318.54535 325.2168 333.22012">V4L2_FIELD_INTERLACED / V4L2_FIELD_INTERLACED_BT</tspan><tspan
2525 id="tspan4867" 2525 id="tspan4867"
2526 sodipodi:role="line" 2526 sodipodi:role="line"
2527 y="-192.9435" 2527 y="-192.9435"
2528 x="1.5518398 9.5551729 16.226616 22.898062 29.569506 36.240948 43.572334 46.908058 54.911392 61.582836 70.246117 76.917557 80.253281 88.916557 96.247948 104.25128 112.91456 119.586 127.58932 136.25262 144.25595 152.91924 159.59067 166.92206 174.9254 178.26112 182.25679 192.25195 194.91573 200.91524 207.58667 210.25046 212.91423 219.58568 226.25713 232.92856 239.60001">V4L2_FIELD_INTERLACED_TB (misaligned)</tspan><tspan 2528 x="1.5518398 9.5551729 16.226616 22.898062 29.569506 36.240948 43.572334 46.908058 54.911392 61.582836 70.246117 76.917557 80.253281 88.916557 96.247948 104.25128 112.91456 119.586 127.58932 136.25262 144.25595 152.91924 159.59067 166.92206 174.9254 178.26112 182.25679 192.25195 194.91573 200.91524 207.58667 210.25046 212.91423 219.58568 226.25713 232.92856 239.60001">V4L2_FIELD_INTERLACED_TB (misaligned)</tspan><tspan
2529 id="tspan4869" 2529 id="tspan4869"
2530 sodipodi:role="line" 2530 sodipodi:role="line"
2531 y="-86.653496" 2531 y="-86.653496"
2532 x="5.8034 13.806733 20.478176 27.149622 33.821064 40.492508 47.823895 51.159618 59.162952 65.834396 74.497673 81.169121 89.172447 97.175781 106.511 113.18245 121.18579">V4L2_FIELD_SEQ_BT</tspan></text> 2532 x="5.8034 13.806733 20.478176 27.149622 33.821064 40.492508 47.823895 51.159618 59.162952 65.834396 74.497673 81.169121 89.172447 97.175781 106.511 113.18245 121.18579">V4L2_FIELD_SEQ_BT</tspan></text>
2533<text 2533<text
2534 y="-533.07098" 2534 y="-533.07098"
2535 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 88.500237 97.835464" 2535 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 88.500237 97.835464"
2536 id="text4592" 2536 id="text4592"
2537 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2537 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2538 transform="scale(1,-1)"><tspan 2538 transform="scale(1,-1)"><tspan
2539 id="tspan4594" 2539 id="tspan4594"
2540 sodipodi:role="line" 2540 sodipodi:role="line"
2541 y="-533.07098" 2541 y="-533.07098"
2542 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 88.500237 97.835464">V4L2_FIELD_TOP</tspan></text> 2542 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 88.500237 97.835464">V4L2_FIELD_TOP</tspan></text>
2543<text 2543<text
2544 y="-465.04559" 2544 y="-465.04559"
2545 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 98.507408 105.83879 113.17018 122.5054" 2545 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 98.507408 105.83879 113.17018 122.5054"
2546 id="text4596" 2546 id="text4596"
2547 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2547 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2548 transform="scale(1,-1)"><tspan 2548 transform="scale(1,-1)"><tspan
2549 id="tspan4598" 2549 id="tspan4598"
2550 sodipodi:role="line" 2550 sodipodi:role="line"
2551 y="-465.04559" 2551 y="-465.04559"
2552 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 98.507408 105.83879 113.17018 122.5054">V4L2_FIELD_BOTTOM</tspan></text> 2552 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 98.507408 105.83879 113.17018 122.5054">V4L2_FIELD_BOTTOM</tspan></text>
2553<text 2553<text
2554 y="-397.0202" 2554 y="-397.0202"
2555 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 95.843628 103.17502 111.17835 119.84163 128.5049 136.50824 143.83963" 2555 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 95.843628 103.17502 111.17835 119.84163 128.5049 136.50824 143.83963"
2556 id="text4600" 2556 id="text4600"
2557 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2557 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2558 transform="scale(1,-1)"><tspan 2558 transform="scale(1,-1)"><tspan
2559 id="tspan4602" 2559 id="tspan4602"
2560 sodipodi:role="line" 2560 sodipodi:role="line"
2561 y="-397.0202" 2561 y="-397.0202"
2562 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 95.843628 103.17502 111.17835 119.84163 128.5049 136.50824 143.83963">V4L2_FIELD_ALTERNATE</tspan></text> 2562 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 95.843628 103.17502 111.17835 119.84163 128.5049 136.50824 143.83963">V4L2_FIELD_ALTERNATE</tspan></text>
2563<text 2563<text
2564 y="-299.23349" 2564 y="-299.23349"
2565 x="5.8034 13.806733 20.478176 27.149622 33.821064 40.492508 47.823895 51.159618 59.162952 65.834396 74.497673 81.169121 84.504837 93.168114 100.4995 108.50284 117.16611 123.83755 131.8409 140.50418 148.50751 157.17079 160.50652 163.84224 167.17796 175.18129 181.85274 188.52419 195.19562 201.86707 209.19846 212.53418 220.53751 227.20895 235.87224 242.54367 245.87939 254.54268 261.87405 269.87741 278.54068 285.21213 293.21545 301.87872 309.88205 318.54535 325.2168 333.22012" 2565 x="5.8034 13.806733 20.478176 27.149622 33.821064 40.492508 47.823895 51.159618 59.162952 65.834396 74.497673 81.169121 84.504837 93.168114 100.4995 108.50284 117.16611 123.83755 131.8409 140.50418 148.50751 157.17079 160.50652 163.84224 167.17796 175.18129 181.85274 188.52419 195.19562 201.86707 209.19846 212.53418 220.53751 227.20895 235.87224 242.54367 245.87939 254.54268 261.87405 269.87741 278.54068 285.21213 293.21545 301.87872 309.88205 318.54535 325.2168 333.22012"
2566 id="text5862" 2566 id="text5862"
2567 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2567 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2568 transform="scale(1,-1)"><tspan 2568 transform="scale(1,-1)"><tspan
2569 id="tspan5864" 2569 id="tspan5864"
2570 sodipodi:role="line" 2570 sodipodi:role="line"
2571 y="-299.23349" 2571 y="-299.23349"
2572 x="5.8034 13.806733 20.478176 27.149622 33.821064 40.492508 47.823895 51.159618 59.162952 65.834396 74.497673 81.169121 84.504837 93.168114 100.4995 108.50284 117.16611 123.83755 131.8409 140.50418 148.50751 157.17079 160.50652 163.84224 167.17796 175.18129 181.85274 188.52419 195.19562 201.86707 209.19846 212.53418 220.53751 227.20895 235.87224 242.54367 245.87939 254.54268 261.87405 269.87741 278.54068 285.21213 293.21545 301.87872 309.88205 318.54535 325.2168 333.22012">V4L2_FIELD_INTERLACED / V4L2_FIELD_INTERLACED_BT</tspan></text> 2572 x="5.8034 13.806733 20.478176 27.149622 33.821064 40.492508 47.823895 51.159618 59.162952 65.834396 74.497673 81.169121 84.504837 93.168114 100.4995 108.50284 117.16611 123.83755 131.8409 140.50418 148.50751 157.17079 160.50652 163.84224 167.17796 175.18129 181.85274 188.52419 195.19562 201.86707 209.19846 212.53418 220.53751 227.20895 235.87224 242.54367 245.87939 254.54268 261.87405 269.87741 278.54068 285.21213 293.21545 301.87872 309.88205 318.54535 325.2168 333.22012">V4L2_FIELD_INTERLACED / V4L2_FIELD_INTERLACED_BT</tspan></text>
2573<text 2573<text
2574 y="-192.9435" 2574 y="-192.9435"
2575 x="1.5518398 9.5551729 16.226616 22.898062 29.569506 36.240948 43.572334 46.908058 54.911392 61.582836 70.246117 76.917557 80.253281 88.916557 96.247948 104.25128 112.91456 119.586 127.58932 136.25262 144.25595 152.91924 159.59067 166.92206 174.9254 178.26112 182.25679 192.25195 194.91573 200.91524 207.58667 210.25046 212.91423 219.58568 226.25713 232.92856 239.60001" 2575 x="1.5518398 9.5551729 16.226616 22.898062 29.569506 36.240948 43.572334 46.908058 54.911392 61.582836 70.246117 76.917557 80.253281 88.916557 96.247948 104.25128 112.91456 119.586 127.58932 136.25262 144.25595 152.91924 159.59067 166.92206 174.9254 178.26112 182.25679 192.25195 194.91573 200.91524 207.58667 210.25046 212.91423 219.58568 226.25713 232.92856 239.60001"
2576 id="text5866" 2576 id="text5866"
2577 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2577 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2578 transform="scale(1,-1)"><tspan 2578 transform="scale(1,-1)"><tspan
2579 id="tspan5868" 2579 id="tspan5868"
2580 sodipodi:role="line" 2580 sodipodi:role="line"
2581 y="-192.9435" 2581 y="-192.9435"
2582 x="1.5518398 9.5551729 16.226616 22.898062 29.569506 36.240948 43.572334 46.908058 54.911392 61.582836 70.246117 76.917557 80.253281 88.916557 96.247948 104.25128 112.91456 119.586 127.58932 136.25262 144.25595 152.91924 159.59067 166.92206 174.9254 178.26112 182.25679 192.25195 194.91573 200.91524 207.58667 210.25046 212.91423 219.58568 226.25713 232.92856 239.60001">V4L2_FIELD_INTERLACED_TB (misaligned)</tspan></text> 2582 x="1.5518398 9.5551729 16.226616 22.898062 29.569506 36.240948 43.572334 46.908058 54.911392 61.582836 70.246117 76.917557 80.253281 88.916557 96.247948 104.25128 112.91456 119.586 127.58932 136.25262 144.25595 152.91924 159.59067 166.92206 174.9254 178.26112 182.25679 192.25195 194.91573 200.91524 207.58667 210.25046 212.91423 219.58568 226.25713 232.92856 239.60001">V4L2_FIELD_INTERLACED_TB (misaligned)</tspan></text>
2583<text 2583<text
2584 y="-86.653496" 2584 y="-86.653496"
2585 x="5.8034 13.806733 20.478176 27.149622 33.821064 40.492508 47.823895 51.159618 59.162952 65.834396 74.497673 81.169121 89.172447 97.175781 106.511 113.18245 121.18579" 2585 x="5.8034 13.806733 20.478176 27.149622 33.821064 40.492508 47.823895 51.159618 59.162952 65.834396 74.497673 81.169121 89.172447 97.175781 106.511 113.18245 121.18579"
2586 id="text5870" 2586 id="text5870"
2587 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2587 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2588 transform="scale(1,-1)"><tspan 2588 transform="scale(1,-1)"><tspan
2589 id="tspan5872" 2589 id="tspan5872"
2590 sodipodi:role="line" 2590 sodipodi:role="line"
2591 y="-86.653496" 2591 y="-86.653496"
2592 x="5.8034 13.806733 20.478176 27.149622 33.821064 40.492508 47.823895 51.159618 59.162952 65.834396 74.497673 81.169121 89.172447 97.175781 106.511 113.18245 121.18579">V4L2_FIELD_SEQ_BT</tspan></text> 2592 x="5.8034 13.806733 20.478176 27.149622 33.821064 40.492508 47.823895 51.159618 59.162952 65.834396 74.497673 81.169121 89.172447 97.175781 106.511 113.18245 121.18579">V4L2_FIELD_SEQ_BT</tspan></text>
2593<text 2593<text
2594 y="-316.23969" 2594 y="-316.23969"
2595 x="103.58983 109.09226 113.67899 118.26572 122.85246 127.43919 132.47964 134.77301 140.27545 144.86218 150.81833 155.40506 160.44553 166.86365 188.62184 194.12427 198.711 203.29774 207.88448 212.47121 217.51166 219.80502 225.30746 229.8942 235.85034 240.43707 245.9395 252.35764 257.3981 262.43854 268.85669 375.69293 381.19534 385.78207 390.3688 394.95554 399.54227 404.58273 406.8761 412.37854 416.96527 422.92142 427.50815 433.01059 439.42871 444.46918 449.50961 455.92776 1.551828 7.0542617 11.640993 16.227724 20.814463 25.401194 30.441652 32.735016 38.237442 42.824177 48.780331 53.367065 58.869492 65.287621 70.328079 75.368538 81.786659" 2595 x="103.58983 109.09226 113.67899 118.26572 122.85246 127.43919 132.47964 134.77301 140.27545 144.86218 150.81833 155.40506 160.44553 166.86365 188.62184 194.12427 198.711 203.29774 207.88448 212.47121 217.51166 219.80502 225.30746 229.8942 235.85034 240.43707 245.9395 252.35764 257.3981 262.43854 268.85669 375.69293 381.19534 385.78207 390.3688 394.95554 399.54227 404.58273 406.8761 412.37854 416.96527 422.92142 427.50815 433.01059 439.42871 444.46918 449.50961 455.92776 1.551828 7.0542617 11.640993 16.227724 20.814463 25.401194 30.441652 32.735016 38.237442 42.824177 48.780331 53.367065 58.869492 65.287621 70.328079 75.368538 81.786659"
2596 id="text7144" 2596 id="text7144"
2597 style="font-variant:normal;font-weight:normal;font-size:8.2495203px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2597 style="font-variant:normal;font-weight:normal;font-size:8.2495203px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2598 transform="scale(1,-1)"><tspan 2598 transform="scale(1,-1)"><tspan
2599 id="tspan7146" 2599 id="tspan7146"
2600 sodipodi:role="line" 2600 sodipodi:role="line"
2601 y="-316.23969" 2601 y="-316.23969"
2602 x="103.58983 109.09226 113.67899 118.26572 122.85246 127.43919 132.47964 134.77301 140.27545 144.86218 150.81833 155.40506 160.44553 166.86365 188.62184 194.12427 198.711 203.29774 207.88448 212.47121 217.51166 219.80502 225.30746 229.8942 235.85034 240.43707 245.9395 252.35764 257.3981 262.43854 268.85669 375.69293 381.19534 385.78207 390.3688 394.95554 399.54227 404.58273 406.8761 412.37854 416.96527 422.92142 427.50815 433.01059 439.42871 444.46918 449.50961 455.92776 1.551828 7.0542617 11.640993 16.227724 20.814463 25.401194 30.441652 32.735016 38.237442 42.824177 48.780331 53.367065 58.869492 65.287621 70.328079 75.368538 81.786659">V4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_BOTTOMV4L2_FIELD_BOTTOM</tspan></text> 2602 x="103.58983 109.09226 113.67899 118.26572 122.85246 127.43919 132.47964 134.77301 140.27545 144.86218 150.81833 155.40506 160.44553 166.86365 188.62184 194.12427 198.711 203.29774 207.88448 212.47121 217.51166 219.80502 225.30746 229.8942 235.85034 240.43707 245.9395 252.35764 257.3981 262.43854 268.85669 375.69293 381.19534 385.78207 390.3688 394.95554 399.54227 404.58273 406.8761 412.37854 416.96527 422.92142 427.50815 433.01059 439.42871 444.46918 449.50961 455.92776 1.551828 7.0542617 11.640993 16.227724 20.814463 25.401194 30.441652 32.735016 38.237442 42.824177 48.780331 53.367065 58.869492 65.287621 70.328079 75.368538 81.786659">V4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_BOTTOMV4L2_FIELD_BOTTOM</tspan></text>
2603<text 2603<text
2604 y="-328.99481" 2604 y="-328.99481"
2605 x="10.054964 14.17972 18.766451 20.597849 25.18458 29.771311 34.358047 38.944778 41.238144 43.531509 48.118244 50.865334 53.158699 55.452068 57.283459 61.870193 63.701588 68.288322" 2605 x="10.054964 14.17972 18.766451 20.597849 25.18458 29.771311 34.358047 38.944778 41.238144 43.531509 48.118244 50.865334 53.158699 55.452068 57.283459 61.870193 63.701588 68.288322"
2606 id="text7148" 2606 id="text7148"
2607 style="font-variant:normal;font-weight:normal;font-size:8.2495203px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2607 style="font-variant:normal;font-weight:normal;font-size:8.2495203px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2608 transform="scale(1,-1)"><tspan 2608 transform="scale(1,-1)"><tspan
2609 id="tspan7150" 2609 id="tspan7150"
2610 sodipodi:role="line" 2610 sodipodi:role="line"
2611 y="-328.99481" 2611 y="-328.99481"
2612 x="10.054964 14.17972 18.766451 20.597849 25.18458 29.771311 34.358047 38.944778 41.238144 43.531509 48.118244 50.865334 53.158699 55.452068 57.283459 61.870193 63.701588 68.288322">v4l2_buffer.field:</tspan></text> 2612 x="10.054964 14.17972 18.766451 20.597849 25.18458 29.771311 34.358047 38.944778 41.238144 43.531509 48.118244 50.865334 53.158699 55.452068 57.283459 61.870193 63.701588 68.288322">v4l2_buffer.field:</tspan></text>
2613</g></svg> \ No newline at end of file 2613</g></svg> \ No newline at end of file
diff --git a/Documentation/media/uapi/v4l/fieldseq_tb.svg b/Documentation/media/uapi/v4l/fieldseq_tb.svg
index 6a7b10ad4ab8..7c74344e770f 100644
--- a/Documentation/media/uapi/v4l/fieldseq_tb.svg
+++ b/Documentation/media/uapi/v4l/fieldseq_tb.svg
@@ -42,15 +42,15 @@
42 inkscape:window-maximized="1" 42 inkscape:window-maximized="1"
43 inkscape:current-layer="g5551" /><metadata 43 inkscape:current-layer="g5551" /><metadata
44 id="metadata5549"><rdf:RDF><cc:Work 44 id="metadata5549"><rdf:RDF><cc:Work
45 rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type 45 rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
46 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs 46 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
47 id="defs5547"><clipPath 47 id="defs5547"><clipPath
48 id="clipPath6753" 48 id="clipPath6753"
49 clipPathUnits="userSpaceOnUse"><path 49 clipPathUnits="userSpaceOnUse"><path
50 style="clip-rule:evenodd" 50 style="clip-rule:evenodd"
51 inkscape:connector-curvature="0" 51 inkscape:connector-curvature="0"
52 id="path6755" 52 id="path6755"
53 d="M 0,6000 0,0 l 5660,0 0,6000 -5660,0 z m 4786.76,-102.89 103.92,0 0,56.69 -103.92,0 0,0 85.03,-28.35 -85.03,-28.34 z" /></clipPath></defs><g 53 d="M 0,6000 0,0 l 5660,0 0,6000 -5660,0 z m 4786.76,-102.89 103.92,0 0,56.69 -103.92,0 0,0 85.03,-28.35 -85.03,-28.34 z" /></clipPath></defs><g
54 transform="matrix(1.25,0,0,-1.25,-1.0537,746.57119)" 54 transform="matrix(1.25,0,0,-1.25,-1.0537,746.57119)"
55 inkscape:label="fieldseq_tb" 55 inkscape:label="fieldseq_tb"
56 inkscape:groupmode="layer" 56 inkscape:groupmode="layer"
@@ -2446,13 +2446,13 @@
2446 transform="scale(0.1,0.1)" 2446 transform="scale(0.1,0.1)"
2447 id="g6749" 2447 id="g6749"
2448 style=""><g 2448 style=""><g
2449 id="g6751" 2449 id="g6751"
2450 clip-path="url(#clipPath6753)" 2450 clip-path="url(#clipPath6753)"
2451 style=""><path 2451 style=""><path
2452 d="m 3778.18,5925.45 1105.42,0" 2452 d="m 3778.18,5925.45 1105.42,0"
2453 style="fill:none;stroke:#000000;stroke-width:14.17199993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 2453 style="fill:none;stroke:#000000;stroke-width:14.17199993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
2454 id="path6757" 2454 id="path6757"
2455 inkscape:connector-curvature="0" /></g></g><path 2455 inkscape:connector-curvature="0" /></g></g><path
2456 d="m 478.676,589.711 8.503,2.834 -8.503,2.835 0,-5.669" 2456 d="m 478.676,589.711 8.503,2.834 -8.503,2.835 0,-5.669"
2457 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 2457 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
2458 id="path6759" 2458 id="path6759"
@@ -2466,142 +2466,145 @@
2466 id="text6765" 2466 id="text6765"
2467 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2467 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2468 transform="scale(1,-1)"><tspan 2468 transform="scale(1,-1)"><tspan
2469 id="tspan6767" 2469 id="tspan6767"
2470 sodipodi:role="line" 2470 sodipodi:role="line"
2471 y="-528.771" 2471 y="-528.771"
2472 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 88.500237 97.835464">V4L2_FIELD_TOP</tspan><tspan 2472 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 88.500237 97.835464">V4L2_FIELD_TOP</tspan><tspan
2473 id="tspan6769" 2473 id="tspan6769"
2474 sodipodi:role="line" 2474 sodipodi:role="line"
2475 y="-460.74561" 2475 y="-460.74561"
2476 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 98.507408 105.83879 113.17018 122.5054">V4L2_FIELD_BOTTOM</tspan><tspan 2476 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 98.507408 105.83879 113.17018 122.5054">V4L2_FIELD_BOTTOM</tspan><tspan
2477 id="tspan6771" 2477 id="tspan6771"
2478 sodipodi:role="line" 2478 sodipodi:role="line"
2479 y="-392.72021" 2479 y="-392.72021"
2480 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 95.843628 103.17502 111.17835 119.84163 128.5049 136.50824 143.83963">V4L2_FIELD_ALTERNATE</tspan></text> 2480 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 95.843628 103.17502 111.17835 119.84163 128.5049 136.50824 143.83963">V4L2_FIELD_ALTERNATE</tspan></text>
2481<text 2481<text
2482 y="-324.69479" 2482 y="-324.69479"
2483 x="10.05469" 2483 x="10.05469"
2484 id="text6773" 2484 id="text6773"
2485 style="font-variant:normal;font-weight:normal;font-size:8.2495203px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2485 style="font-variant:normal;font-weight:normal;font-size:8.2495203px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2486 transform="scale(1,-1)"><tspan 2486 transform="scale(1,-1)"><tspan
2487 id="tspan6775" 2487 id="tspan6775"
2488 sodipodi:role="line" 2488 sodipodi:role="line"
2489 y="-324.69479" 2489 y="-324.69479"
2490 x="10.05469 14.17945 18.766184 20.597576 25.184309 29.771042 34.357777 38.944508 41.237877 43.531242 48.117977 50.865067 53.158432 55.451801 57.283192 61.869926 63.701321 68.288048">v4l2_buffer.field:</tspan><tspan 2490 x="10.05469 14.17945 18.766184 20.597576 25.184309 29.771042 34.357777 38.944508 41.237877 43.531242 48.117977 50.865067 53.158432 55.451801 57.283192 61.869926 63.701321 68.288048">v4l2_buffer.field:</tspan><tspan
2491 id="tspan6777" 2491 id="tspan6777"
2492 sodipodi:role="line" 2492 sodipodi:role="line"
2493 y="-311.9397" 2493 y="-311.9397"
2494 x="10.05469 15.55712 20.143852 24.730585 29.317318 33.904053 38.944508 41.237877 46.740307 51.327042 57.283192 61.869926 66.910378 73.328506 95.0867 100.58913 105.17586 109.7626 114.34933 118.93606 123.97652 126.26987 131.77232 136.35905 142.3152 146.90193 152.40436 158.82249 163.86295 168.9034 175.32153 197.12534 202.62778 207.21451 211.80124 216.38797 220.9747 226.01515 228.30853 233.81096 238.39769 244.35384 248.94058 253.98103 260.39917 282.15695 287.65936 292.24609 296.83282 301.41956 306.00629 311.04675 313.34012 318.84256 323.42929 329.38544 333.97217 339.47461 345.89273 350.9332 355.97363 362.39175 384.19559 389.698 394.28473 398.87149 403.45822 408.04495 413.08539 415.37875 420.8812 425.46793 431.42407 436.0108 441.05127 447.46939 469.2276 474.73001 479.31674 483.90347 488.49023 493.07697 498.1174 500.41077 505.91321 510.49994 516.45612 521.04285 526.54523 532.96338 538.00385 543.04431 549.4624">V4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_TOPV4L2_FIELD_BOTTOM</tspan></text> 2494 x="10.05469 15.55712 20.143852 24.730585 29.317318 33.904053 38.944508 41.237877 46.740307 51.327042 57.283192 61.869926 66.910378 73.328506 95.0867 100.58913 105.17586 109.7626 114.34933 118.93606 123.97652 126.26987 131.77232 136.35905 142.3152 146.90193 152.40436 158.82249 163.86295 168.9034 175.32153 197.12534 202.62778 207.21451 211.80124 216.38797 220.9747 226.01515 228.30853 233.81096 238.39769 244.35384 248.94058 253.98103 260.39917 282.15695 287.65936 292.24609 296.83282 301.41956 306.00629 311.04675 313.34012 318.84256 323.42929 329.38544 333.97217 339.47461 345.89273 350.9332 355.97363 362.39175 384.19559 389.698 394.28473 398.87149 403.45822 408.04495 413.08539 415.37875 420.8812 425.46793 431.42407 436.0108 441.05127 447.46939 469.2276 474.73001 479.31674 483.90347 488.49023 493.07697 498.1174 500.41077 505.91321 510.49994 516.45612 521.04285 526.54523 532.96338
2495538.00385 543.04431 549.4624">V4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_TOPV4L2_FIELD_BOTTOM</tspan></text>
2495<text 2496<text
2496 y="-588.2937" 2497 y="-588.2937"
2497 x="5.8031301" 2498 x="5.8031301"
2498 id="text6779" 2499 id="text6779"
2499 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2500 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2500 transform="scale(1,-1)"><tspan 2501 transform="scale(1,-1)"><tspan
2501 id="tspan6781" 2502 id="tspan6781"
2502 sodipodi:role="line" 2503 sodipodi:role="line"
2503 y="-588.2937" 2504 y="-588.2937"
2504 x="5.8031301 13.134519 19.805964 29.801128 36.472572 43.14402 47.139687 53.811131 56.474907 59.810631 66.482071 70.477737 77.149185 83.820625 87.816299 91.152016 94.48774 97.823463 104.4949 111.16635 114.50207 117.83779 120.50157 127.17302 129.83679 136.50824 139.84396 143.17969 145.84346 149.83913 155.83862 159.17435 162.51007 165.84579 169.84146 176.51291 183.18434 189.18385 199.17902 201.84279 205.17851 208.51424 215.18568 221.85713 225.19284 229.18851 235.85995 239.19568 245.86713 249.20285 252.53857 260.5419 269.87714 273.21286 281.21619 289.21951 295.89096">Temporal order, top field first transmitted (e.g. BG/PAL)</tspan><tspan 2505 x="5.8031301 13.134519 19.805964 29.801128 36.472572 43.14402 47.139687 53.811131 56.474907 59.810631 66.482071 70.477737 77.149185 83.820625 87.816299 91.152016 94.48774 97.823463 104.4949 111.16635 114.50207 117.83779 120.50157 127.17302 129.83679 136.50824 139.84396 143.17969 145.84346 149.83913 155.83862 159.17435 162.51007 165.84579 169.84146 176.51291 183.18434 189.18385 199.17902 201.84279 205.17851 208.51424 215.18568 221.85713 225.19284 229.18851 235.85995 239.19568 245.86713 249.20285 252.53857 260.5419 269.87714 273.21286 281.21619 289.21951 295.89096">Temporal order, top field first transmitted (e.g. BG/PAL)</tspan><tspan
2505 id="tspan6783" 2506 id="tspan6783"
2506 sodipodi:role="line" 2507 sodipodi:role="line"
2507 y="-86.604706" 2508 y="-86.604706"
2508 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 97.175514 106.51073 113.18218 120.51357">V4L2_FIELD_SEQ_TB</tspan><tspan 2509 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 97.175514 106.51073 113.18218 120.51357">V4L2_FIELD_SEQ_TB</tspan><tspan
2509 id="tspan6785" 2510 id="tspan6785"
2510 sodipodi:role="line" 2511 sodipodi:role="line"
2511 y="-192.89471" 2512 y="-192.89471"
2512 x="10.05469 18.058023 24.729465 31.400909 38.072357 44.743801 52.075188 55.410912 63.414246 70.085686 78.748962 85.42041 88.756134 97.419411 104.7508 112.75413 121.41741 128.08885 136.09219 144.75546 152.7588 161.42207 168.09352 176.09685 183.42824 186.76396 190.75963 200.75479 203.41858 209.41808 216.08952 218.7533 221.41707 228.08852 234.75996 241.43141 248.10286">V4L2_FIELD_INTERLACED_BT (misaligned)</tspan><tspan 2513 x="10.05469 18.058023 24.729465 31.400909 38.072357 44.743801 52.075188 55.410912 63.414246 70.085686 78.748962 85.42041 88.756134 97.419411 104.7508 112.75413 121.41741 128.08885 136.09219 144.75546 152.7588 161.42207 168.09352 176.09685 183.42824 186.76396 190.75963 200.75479 203.41858 209.41808 216.08952 218.7533 221.41707 228.08852 234.75996 241.43141 248.10286">V4L2_FIELD_INTERLACED_BT (misaligned)</tspan><tspan
2513 id="tspan6787" 2514 id="tspan6787"
2514 sodipodi:role="line" 2515 sodipodi:role="line"
2515 y="-294.93271" 2516 y="-294.93271"
2516 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 84.50457 93.167847 100.49924 108.50257 117.16585 123.83729 131.84062 140.50391 148.50723 157.17052 160.50624 163.84196 167.17769 175.18102 181.85246 188.52391 195.19534 201.86679 209.19818 212.53391 220.53723 227.20868 235.87196 242.5434 245.87912 254.5424 261.87378 269.87714 278.54041 285.21185 293.21518 301.87845 309.88177 318.54507 325.21652 332.54791">V4L2_FIELD_INTERLACED / V4L2_FIELD_INTERLACED_TB</tspan></text> 2517 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 84.50457 93.167847 100.49924 108.50257 117.16585 123.83729 131.84062 140.50391 148.50723 157.17052 160.50624 163.84196 167.17769 175.18102 181.85246 188.52391 195.19534 201.86679 209.19818 212.53391 220.53723 227.20868 235.87196 242.5434 245.87912 254.5424 261.87378 269.87714 278.54041 285.21185 293.21518 301.87845 309.88177 318.54507 325.21652 332.54791">V4L2_FIELD_INTERLACED / V4L2_FIELD_INTERLACED_TB</tspan></text>
2517<text 2518<text
2518 y="-528.771" 2519 y="-528.771"
2519 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 88.500237 97.835464" 2520 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 88.500237 97.835464"
2520 id="text4583" 2521 id="text4583"
2521 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2522 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2522 transform="scale(1,-1)"><tspan 2523 transform="scale(1,-1)"><tspan
2523 id="tspan4585" 2524 id="tspan4585"
2524 sodipodi:role="line" 2525 sodipodi:role="line"
2525 y="-528.771" 2526 y="-528.771"
2526 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 88.500237 97.835464">V4L2_FIELD_TOP</tspan></text> 2527 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 88.500237 97.835464">V4L2_FIELD_TOP</tspan></text>
2527<text 2528<text
2528 y="-460.74561" 2529 y="-460.74561"
2529 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 98.507408 105.83879 113.17018 122.5054" 2530 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 98.507408 105.83879 113.17018 122.5054"
2530 id="text4587" 2531 id="text4587"
2531 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2532 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2532 transform="scale(1,-1)"><tspan 2533 transform="scale(1,-1)"><tspan
2533 id="tspan4589" 2534 id="tspan4589"
2534 sodipodi:role="line" 2535 sodipodi:role="line"
2535 y="-460.74561" 2536 y="-460.74561"
2536 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 98.507408 105.83879 113.17018 122.5054">V4L2_FIELD_BOTTOM</tspan></text> 2537 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 98.507408 105.83879 113.17018 122.5054">V4L2_FIELD_BOTTOM</tspan></text>
2537<text 2538<text
2538 y="-392.72021" 2539 y="-392.72021"
2539 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 95.843628 103.17502 111.17835 119.84163 128.5049 136.50824 143.83963" 2540 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 95.843628 103.17502 111.17835 119.84163 128.5049 136.50824 143.83963"
2540 id="text4591" 2541 id="text4591"
2541 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2542 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2542 transform="scale(1,-1)"><tspan 2543 transform="scale(1,-1)"><tspan
2543 id="tspan4593" 2544 id="tspan4593"
2544 sodipodi:role="line" 2545 sodipodi:role="line"
2545 y="-392.72021" 2546 y="-392.72021"
2546 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 95.843628 103.17502 111.17835 119.84163 128.5049 136.50824 143.83963">V4L2_FIELD_ALTERNATE</tspan></text> 2547 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 95.843628 103.17502 111.17835 119.84163 128.5049 136.50824 143.83963">V4L2_FIELD_ALTERNATE</tspan></text>
2547<text 2548<text
2548 y="-588.2937" 2549 y="-588.2937"
2549 x="5.8031301 13.134519 19.805964 29.801128 36.472572 43.14402 47.139687 53.811131 56.474907 59.810631 66.482071 70.477737 77.149185 83.820625 87.816299 91.152016 94.48774 97.823463 104.4949 111.16635 114.50207 117.83779 120.50157 127.17302 129.83679 136.50824 139.84396 143.17969 145.84346 149.83913 155.83862 159.17435 162.51007 165.84579 169.84146 176.51291 183.18434 189.18385 199.17902 201.84279 205.17851 208.51424 215.18568 221.85713 225.19284 229.18851 235.85995 239.19568 245.86713 249.20285 252.53857 260.5419 269.87714 273.21286 281.21619 289.21951 295.89096" 2550 x="5.8031301 13.134519 19.805964 29.801128 36.472572 43.14402 47.139687 53.811131 56.474907 59.810631 66.482071 70.477737 77.149185 83.820625 87.816299 91.152016 94.48774 97.823463 104.4949 111.16635 114.50207 117.83779 120.50157 127.17302 129.83679 136.50824 139.84396 143.17969 145.84346 149.83913 155.83862 159.17435 162.51007 165.84579 169.84146 176.51291 183.18434 189.18385 199.17902 201.84279 205.17851 208.51424 215.18568 221.85713 225.19284 229.18851 235.85995 239.19568 245.86713 249.20285 252.53857 260.5419 269.87714 273.21286 281.21619 289.21951 295.89096"
2550 id="text5847" 2551 id="text5847"
2551 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2552 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2552 transform="scale(1,-1)"><tspan 2553 transform="scale(1,-1)"><tspan
2553 id="tspan5849" 2554 id="tspan5849"
2554 sodipodi:role="line" 2555 sodipodi:role="line"
2555 y="-588.2937" 2556 y="-588.2937"
2556 x="5.8031301 13.134519 19.805964 29.801128 36.472572 43.14402 47.139687 53.811131 56.474907 59.810631 66.482071 70.477737 77.149185 83.820625 87.816299 91.152016 94.48774 97.823463 104.4949 111.16635 114.50207 117.83779 120.50157 127.17302 129.83679 136.50824 139.84396 143.17969 145.84346 149.83913 155.83862 159.17435 162.51007 165.84579 169.84146 176.51291 183.18434 189.18385 199.17902 201.84279 205.17851 208.51424 215.18568 221.85713 225.19284 229.18851 235.85995 239.19568 245.86713 249.20285 252.53857 260.5419 269.87714 273.21286 281.21619 289.21951 295.89096">Temporal order, top field first transmitted (e.g. BG/PAL)</tspan></text> 2557 x="5.8031301 13.134519 19.805964 29.801128 36.472572 43.14402 47.139687 53.811131 56.474907 59.810631 66.482071 70.477737 77.149185 83.820625 87.816299 91.152016 94.48774 97.823463 104.4949 111.16635 114.50207 117.83779 120.50157 127.17302 129.83679 136.50824 139.84396 143.17969 145.84346 149.83913 155.83862 159.17435 162.51007 165.84579 169.84146 176.51291 183.18434 189.18385 199.17902 201.84279 205.17851 208.51424 215.18568 221.85713 225.19284 229.18851 235.85995 239.19568 245.86713 249.20285 252.53857 260.5419 269.87714 273.21286 281.21619 289.21951 295.89096">Temporal order, top field first transmitted (e.g. BG/PAL)</tspan></text>
2557<text 2558<text
2558 y="-86.604706" 2559 y="-86.604706"
2559 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 97.175514 106.51073 113.18218 120.51357" 2560 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 97.175514 106.51073 113.18218 120.51357"
2560 id="text5851" 2561 id="text5851"
2561 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2562 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2562 transform="scale(1,-1)"><tspan 2563 transform="scale(1,-1)"><tspan
2563 id="tspan5853" 2564 id="tspan5853"
2564 sodipodi:role="line" 2565 sodipodi:role="line"
2565 y="-86.604706" 2566 y="-86.604706"
2566 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 97.175514 106.51073 113.18218 120.51357">V4L2_FIELD_SEQ_TB</tspan></text> 2567 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 89.17218 97.175514 106.51073 113.18218 120.51357">V4L2_FIELD_SEQ_TB</tspan></text>
2567<text 2568<text
2568 y="-192.89471" 2569 y="-192.89471"
2569 x="10.05469 18.058023 24.729465 31.400909 38.072357 44.743801 52.075188 55.410912 63.414246 70.085686 78.748962 85.42041 88.756134 97.419411 104.7508 112.75413 121.41741 128.08885 136.09219 144.75546 152.7588 161.42207 168.09352 176.09685 183.42824 186.76396 190.75963 200.75479 203.41858 209.41808 216.08952 218.7533 221.41707 228.08852 234.75996 241.43141 248.10286" 2570 x="10.05469 18.058023 24.729465 31.400909 38.072357 44.743801 52.075188 55.410912 63.414246 70.085686 78.748962 85.42041 88.756134 97.419411 104.7508 112.75413 121.41741 128.08885 136.09219 144.75546 152.7588 161.42207 168.09352 176.09685 183.42824 186.76396 190.75963 200.75479 203.41858 209.41808 216.08952 218.7533 221.41707 228.08852 234.75996 241.43141 248.10286"
2570 id="text5855" 2571 id="text5855"
2571 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2572 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2572 transform="scale(1,-1)"><tspan 2573 transform="scale(1,-1)"><tspan
2573 id="tspan5857" 2574 id="tspan5857"
2574 sodipodi:role="line" 2575 sodipodi:role="line"
2575 y="-192.89471" 2576 y="-192.89471"
2576 x="10.05469 18.058023 24.729465 31.400909 38.072357 44.743801 52.075188 55.410912 63.414246 70.085686 78.748962 85.42041 88.756134 97.419411 104.7508 112.75413 121.41741 128.08885 136.09219 144.75546 152.7588 161.42207 168.09352 176.09685 183.42824 186.76396 190.75963 200.75479 203.41858 209.41808 216.08952 218.7533 221.41707 228.08852 234.75996 241.43141 248.10286">V4L2_FIELD_INTERLACED_BT (misaligned)</tspan></text> 2577 x="10.05469 18.058023 24.729465 31.400909 38.072357 44.743801 52.075188 55.410912 63.414246 70.085686 78.748962 85.42041 88.756134 97.419411 104.7508 112.75413 121.41741 128.08885 136.09219 144.75546 152.7588 161.42207 168.09352 176.09685 183.42824 186.76396 190.75963 200.75479 203.41858 209.41808 216.08952 218.7533 221.41707 228.08852 234.75996 241.43141 248.10286">V4L2_FIELD_INTERLACED_BT (misaligned)</tspan></text>
2577<text 2578<text
2578 y="-294.93271" 2579 y="-294.93271"
2579 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 84.50457 93.167847 100.49924 108.50257 117.16585 123.83729 131.84062 140.50391 148.50723 157.17052 160.50624 163.84196 167.17769 175.18102 181.85246 188.52391 195.19534 201.86679 209.19818 212.53391 220.53723 227.20868 235.87196 242.5434 245.87912 254.5424 261.87378 269.87714 278.54041 285.21185 293.21518 301.87845 309.88177 318.54507 325.21652 332.54791" 2580 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 84.50457 93.167847 100.49924 108.50257 117.16585 123.83729 131.84062 140.50391 148.50723 157.17052 160.50624 163.84196 167.17769 175.18102 181.85246 188.52391 195.19534 201.86679 209.19818 212.53391 220.53723 227.20868 235.87196 242.5434 245.87912 254.5424 261.87378 269.87714 278.54041 285.21185 293.21518 301.87845 309.88177 318.54507 325.21652 332.54791"
2580 id="text5859" 2581 id="text5859"
2581 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2582 style="font-variant:normal;font-weight:normal;font-size:11.9989996px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2582 transform="scale(1,-1)"><tspan 2583 transform="scale(1,-1)"><tspan
2583 id="tspan5861" 2584 id="tspan5861"
2584 sodipodi:role="line" 2585 sodipodi:role="line"
2585 y="-294.93271" 2586 y="-294.93271"
2586 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 84.50457 93.167847 100.49924 108.50257 117.16585 123.83729 131.84062 140.50391 148.50723 157.17052 160.50624 163.84196 167.17769 175.18102 181.85246 188.52391 195.19534 201.86679 209.19818 212.53391 220.53723 227.20868 235.87196 242.5434 245.87912 254.5424 261.87378 269.87714 278.54041 285.21185 293.21518 301.87845 309.88177 318.54507 325.21652 332.54791">V4L2_FIELD_INTERLACED / V4L2_FIELD_INTERLACED_TB</tspan></text> 2587 x="5.8031301 13.806463 20.477907 27.149351 33.820797 40.492241 47.823627 51.159351 59.162685 65.834129 74.497406 81.168854 84.50457 93.167847 100.49924 108.50257 117.16585 123.83729 131.84062 140.50391 148.50723 157.17052 160.50624 163.84196 167.17769 175.18102 181.85246 188.52391 195.19534 201.86679 209.19818 212.53391 220.53723 227.20868 235.87196 242.5434 245.87912 254.5424 261.87378 269.87714 278.54041 285.21185 293.21518 301.87845 309.88177 318.54507 325.21652 332.54791">V4L2_FIELD_INTERLACED / V4L2_FIELD_INTERLACED_TB</tspan></text>
2587<text 2588<text
2588 y="-324.69479" 2589 y="-324.69479"
2589 x="10.05469 14.17945 18.766184 20.597576 25.184309 29.771042 34.357777 38.944508 41.237877 43.531242 48.117977 50.865067 53.158432 55.451801 57.283192 61.869926 63.701321 68.288048" 2590 x="10.05469 14.17945 18.766184 20.597576 25.184309 29.771042 34.357777 38.944508 41.237877 43.531242 48.117977 50.865067 53.158432 55.451801 57.283192 61.869926 63.701321 68.288048"
2590 id="text7131" 2591 id="text7131"
2591 style="font-variant:normal;font-weight:normal;font-size:8.2495203px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2592 style="font-variant:normal;font-weight:normal;font-size:8.2495203px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2592 transform="scale(1,-1)"><tspan 2593 transform="scale(1,-1)"><tspan
2593 id="tspan7133" 2594 id="tspan7133"
2594 sodipodi:role="line" 2595 sodipodi:role="line"
2595 y="-324.69479" 2596 y="-324.69479"
2596 x="10.05469 14.17945 18.766184 20.597576 25.184309 29.771042 34.357777 38.944508 41.237877 43.531242 48.117977 50.865067 53.158432 55.451801 57.283192 61.869926 63.701321 68.288048">v4l2_buffer.field:</tspan></text> 2597 x="10.05469 14.17945 18.766184 20.597576 25.184309 29.771042 34.357777 38.944508 41.237877 43.531242 48.117977 50.865067 53.158432 55.451801 57.283192 61.869926 63.701321 68.288048">v4l2_buffer.field:</tspan></text>
2597<text 2598<text
2598 y="-311.9397" 2599 y="-311.9397"
2599 x="10.05469 15.55712 20.143852 24.730585 29.317318 33.904053 38.944508 41.237877 46.740307 51.327042 57.283192 61.869926 66.910378 73.328506 95.0867 100.58913 105.17586 109.7626 114.34933 118.93606 123.97652 126.26987 131.77232 136.35905 142.3152 146.90193 152.40436 158.82249 163.86295 168.9034 175.32153 197.12534 202.62778 207.21451 211.80124 216.38797 220.9747 226.01515 228.30853 233.81096 238.39769 244.35384 248.94058 253.98103 260.39917 282.15695 287.65936 292.24609 296.83282 301.41956 306.00629 311.04675 313.34012 318.84256 323.42929 329.38544 333.97217 339.47461 345.89273 350.9332 355.97363 362.39175 384.19559 389.698 394.28473 398.87149 403.45822 408.04495 413.08539 415.37875 420.8812 425.46793 431.42407 436.0108 441.05127 447.46939 469.2276 474.73001 479.31674 483.90347 488.49023 493.07697 498.1174 500.41077 505.91321 510.49994 516.45612 521.04285 526.54523 532.96338 538.00385 543.04431 549.4624" 2600 x="10.05469 15.55712 20.143852 24.730585 29.317318 33.904053 38.944508 41.237877 46.740307 51.327042 57.283192 61.869926 66.910378 73.328506 95.0867 100.58913 105.17586 109.7626 114.34933 118.93606 123.97652 126.26987 131.77232 136.35905 142.3152 146.90193 152.40436 158.82249 163.86295 168.9034 175.32153 197.12534 202.62778 207.21451 211.80124 216.38797 220.9747 226.01515 228.30853 233.81096 238.39769 244.35384 248.94058 253.98103 260.39917 282.15695 287.65936 292.24609 296.83282 301.41956 306.00629 311.04675 313.34012 318.84256 323.42929 329.38544 333.97217 339.47461 345.89273 350.9332 355.97363 362.39175 384.19559 389.698 394.28473 398.87149 403.45822 408.04495 413.08539 415.37875 420.8812 425.46793 431.42407 436.0108 441.05127 447.46939 469.2276 474.73001 479.31674 483.90347 488.49023 493.07697 498.1174 500.41077 505.91321 510.49994 516.45612 521.04285 526.54523 532.96338
2601538.00385 543.04431 549.4624"
2600 id="text7135" 2602 id="text7135"
2601 style="font-variant:normal;font-weight:normal;font-size:8.2495203px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 2603 style="font-variant:normal;font-weight:normal;font-size:8.2495203px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
2602 transform="scale(1,-1)"><tspan 2604 transform="scale(1,-1)"><tspan
2603 id="tspan7137" 2605 id="tspan7137"
2604 sodipodi:role="line" 2606 sodipodi:role="line"
2605 y="-311.9397" 2607 y="-311.9397"
2606 x="10.05469 15.55712 20.143852 24.730585 29.317318 33.904053 38.944508 41.237877 46.740307 51.327042 57.283192 61.869926 66.910378 73.328506 95.0867 100.58913 105.17586 109.7626 114.34933 118.93606 123.97652 126.26987 131.77232 136.35905 142.3152 146.90193 152.40436 158.82249 163.86295 168.9034 175.32153 197.12534 202.62778 207.21451 211.80124 216.38797 220.9747 226.01515 228.30853 233.81096 238.39769 244.35384 248.94058 253.98103 260.39917 282.15695 287.65936 292.24609 296.83282 301.41956 306.00629 311.04675 313.34012 318.84256 323.42929 329.38544 333.97217 339.47461 345.89273 350.9332 355.97363 362.39175 384.19559 389.698 394.28473 398.87149 403.45822 408.04495 413.08539 415.37875 420.8812 425.46793 431.42407 436.0108 441.05127 447.46939 469.2276 474.73001 479.31674 483.90347 488.49023 493.07697 498.1174 500.41077 505.91321 510.49994 516.45612 521.04285 526.54523 532.96338 538.00385 543.04431 549.4624">V4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_TOPV4L2_FIELD_BOTTOM</tspan></text> 2608 x="10.05469 15.55712 20.143852 24.730585 29.317318 33.904053 38.944508 41.237877 46.740307 51.327042 57.283192 61.869926 66.910378 73.328506 95.0867 100.58913 105.17586 109.7626 114.34933 118.93606 123.97652 126.26987 131.77232 136.35905 142.3152 146.90193 152.40436 158.82249 163.86295 168.9034 175.32153 197.12534 202.62778 207.21451 211.80124 216.38797 220.9747 226.01515 228.30853 233.81096 238.39769 244.35384 248.94058 253.98103 260.39917 282.15695 287.65936 292.24609 296.83282 301.41956 306.00629 311.04675 313.34012 318.84256 323.42929 329.38544 333.97217 339.47461 345.89273 350.9332 355.97363 362.39175 384.19559 389.698 394.28473 398.87149 403.45822 408.04495 413.08539 415.37875 420.8812 425.46793 431.42407 436.0108 441.05127 447.46939 469.2276 474.73001 479.31674 483.90347 488.49023 493.07697 498.1174 500.41077 505.91321 510.49994 516.45612 521.04285 526.54523 532.96338
2609538.00385 543.04431 549.4624">V4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_TOPV4L2_FIELD_BOTTOMV4L2_FIELD_TOPV4L2_FIELD_BOTTOM</tspan></text>
2607</g></svg> \ No newline at end of file 2610</g></svg> \ No newline at end of file
diff --git a/Documentation/media/uapi/v4l/nv12mt.svg b/Documentation/media/uapi/v4l/nv12mt.svg
index 21fcccda9723..65d05606c04c 100644
--- a/Documentation/media/uapi/v4l/nv12mt.svg
+++ b/Documentation/media/uapi/v4l/nv12mt.svg
@@ -18,8 +18,8 @@
18 sodipodi:docname="nv12mt.svg" 18 sodipodi:docname="nv12mt.svg"
19 style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"><metadata 19 style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"><metadata
20 id="metadata383"><rdf:RDF><cc:Work 20 id="metadata383"><rdf:RDF><cc:Work
21 rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type 21 rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
22 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><sodipodi:namedview 22 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><sodipodi:namedview
23 pagecolor="#ffffff" 23 pagecolor="#ffffff"
24 bordercolor="#666666" 24 bordercolor="#666666"
25 borderopacity="1" 25 borderopacity="1"
@@ -47,11 +47,11 @@
47 id="defs4"><clipPath 47 id="defs4"><clipPath
48 id="presentation_clip_path" 48 id="presentation_clip_path"
49 clipPathUnits="userSpaceOnUse"><rect 49 clipPathUnits="userSpaceOnUse"><rect
50 x="0" 50 x="0"
51 y="0" 51 y="0"
52 width="28000" 52 width="28000"
53 height="21000" 53 height="21000"
54 id="rect7" /></clipPath></defs><defs 54 id="rect7" /></clipPath></defs><defs
55 id="defs9" /><defs 55 id="defs9" /><defs
56 id="defs80" /><defs 56 id="defs80" /><defs
57 id="defs103" /><defs 57 id="defs103" /><defs
@@ -65,386 +65,386 @@
65 id="g177" 65 id="g177"
66 transform="translate(-3285.889,-3185.889)"><g 66 transform="translate(-3285.889,-3185.889)"><g
67 id="g179"><g 67 id="g179"><g
68 id="id1" 68 id="id1"
69 class="Slide" 69 class="Slide"
70 clip-path="url(#presentation_clip_path)"><g 70 clip-path="url(#presentation_clip_path)"><g
71 class="Page" 71 class="Page"
72 id="g182"><g 72 id="g182"><g
73 class="com.sun.star.drawing.CustomShape" 73 class="com.sun.star.drawing.CustomShape"
74 id="g184"><g 74 id="g184"><g
75 id="id6"><rect 75 id="id6"><rect
76 class="BoundingBox" 76 class="BoundingBox"
77 x="3299" 77 x="3299"
78 y="3199" 78 y="3199"
79 width="2403" 79 width="2403"
80 height="1403" 80 height="1403"
81 id="rect187" 81 id="rect187"
82 style="fill:none;stroke:none" /><path 82 style="fill:none;stroke:none" /><path
83 d="m 4500,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 83 d="m 4500,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
84 id="path189" 84 id="path189"
85 inkscape:connector-curvature="0" 85 inkscape:connector-curvature="0"
86 style="fill:none;stroke:#3465a4" /><text 86 style="fill:none;stroke:#3465a4" /><text
87 class="TextShape" 87 class="TextShape"
88 id="text191"><tspan 88 id="text191"><tspan
89 class="TextParagraph" 89 class="TextParagraph"
90 font-size="635px" 90 font-size="635px"
91 font-weight="400" 91 font-weight="400"
92 id="tspan193" 92 id="tspan193"
93 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 93 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
94 class="TextPosition" 94 class="TextPosition"
95 x="4325" 95 x="4325"
96 y="4121" 96 y="4121"
97 id="tspan195"><tspan 97 id="tspan195"><tspan
98 id="tspan197" 98 id="tspan197"
99 style="fill:#000000;stroke:none">0</tspan></tspan></tspan></text> 99 style="fill:#000000;stroke:none">0</tspan></tspan></tspan></text>
100</g></g><g 100</g></g><g
101 class="com.sun.star.drawing.CustomShape" 101 class="com.sun.star.drawing.CustomShape"
102 id="g199"><g 102 id="g199"><g
103 id="id7"><rect 103 id="id7"><rect
104 class="BoundingBox" 104 class="BoundingBox"
105 x="5699" 105 x="5699"
106 y="3199" 106 y="3199"
107 width="2403" 107 width="2403"
108 height="1403" 108 height="1403"
109 id="rect202" 109 id="rect202"
110 style="fill:none;stroke:none" /><path 110 style="fill:none;stroke:none" /><path
111 d="m 6900,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 111 d="m 6900,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
112 id="path204" 112 id="path204"
113 inkscape:connector-curvature="0" 113 inkscape:connector-curvature="0"
114 style="fill:none;stroke:#3465a4" /></g></g><g 114 style="fill:none;stroke:#3465a4" /></g></g><g
115 class="com.sun.star.drawing.CustomShape" 115 class="com.sun.star.drawing.CustomShape"
116 id="g206"><g 116 id="g206"><g
117 id="id8"><rect 117 id="id8"><rect
118 class="BoundingBox" 118 class="BoundingBox"
119 x="8099" 119 x="8099"
120 y="3199" 120 y="3199"
121 width="2403" 121 width="2403"
122 height="1403" 122 height="1403"
123 id="rect209" 123 id="rect209"
124 style="fill:none;stroke:none" /><path 124 style="fill:none;stroke:none" /><path
125 d="m 9300,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 125 d="m 9300,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
126 id="path211" 126 id="path211"
127 inkscape:connector-curvature="0" 127 inkscape:connector-curvature="0"
128 style="fill:none;stroke:#3465a4" /><text 128 style="fill:none;stroke:#3465a4" /><text
129 class="TextShape" 129 class="TextShape"
130 id="text213"><tspan 130 id="text213"><tspan
131 class="TextParagraph" 131 class="TextParagraph"
132 font-size="635px" 132 font-size="635px"
133 font-weight="400" 133 font-weight="400"
134 id="tspan215" 134 id="tspan215"
135 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 135 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
136 class="TextPosition" 136 class="TextPosition"
137 x="9125" 137 x="9125"
138 y="4121" 138 y="4121"
139 id="tspan217"><tspan 139 id="tspan217"><tspan
140 id="tspan219" 140 id="tspan219"
141 style="fill:#000000;stroke:none">6</tspan></tspan></tspan></text> 141 style="fill:#000000;stroke:none">6</tspan></tspan></tspan></text>
142</g></g><g 142</g></g><g
143 class="com.sun.star.drawing.CustomShape" 143 class="com.sun.star.drawing.CustomShape"
144 id="g221"><g 144 id="g221"><g
145 id="id9"><rect 145 id="id9"><rect
146 class="BoundingBox" 146 class="BoundingBox"
147 x="5699" 147 x="5699"
148 y="3199" 148 y="3199"
149 width="2403" 149 width="2403"
150 height="1403" 150 height="1403"
151 id="rect224" 151 id="rect224"
152 style="fill:none;stroke:none" /><path 152 style="fill:none;stroke:none" /><path
153 d="m 6900,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 153 d="m 6900,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
154 id="path226" 154 id="path226"
155 inkscape:connector-curvature="0" 155 inkscape:connector-curvature="0"
156 style="fill:none;stroke:#3465a4" /><text 156 style="fill:none;stroke:#3465a4" /><text
157 class="TextShape" 157 class="TextShape"
158 id="text228"><tspan 158 id="text228"><tspan
159 class="TextParagraph" 159 class="TextParagraph"
160 font-size="635px" 160 font-size="635px"
161 font-weight="400" 161 font-weight="400"
162 id="tspan230" 162 id="tspan230"
163 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 163 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
164 class="TextPosition" 164 class="TextPosition"
165 x="6725" 165 x="6725"
166 y="4121" 166 y="4121"
167 id="tspan232"><tspan 167 id="tspan232"><tspan
168 id="tspan234" 168 id="tspan234"
169 style="fill:#000000;stroke:none">1</tspan></tspan></tspan></text> 169 style="fill:#000000;stroke:none">1</tspan></tspan></tspan></text>
170</g></g><g 170</g></g><g
171 class="com.sun.star.drawing.CustomShape" 171 class="com.sun.star.drawing.CustomShape"
172 id="g236"><g 172 id="g236"><g
173 id="id10"><rect 173 id="id10"><rect
174 class="BoundingBox" 174 class="BoundingBox"
175 x="10499" 175 x="10499"
176 y="3199" 176 y="3199"
177 width="2403" 177 width="2403"
178 height="1403" 178 height="1403"
179 id="rect239" 179 id="rect239"
180 style="fill:none;stroke:none" /><path 180 style="fill:none;stroke:none" /><path
181 d="m 11700,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 181 d="m 11700,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
182 id="path241" 182 id="path241"
183 inkscape:connector-curvature="0" 183 inkscape:connector-curvature="0"
184 style="fill:none;stroke:#3465a4" /><text 184 style="fill:none;stroke:#3465a4" /><text
185 class="TextShape" 185 class="TextShape"
186 id="text243"><tspan 186 id="text243"><tspan
187 class="TextParagraph" 187 class="TextParagraph"
188 font-size="635px" 188 font-size="635px"
189 font-weight="400" 189 font-weight="400"
190 id="tspan245" 190 id="tspan245"
191 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 191 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
192 class="TextPosition" 192 class="TextPosition"
193 x="11525" 193 x="11525"
194 y="4121" 194 y="4121"
195 id="tspan247"><tspan 195 id="tspan247"><tspan
196 id="tspan249" 196 id="tspan249"
197 style="fill:#000000;stroke:none">7</tspan></tspan></tspan></text> 197 style="fill:#000000;stroke:none">7</tspan></tspan></tspan></text>
198</g></g><g 198</g></g><g
199 class="com.sun.star.drawing.CustomShape" 199 class="com.sun.star.drawing.CustomShape"
200 id="g251"><g 200 id="g251"><g
201 id="id11"><rect 201 id="id11"><rect
202 class="BoundingBox" 202 class="BoundingBox"
203 x="3299" 203 x="3299"
204 y="4599" 204 y="4599"
205 width="2403" 205 width="2403"
206 height="1403" 206 height="1403"
207 id="rect254" 207 id="rect254"
208 style="fill:none;stroke:none" /><path 208 style="fill:none;stroke:none" /><path
209 d="m 4500,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 209 d="m 4500,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
210 id="path256" 210 id="path256"
211 inkscape:connector-curvature="0" 211 inkscape:connector-curvature="0"
212 style="fill:none;stroke:#3465a4" /><text 212 style="fill:none;stroke:#3465a4" /><text
213 class="TextShape" 213 class="TextShape"
214 id="text258"><tspan 214 id="text258"><tspan
215 class="TextParagraph" 215 class="TextParagraph"
216 font-size="635px" 216 font-size="635px"
217 font-weight="400" 217 font-weight="400"
218 id="tspan260" 218 id="tspan260"
219 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 219 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
220 class="TextPosition" 220 class="TextPosition"
221 x="4325" 221 x="4325"
222 y="5521" 222 y="5521"
223 id="tspan262"><tspan 223 id="tspan262"><tspan
224 id="tspan264" 224 id="tspan264"
225 style="fill:#000000;stroke:none">2</tspan></tspan></tspan></text> 225 style="fill:#000000;stroke:none">2</tspan></tspan></tspan></text>
226</g></g><g 226</g></g><g
227 class="com.sun.star.drawing.CustomShape" 227 class="com.sun.star.drawing.CustomShape"
228 id="g266"><g 228 id="g266"><g
229 id="id12"><rect 229 id="id12"><rect
230 class="BoundingBox" 230 class="BoundingBox"
231 x="5699" 231 x="5699"
232 y="4599" 232 y="4599"
233 width="2403" 233 width="2403"
234 height="1403" 234 height="1403"
235 id="rect269" 235 id="rect269"
236 style="fill:none;stroke:none" /><path 236 style="fill:none;stroke:none" /><path
237 d="m 6900,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 237 d="m 6900,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
238 id="path271" 238 id="path271"
239 inkscape:connector-curvature="0" 239 inkscape:connector-curvature="0"
240 style="fill:none;stroke:#3465a4" /></g></g><g 240 style="fill:none;stroke:#3465a4" /></g></g><g
241 class="com.sun.star.drawing.CustomShape" 241 class="com.sun.star.drawing.CustomShape"
242 id="g273"><g 242 id="g273"><g
243 id="id13"><rect 243 id="id13"><rect
244 class="BoundingBox" 244 class="BoundingBox"
245 x="8099" 245 x="8099"
246 y="4599" 246 y="4599"
247 width="2403" 247 width="2403"
248 height="1403" 248 height="1403"
249 id="rect276" 249 id="rect276"
250 style="fill:none;stroke:none" /><path 250 style="fill:none;stroke:none" /><path
251 d="m 9300,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 251 d="m 9300,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
252 id="path278" 252 id="path278"
253 inkscape:connector-curvature="0" 253 inkscape:connector-curvature="0"
254 style="fill:none;stroke:#3465a4" /><text 254 style="fill:none;stroke:#3465a4" /><text
255 class="TextShape" 255 class="TextShape"
256 id="text280"><tspan 256 id="text280"><tspan
257 class="TextParagraph" 257 class="TextParagraph"
258 font-size="635px" 258 font-size="635px"
259 font-weight="400" 259 font-weight="400"
260 id="tspan282" 260 id="tspan282"
261 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 261 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
262 class="TextPosition" 262 class="TextPosition"
263 x="9125" 263 x="9125"
264 y="5521" 264 y="5521"
265 id="tspan284"><tspan 265 id="tspan284"><tspan
266 id="tspan286" 266 id="tspan286"
267 style="fill:#000000;stroke:none">4</tspan></tspan></tspan></text> 267 style="fill:#000000;stroke:none">4</tspan></tspan></tspan></text>
268</g></g><g 268</g></g><g
269 class="com.sun.star.drawing.CustomShape" 269 class="com.sun.star.drawing.CustomShape"
270 id="g288"><g 270 id="g288"><g
271 id="id14"><rect 271 id="id14"><rect
272 class="BoundingBox" 272 class="BoundingBox"
273 x="5699" 273 x="5699"
274 y="4599" 274 y="4599"
275 width="2403" 275 width="2403"
276 height="1403" 276 height="1403"
277 id="rect291" 277 id="rect291"
278 style="fill:none;stroke:none" /><path 278 style="fill:none;stroke:none" /><path
279 d="m 6900,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 279 d="m 6900,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
280 id="path293" 280 id="path293"
281 inkscape:connector-curvature="0" 281 inkscape:connector-curvature="0"
282 style="fill:none;stroke:#3465a4" /><text 282 style="fill:none;stroke:#3465a4" /><text
283 class="TextShape" 283 class="TextShape"
284 id="text295"><tspan 284 id="text295"><tspan
285 class="TextParagraph" 285 class="TextParagraph"
286 font-size="635px" 286 font-size="635px"
287 font-weight="400" 287 font-weight="400"
288 id="tspan297" 288 id="tspan297"
289 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 289 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
290 class="TextPosition" 290 class="TextPosition"
291 x="6725" 291 x="6725"
292 y="5521" 292 y="5521"
293 id="tspan299"><tspan 293 id="tspan299"><tspan
294 id="tspan301" 294 id="tspan301"
295 style="fill:#000000;stroke:none">3</tspan></tspan></tspan></text> 295 style="fill:#000000;stroke:none">3</tspan></tspan></tspan></text>
296</g></g><g 296</g></g><g
297 class="com.sun.star.drawing.CustomShape" 297 class="com.sun.star.drawing.CustomShape"
298 id="g303"><g 298 id="g303"><g
299 id="id15"><rect 299 id="id15"><rect
300 class="BoundingBox" 300 class="BoundingBox"
301 x="10499" 301 x="10499"
302 y="4599" 302 y="4599"
303 width="2403" 303 width="2403"
304 height="1403" 304 height="1403"
305 id="rect306" 305 id="rect306"
306 style="fill:none;stroke:none" /><path 306 style="fill:none;stroke:none" /><path
307 d="m 11700,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 307 d="m 11700,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
308 id="path308" 308 id="path308"
309 inkscape:connector-curvature="0" 309 inkscape:connector-curvature="0"
310 style="fill:none;stroke:#3465a4" /><text 310 style="fill:none;stroke:#3465a4" /><text
311 class="TextShape" 311 class="TextShape"
312 id="text310"><tspan 312 id="text310"><tspan
313 class="TextParagraph" 313 class="TextParagraph"
314 font-size="635px" 314 font-size="635px"
315 font-weight="400" 315 font-weight="400"
316 id="tspan312" 316 id="tspan312"
317 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 317 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
318 class="TextPosition" 318 class="TextPosition"
319 x="11525" 319 x="11525"
320 y="5521" 320 y="5521"
321 id="tspan314"><tspan 321 id="tspan314"><tspan
322 id="tspan316" 322 id="tspan316"
323 style="fill:#000000;stroke:none">5</tspan></tspan></tspan></text> 323 style="fill:#000000;stroke:none">5</tspan></tspan></tspan></text>
324</g></g><g 324</g></g><g
325 class="com.sun.star.drawing.LineShape" 325 class="com.sun.star.drawing.LineShape"
326 id="g318"><g 326 id="g318"><g
327 id="id16"><rect 327 id="id16"><rect
328 class="BoundingBox" 328 class="BoundingBox"
329 x="5199" 329 x="5199"
330 y="3850" 330 y="3850"
331 width="1402" 331 width="1402"
332 height="301" 332 height="301"
333 id="rect321" 333 id="rect321"
334 style="fill:none;stroke:none" /><path 334 style="fill:none;stroke:none" /><path
335 d="m 5200,4000 970,0" 335 d="m 5200,4000 970,0"
336 id="path323" 336 id="path323"
337 inkscape:connector-curvature="0" 337 inkscape:connector-curvature="0"
338 style="fill:none;stroke:#ff3333" /><path 338 style="fill:none;stroke:#ff3333" /><path
339 d="m 6600,4000 -450,-150 0,300 450,-150 z" 339 d="m 6600,4000 -450,-150 0,300 450,-150 z"
340 id="path325" 340 id="path325"
341 inkscape:connector-curvature="0" 341 inkscape:connector-curvature="0"
342 style="fill:#ff3333;stroke:none" /></g></g><g 342 style="fill:#ff3333;stroke:none" /></g></g><g
343 class="com.sun.star.drawing.LineShape" 343 class="com.sun.star.drawing.LineShape"
344 id="g327"><g 344 id="g327"><g
345 id="id17"><rect 345 id="id17"><rect
346 class="BoundingBox" 346 class="BoundingBox"
347 x="5000" 347 x="5000"
348 y="4299" 348 y="4299"
349 width="1202" 349 width="1202"
350 height="802" 350 height="802"
351 id="rect330" 351 id="rect330"
352 style="fill:none;stroke:none" /><path 352 style="fill:none;stroke:none" /><path
353 d="m 6200,4300 -842,561" 353 d="m 6200,4300 -842,561"
354 id="path332" 354 id="path332"
355 inkscape:connector-curvature="0" 355 inkscape:connector-curvature="0"
356 style="fill:none;stroke:#ff3333" /><path 356 style="fill:none;stroke:#ff3333" /><path
357 d="m 5000,5100 458,-125 -167,-249 -291,374 z" 357 d="m 5000,5100 458,-125 -167,-249 -291,374 z"
358 id="path334" 358 id="path334"
359 inkscape:connector-curvature="0" 359 inkscape:connector-curvature="0"
360 style="fill:#ff3333;stroke:none" /></g></g><g 360 style="fill:#ff3333;stroke:none" /></g></g><g
361 class="com.sun.star.drawing.LineShape" 361 class="com.sun.star.drawing.LineShape"
362 id="g336"><g 362 id="g336"><g
363 id="id18"><rect 363 id="id18"><rect
364 class="BoundingBox" 364 class="BoundingBox"
365 x="5399" 365 x="5399"
366 y="5250" 366 y="5250"
367 width="1202" 367 width="1202"
368 height="301" 368 height="301"
369 id="rect339" 369 id="rect339"
370 style="fill:none;stroke:none" /><path 370 style="fill:none;stroke:none" /><path
371 d="m 5400,5400 770,0" 371 d="m 5400,5400 770,0"
372 id="path341" 372 id="path341"
373 inkscape:connector-curvature="0" 373 inkscape:connector-curvature="0"
374 style="fill:none;stroke:#ff3333" /><path 374 style="fill:none;stroke:#ff3333" /><path
375 d="m 6600,5400 -450,-150 0,300 450,-150 z" 375 d="m 6600,5400 -450,-150 0,300 450,-150 z"
376 id="path343" 376 id="path343"
377 inkscape:connector-curvature="0" 377 inkscape:connector-curvature="0"
378 style="fill:#ff3333;stroke:none" /></g></g><g 378 style="fill:#ff3333;stroke:none" /></g></g><g
379 class="com.sun.star.drawing.LineShape" 379 class="com.sun.star.drawing.LineShape"
380 id="g345"><g 380 id="g345"><g
381 id="id19"><rect 381 id="id19"><rect
382 class="BoundingBox" 382 class="BoundingBox"
383 x="7599" 383 x="7599"
384 y="5250" 384 y="5250"
385 width="1202" 385 width="1202"
386 height="301" 386 height="301"
387 id="rect348" 387 id="rect348"
388 style="fill:none;stroke:none" /><path 388 style="fill:none;stroke:none" /><path
389 d="m 7600,5400 770,0" 389 d="m 7600,5400 770,0"
390 id="path350" 390 id="path350"
391 inkscape:connector-curvature="0" 391 inkscape:connector-curvature="0"
392 style="fill:none;stroke:#ff3333" /><path 392 style="fill:none;stroke:#ff3333" /><path
393 d="m 8800,5400 -450,-150 0,300 450,-150 z" 393 d="m 8800,5400 -450,-150 0,300 450,-150 z"
394 id="path352" 394 id="path352"
395 inkscape:connector-curvature="0" 395 inkscape:connector-curvature="0"
396 style="fill:#ff3333;stroke:none" /></g></g><g 396 style="fill:#ff3333;stroke:none" /></g></g><g
397 class="com.sun.star.drawing.LineShape" 397 class="com.sun.star.drawing.LineShape"
398 id="g354"><g 398 id="g354"><g
399 id="id20"><rect 399 id="id20"><rect
400 class="BoundingBox" 400 class="BoundingBox"
401 x="9799" 401 x="9799"
402 y="5250" 402 y="5250"
403 width="1402" 403 width="1402"
404 height="301" 404 height="301"
405 id="rect357" 405 id="rect357"
406 style="fill:none;stroke:none" /><path 406 style="fill:none;stroke:none" /><path
407 d="m 9800,5400 970,0" 407 d="m 9800,5400 970,0"
408 id="path359" 408 id="path359"
409 inkscape:connector-curvature="0" 409 inkscape:connector-curvature="0"
410 style="fill:none;stroke:#ff3333" /><path 410 style="fill:none;stroke:#ff3333" /><path
411 d="m 11200,5400 -450,-150 0,300 450,-150 z" 411 d="m 11200,5400 -450,-150 0,300 450,-150 z"
412 id="path361" 412 id="path361"
413 inkscape:connector-curvature="0" 413 inkscape:connector-curvature="0"
414 style="fill:#ff3333;stroke:none" /></g></g><g 414 style="fill:#ff3333;stroke:none" /></g></g><g
415 class="com.sun.star.drawing.LineShape" 415 class="com.sun.star.drawing.LineShape"
416 id="g363"><g 416 id="g363"><g
417 id="id21"><rect 417 id="id21"><rect
418 class="BoundingBox" 418 class="BoundingBox"
419 x="9900" 419 x="9900"
420 y="4200" 420 y="4200"
421 width="1202" 421 width="1202"
422 height="802" 422 height="802"
423 id="rect366" 423 id="rect366"
424 style="fill:none;stroke:none" /><path 424 style="fill:none;stroke:none" /><path
425 d="m 11100,5000 -842,-561" 425 d="m 11100,5000 -842,-561"
426 id="path368" 426 id="path368"
427 inkscape:connector-curvature="0" 427 inkscape:connector-curvature="0"
428 style="fill:none;stroke:#ff3333" /><path 428 style="fill:none;stroke:#ff3333" /><path
429 d="m 9900,4200 291,374 167,-249 -458,-125 z" 429 d="m 9900,4200 291,374 167,-249 -458,-125 z"
430 id="path370" 430 id="path370"
431 inkscape:connector-curvature="0" 431 inkscape:connector-curvature="0"
432 style="fill:#ff3333;stroke:none" /></g></g><g 432 style="fill:#ff3333;stroke:none" /></g></g><g
433 class="com.sun.star.drawing.LineShape" 433 class="com.sun.star.drawing.LineShape"
434 id="g372"><g 434 id="g372"><g
435 id="id22"><rect 435 id="id22"><rect
436 class="BoundingBox" 436 class="BoundingBox"
437 x="9999" 437 x="9999"
438 y="3850" 438 y="3850"
439 width="1402" 439 width="1402"
440 height="301" 440 height="301"
441 id="rect375" 441 id="rect375"
442 style="fill:none;stroke:none" /><path 442 style="fill:none;stroke:none" /><path
443 d="m 10000,4000 970,0" 443 d="m 10000,4000 970,0"
444 id="path377" 444 id="path377"
445 inkscape:connector-curvature="0" 445 inkscape:connector-curvature="0"
446 style="fill:none;stroke:#ff3333" /><path 446 style="fill:none;stroke:#ff3333" /><path
447 d="m 11400,4000 -450,-150 0,300 450,-150 z" 447 d="m 11400,4000 -450,-150 0,300 450,-150 z"
448 id="path379" 448 id="path379"
449 inkscape:connector-curvature="0" 449 inkscape:connector-curvature="0"
450 style="fill:#ff3333;stroke:none" /></g></g></g></g></g></g></svg> 450 style="fill:#ff3333;stroke:none" /></g></g></g></g></g></g></svg>
diff --git a/Documentation/media/uapi/v4l/nv12mt_example.svg b/Documentation/media/uapi/v4l/nv12mt_example.svg
index d65d989ee73b..fc51fe8fda8b 100644
--- a/Documentation/media/uapi/v4l/nv12mt_example.svg
+++ b/Documentation/media/uapi/v4l/nv12mt_example.svg
@@ -18,8 +18,8 @@
18 sodipodi:docname="nv12mt_example.svg" 18 sodipodi:docname="nv12mt_example.svg"
19 style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"><metadata 19 style="fill-rule:evenodd;stroke-width:28.22200012;stroke-linejoin:round"><metadata
20 id="metadata953"><rdf:RDF><cc:Work 20 id="metadata953"><rdf:RDF><cc:Work
21 rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type 21 rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
22 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><sodipodi:namedview 22 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title></dc:title></cc:Work></rdf:RDF></metadata><sodipodi:namedview
23 pagecolor="#ffffff" 23 pagecolor="#ffffff"
24 bordercolor="#666666" 24 bordercolor="#666666"
25 borderopacity="1" 25 borderopacity="1"
@@ -58,1532 +58,1532 @@
58 id="g188" 58 id="g188"
59 transform="translate(-3285.889,-3185.889)"><g 59 transform="translate(-3285.889,-3185.889)"><g
60 id="id6"><rect 60 id="id6"><rect
61 class="BoundingBox" 61 class="BoundingBox"
62 x="3299" 62 x="3299"
63 y="3199" 63 y="3199"
64 width="2403" 64 width="2403"
65 height="1403" 65 height="1403"
66 id="rect191" 66 id="rect191"
67 style="fill:none;stroke:none" /><path 67 style="fill:none;stroke:none" /><path
68 d="m 4500,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 68 d="m 4500,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
69 id="path193" 69 id="path193"
70 inkscape:connector-curvature="0" 70 inkscape:connector-curvature="0"
71 style="fill:none;stroke:#3465a4" /><text 71 style="fill:none;stroke:#3465a4" /><text
72 class="TextShape" 72 class="TextShape"
73 id="text195"><tspan 73 id="text195"><tspan
74 class="TextParagraph" 74 class="TextParagraph"
75 font-size="635px" 75 font-size="635px"
76 font-weight="400" 76 font-weight="400"
77 id="tspan197" 77 id="tspan197"
78 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 78 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
79 class="TextPosition" 79 class="TextPosition"
80 x="4325" 80 x="4325"
81 y="4121" 81 y="4121"
82 id="tspan199"><tspan 82 id="tspan199"><tspan
83 id="tspan201" 83 id="tspan201"
84 style="fill:#000000;stroke:none">0</tspan></tspan></tspan></text> 84 style="fill:#000000;stroke:none">0</tspan></tspan></tspan></text>
85</g></g><g 85</g></g><g
86 class="com.sun.star.drawing.CustomShape" 86 class="com.sun.star.drawing.CustomShape"
87 id="g203" 87 id="g203"
88 transform="translate(-3285.889,-3185.889)"><g 88 transform="translate(-3285.889,-3185.889)"><g
89 id="id7"><rect 89 id="id7"><rect
90 class="BoundingBox" 90 class="BoundingBox"
91 x="5699" 91 x="5699"
92 y="3199" 92 y="3199"
93 width="2403" 93 width="2403"
94 height="1403" 94 height="1403"
95 id="rect206" 95 id="rect206"
96 style="fill:none;stroke:none" /><path 96 style="fill:none;stroke:none" /><path
97 d="m 6900,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 97 d="m 6900,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
98 id="path208" 98 id="path208"
99 inkscape:connector-curvature="0" 99 inkscape:connector-curvature="0"
100 style="fill:none;stroke:#3465a4" /></g></g><g 100 style="fill:none;stroke:#3465a4" /></g></g><g
101 class="com.sun.star.drawing.CustomShape" 101 class="com.sun.star.drawing.CustomShape"
102 id="g210" 102 id="g210"
103 transform="translate(-3285.889,-3185.889)"><g 103 transform="translate(-3285.889,-3185.889)"><g
104 id="id8"><rect 104 id="id8"><rect
105 class="BoundingBox" 105 class="BoundingBox"
106 x="8099" 106 x="8099"
107 y="3199" 107 y="3199"
108 width="2403" 108 width="2403"
109 height="1403" 109 height="1403"
110 id="rect213" 110 id="rect213"
111 style="fill:none;stroke:none" /><path 111 style="fill:none;stroke:none" /><path
112 d="m 9300,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 112 d="m 9300,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
113 id="path215" 113 id="path215"
114 inkscape:connector-curvature="0" 114 inkscape:connector-curvature="0"
115 style="fill:none;stroke:#3465a4" /><text 115 style="fill:none;stroke:#3465a4" /><text
116 class="TextShape" 116 class="TextShape"
117 id="text217"><tspan 117 id="text217"><tspan
118 class="TextParagraph" 118 class="TextParagraph"
119 font-size="635px" 119 font-size="635px"
120 font-weight="400" 120 font-weight="400"
121 id="tspan219" 121 id="tspan219"
122 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 122 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
123 class="TextPosition" 123 class="TextPosition"
124 x="9125" 124 x="9125"
125 y="4121" 125 y="4121"
126 id="tspan221"><tspan 126 id="tspan221"><tspan
127 id="tspan223" 127 id="tspan223"
128 style="fill:#000000;stroke:none">6</tspan></tspan></tspan></text> 128 style="fill:#000000;stroke:none">6</tspan></tspan></tspan></text>
129</g></g><g 129</g></g><g
130 class="com.sun.star.drawing.CustomShape" 130 class="com.sun.star.drawing.CustomShape"
131 id="g225" 131 id="g225"
132 transform="translate(-3285.889,-3185.889)"><g 132 transform="translate(-3285.889,-3185.889)"><g
133 id="id9"><rect 133 id="id9"><rect
134 class="BoundingBox" 134 class="BoundingBox"
135 x="5699" 135 x="5699"
136 y="3199" 136 y="3199"
137 width="2403" 137 width="2403"
138 height="1403" 138 height="1403"
139 id="rect228" 139 id="rect228"
140 style="fill:none;stroke:none" /><path 140 style="fill:none;stroke:none" /><path
141 d="m 6900,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 141 d="m 6900,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
142 id="path230" 142 id="path230"
143 inkscape:connector-curvature="0" 143 inkscape:connector-curvature="0"
144 style="fill:none;stroke:#3465a4" /><text 144 style="fill:none;stroke:#3465a4" /><text
145 class="TextShape" 145 class="TextShape"
146 id="text232"><tspan 146 id="text232"><tspan
147 class="TextParagraph" 147 class="TextParagraph"
148 font-size="635px" 148 font-size="635px"
149 font-weight="400" 149 font-weight="400"
150 id="tspan234" 150 id="tspan234"
151 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 151 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
152 class="TextPosition" 152 class="TextPosition"
153 x="6725" 153 x="6725"
154 y="4121" 154 y="4121"
155 id="tspan236"><tspan 155 id="tspan236"><tspan
156 id="tspan238" 156 id="tspan238"
157 style="fill:#000000;stroke:none">1</tspan></tspan></tspan></text> 157 style="fill:#000000;stroke:none">1</tspan></tspan></tspan></text>
158</g></g><g 158</g></g><g
159 class="com.sun.star.drawing.CustomShape" 159 class="com.sun.star.drawing.CustomShape"
160 id="g240" 160 id="g240"
161 transform="translate(-3285.889,-3185.889)"><g 161 transform="translate(-3285.889,-3185.889)"><g
162 id="id10"><rect 162 id="id10"><rect
163 class="BoundingBox" 163 class="BoundingBox"
164 x="10499" 164 x="10499"
165 y="3199" 165 y="3199"
166 width="2403" 166 width="2403"
167 height="1403" 167 height="1403"
168 id="rect243" 168 id="rect243"
169 style="fill:none;stroke:none" /><path 169 style="fill:none;stroke:none" /><path
170 d="m 11700,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 170 d="m 11700,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
171 id="path245" 171 id="path245"
172 inkscape:connector-curvature="0" 172 inkscape:connector-curvature="0"
173 style="fill:none;stroke:#3465a4" /><text 173 style="fill:none;stroke:#3465a4" /><text
174 class="TextShape" 174 class="TextShape"
175 id="text247"><tspan 175 id="text247"><tspan
176 class="TextParagraph" 176 class="TextParagraph"
177 font-size="635px" 177 font-size="635px"
178 font-weight="400" 178 font-weight="400"
179 id="tspan249" 179 id="tspan249"
180 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 180 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
181 class="TextPosition" 181 class="TextPosition"
182 x="11525" 182 x="11525"
183 y="4121" 183 y="4121"
184 id="tspan251"><tspan 184 id="tspan251"><tspan
185 id="tspan253" 185 id="tspan253"
186 style="fill:#000000;stroke:none">7</tspan></tspan></tspan></text> 186 style="fill:#000000;stroke:none">7</tspan></tspan></tspan></text>
187</g></g><g 187</g></g><g
188 class="com.sun.star.drawing.CustomShape" 188 class="com.sun.star.drawing.CustomShape"
189 id="g255" 189 id="g255"
190 transform="translate(-3285.889,-3185.889)"><g 190 transform="translate(-3285.889,-3185.889)"><g
191 id="id11"><rect 191 id="id11"><rect
192 class="BoundingBox" 192 class="BoundingBox"
193 x="12899" 193 x="12899"
194 y="3199" 194 y="3199"
195 width="2403" 195 width="2403"
196 height="1403" 196 height="1403"
197 id="rect258" 197 id="rect258"
198 style="fill:none;stroke:none" /><path 198 style="fill:none;stroke:none" /><path
199 d="m 14100,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 199 d="m 14100,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
200 id="path260" 200 id="path260"
201 inkscape:connector-curvature="0" 201 inkscape:connector-curvature="0"
202 style="fill:none;stroke:#3465a4" /></g></g><g 202 style="fill:none;stroke:#3465a4" /></g></g><g
203 class="com.sun.star.drawing.CustomShape" 203 class="com.sun.star.drawing.CustomShape"
204 id="g262" 204 id="g262"
205 transform="translate(-3285.889,-3185.889)"><g 205 transform="translate(-3285.889,-3185.889)"><g
206 id="id12"><rect 206 id="id12"><rect
207 class="BoundingBox" 207 class="BoundingBox"
208 x="15299" 208 x="15299"
209 y="3199" 209 y="3199"
210 width="2403" 210 width="2403"
211 height="1403" 211 height="1403"
212 id="rect265" 212 id="rect265"
213 style="fill:none;stroke:none" /><path 213 style="fill:none;stroke:none" /><path
214 d="m 16500,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 214 d="m 16500,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
215 id="path267" 215 id="path267"
216 inkscape:connector-curvature="0" 216 inkscape:connector-curvature="0"
217 style="fill:none;stroke:#3465a4" /><text 217 style="fill:none;stroke:#3465a4" /><text
218 class="TextShape" 218 class="TextShape"
219 id="text269"><tspan 219 id="text269"><tspan
220 class="TextParagraph" 220 class="TextParagraph"
221 font-size="635px" 221 font-size="635px"
222 font-weight="400" 222 font-weight="400"
223 id="tspan271" 223 id="tspan271"
224 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 224 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
225 class="TextPosition" 225 class="TextPosition"
226 x="16325" 226 x="16325"
227 y="4121" 227 y="4121"
228 id="tspan273"><tspan 228 id="tspan273"><tspan
229 id="tspan275" 229 id="tspan275"
230 style="fill:#000000;stroke:none">9</tspan></tspan></tspan></text> 230 style="fill:#000000;stroke:none">9</tspan></tspan></tspan></text>
231</g></g><g 231</g></g><g
232 class="com.sun.star.drawing.CustomShape" 232 class="com.sun.star.drawing.CustomShape"
233 id="g277" 233 id="g277"
234 transform="translate(-3285.889,-3185.889)"><g 234 transform="translate(-3285.889,-3185.889)"><g
235 id="id13"><rect 235 id="id13"><rect
236 class="BoundingBox" 236 class="BoundingBox"
237 x="12899" 237 x="12899"
238 y="3199" 238 y="3199"
239 width="2403" 239 width="2403"
240 height="1403" 240 height="1403"
241 id="rect280" 241 id="rect280"
242 style="fill:none;stroke:none" /><path 242 style="fill:none;stroke:none" /><path
243 d="m 14100,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 243 d="m 14100,4600 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
244 id="path282" 244 id="path282"
245 inkscape:connector-curvature="0" 245 inkscape:connector-curvature="0"
246 style="fill:none;stroke:#3465a4" /><text 246 style="fill:none;stroke:#3465a4" /><text
247 class="TextShape" 247 class="TextShape"
248 id="text284"><tspan 248 id="text284"><tspan
249 class="TextParagraph" 249 class="TextParagraph"
250 font-size="635px" 250 font-size="635px"
251 font-weight="400" 251 font-weight="400"
252 id="tspan286" 252 id="tspan286"
253 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 253 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
254 class="TextPosition" 254 class="TextPosition"
255 x="13925" 255 x="13925"
256 y="4121" 256 y="4121"
257 id="tspan288"><tspan 257 id="tspan288"><tspan
258 id="tspan290" 258 id="tspan290"
259 style="fill:#000000;stroke:none">8</tspan></tspan></tspan></text> 259 style="fill:#000000;stroke:none">8</tspan></tspan></tspan></text>
260</g></g><g 260</g></g><g
261 class="com.sun.star.drawing.CustomShape" 261 class="com.sun.star.drawing.CustomShape"
262 id="g292" 262 id="g292"
263 transform="translate(-3285.889,-3185.889)"><g 263 transform="translate(-3285.889,-3185.889)"><g
264 id="id14"><rect 264 id="id14"><rect
265 class="BoundingBox" 265 class="BoundingBox"
266 x="3299" 266 x="3299"
267 y="4599" 267 y="4599"
268 width="2403" 268 width="2403"
269 height="1403" 269 height="1403"
270 id="rect295" 270 id="rect295"
271 style="fill:none;stroke:none" /><path 271 style="fill:none;stroke:none" /><path
272 d="m 4500,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 272 d="m 4500,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
273 id="path297" 273 id="path297"
274 inkscape:connector-curvature="0" 274 inkscape:connector-curvature="0"
275 style="fill:none;stroke:#3465a4" /><text 275 style="fill:none;stroke:#3465a4" /><text
276 class="TextShape" 276 class="TextShape"
277 id="text299"><tspan 277 id="text299"><tspan
278 class="TextParagraph" 278 class="TextParagraph"
279 font-size="635px" 279 font-size="635px"
280 font-weight="400" 280 font-weight="400"
281 id="tspan301" 281 id="tspan301"
282 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 282 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
283 class="TextPosition" 283 class="TextPosition"
284 x="4325" 284 x="4325"
285 y="5521" 285 y="5521"
286 id="tspan303"><tspan 286 id="tspan303"><tspan
287 id="tspan305" 287 id="tspan305"
288 style="fill:#000000;stroke:none">2</tspan></tspan></tspan></text> 288 style="fill:#000000;stroke:none">2</tspan></tspan></tspan></text>
289</g></g><g 289</g></g><g
290 class="com.sun.star.drawing.CustomShape" 290 class="com.sun.star.drawing.CustomShape"
291 id="g307" 291 id="g307"
292 transform="translate(-3285.889,-3185.889)"><g 292 transform="translate(-3285.889,-3185.889)"><g
293 id="id15"><rect 293 id="id15"><rect
294 class="BoundingBox" 294 class="BoundingBox"
295 x="5699" 295 x="5699"
296 y="4599" 296 y="4599"
297 width="2403" 297 width="2403"
298 height="1403" 298 height="1403"
299 id="rect310" 299 id="rect310"
300 style="fill:none;stroke:none" /><path 300 style="fill:none;stroke:none" /><path
301 d="m 6900,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 301 d="m 6900,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
302 id="path312" 302 id="path312"
303 inkscape:connector-curvature="0" 303 inkscape:connector-curvature="0"
304 style="fill:none;stroke:#3465a4" /></g></g><g 304 style="fill:none;stroke:#3465a4" /></g></g><g
305 class="com.sun.star.drawing.CustomShape" 305 class="com.sun.star.drawing.CustomShape"
306 id="g314" 306 id="g314"
307 transform="translate(-3285.889,-3185.889)"><g 307 transform="translate(-3285.889,-3185.889)"><g
308 id="id16"><rect 308 id="id16"><rect
309 class="BoundingBox" 309 class="BoundingBox"
310 x="8099" 310 x="8099"
311 y="4599" 311 y="4599"
312 width="2403" 312 width="2403"
313 height="1403" 313 height="1403"
314 id="rect317" 314 id="rect317"
315 style="fill:none;stroke:none" /><path 315 style="fill:none;stroke:none" /><path
316 d="m 9300,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 316 d="m 9300,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
317 id="path319" 317 id="path319"
318 inkscape:connector-curvature="0" 318 inkscape:connector-curvature="0"
319 style="fill:none;stroke:#3465a4" /><text 319 style="fill:none;stroke:#3465a4" /><text
320 class="TextShape" 320 class="TextShape"
321 id="text321"><tspan 321 id="text321"><tspan
322 class="TextParagraph" 322 class="TextParagraph"
323 font-size="635px" 323 font-size="635px"
324 font-weight="400" 324 font-weight="400"
325 id="tspan323" 325 id="tspan323"
326 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 326 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
327 class="TextPosition" 327 class="TextPosition"
328 x="9125" 328 x="9125"
329 y="5521" 329 y="5521"
330 id="tspan325"><tspan 330 id="tspan325"><tspan
331 id="tspan327" 331 id="tspan327"
332 style="fill:#000000;stroke:none">4</tspan></tspan></tspan></text> 332 style="fill:#000000;stroke:none">4</tspan></tspan></tspan></text>
333</g></g><g 333</g></g><g
334 class="com.sun.star.drawing.CustomShape" 334 class="com.sun.star.drawing.CustomShape"
335 id="g329" 335 id="g329"
336 transform="translate(-3285.889,-3185.889)"><g 336 transform="translate(-3285.889,-3185.889)"><g
337 id="id17"><rect 337 id="id17"><rect
338 class="BoundingBox" 338 class="BoundingBox"
339 x="5699" 339 x="5699"
340 y="4599" 340 y="4599"
341 width="2403" 341 width="2403"
342 height="1403" 342 height="1403"
343 id="rect332" 343 id="rect332"
344 style="fill:none;stroke:none" /><path 344 style="fill:none;stroke:none" /><path
345 d="m 6900,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 345 d="m 6900,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
346 id="path334" 346 id="path334"
347 inkscape:connector-curvature="0" 347 inkscape:connector-curvature="0"
348 style="fill:none;stroke:#3465a4" /><text 348 style="fill:none;stroke:#3465a4" /><text
349 class="TextShape" 349 class="TextShape"
350 id="text336"><tspan 350 id="text336"><tspan
351 class="TextParagraph" 351 class="TextParagraph"
352 font-size="635px" 352 font-size="635px"
353 font-weight="400" 353 font-weight="400"
354 id="tspan338" 354 id="tspan338"
355 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 355 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
356 class="TextPosition" 356 class="TextPosition"
357 x="6725" 357 x="6725"
358 y="5521" 358 y="5521"
359 id="tspan340"><tspan 359 id="tspan340"><tspan
360 id="tspan342" 360 id="tspan342"
361 style="fill:#000000;stroke:none">3</tspan></tspan></tspan></text> 361 style="fill:#000000;stroke:none">3</tspan></tspan></tspan></text>
362</g></g><g 362</g></g><g
363 class="com.sun.star.drawing.CustomShape" 363 class="com.sun.star.drawing.CustomShape"
364 id="g344" 364 id="g344"
365 transform="translate(-3285.889,-3185.889)"><g 365 transform="translate(-3285.889,-3185.889)"><g
366 id="id18"><rect 366 id="id18"><rect
367 class="BoundingBox" 367 class="BoundingBox"
368 x="10499" 368 x="10499"
369 y="4599" 369 y="4599"
370 width="2403" 370 width="2403"
371 height="1403" 371 height="1403"
372 id="rect347" 372 id="rect347"
373 style="fill:none;stroke:none" /><path 373 style="fill:none;stroke:none" /><path
374 d="m 11700,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 374 d="m 11700,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
375 id="path349" 375 id="path349"
376 inkscape:connector-curvature="0" 376 inkscape:connector-curvature="0"
377 style="fill:none;stroke:#3465a4" /><text 377 style="fill:none;stroke:#3465a4" /><text
378 class="TextShape" 378 class="TextShape"
379 id="text351"><tspan 379 id="text351"><tspan
380 class="TextParagraph" 380 class="TextParagraph"
381 font-size="635px" 381 font-size="635px"
382 font-weight="400" 382 font-weight="400"
383 id="tspan353" 383 id="tspan353"
384 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 384 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
385 class="TextPosition" 385 class="TextPosition"
386 x="11525" 386 x="11525"
387 y="5521" 387 y="5521"
388 id="tspan355"><tspan 388 id="tspan355"><tspan
389 id="tspan357" 389 id="tspan357"
390 style="fill:#000000;stroke:none">5</tspan></tspan></tspan></text> 390 style="fill:#000000;stroke:none">5</tspan></tspan></tspan></text>
391</g></g><g 391</g></g><g
392 class="com.sun.star.drawing.CustomShape" 392 class="com.sun.star.drawing.CustomShape"
393 id="g359" 393 id="g359"
394 transform="translate(-3285.889,-3185.889)"><g 394 transform="translate(-3285.889,-3185.889)"><g
395 id="id19"><rect 395 id="id19"><rect
396 class="BoundingBox" 396 class="BoundingBox"
397 x="12899" 397 x="12899"
398 y="4599" 398 y="4599"
399 width="2403" 399 width="2403"
400 height="1403" 400 height="1403"
401 id="rect362" 401 id="rect362"
402 style="fill:none;stroke:none" /><path 402 style="fill:none;stroke:none" /><path
403 d="m 14100,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 403 d="m 14100,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
404 id="path364" 404 id="path364"
405 inkscape:connector-curvature="0" 405 inkscape:connector-curvature="0"
406 style="fill:none;stroke:#3465a4" /></g></g><g 406 style="fill:none;stroke:#3465a4" /></g></g><g
407 class="com.sun.star.drawing.CustomShape" 407 class="com.sun.star.drawing.CustomShape"
408 id="g366" 408 id="g366"
409 transform="translate(-3285.889,-3185.889)"><g 409 transform="translate(-3285.889,-3185.889)"><g
410 id="id20"><rect 410 id="id20"><rect
411 class="BoundingBox" 411 class="BoundingBox"
412 x="15299" 412 x="15299"
413 y="4599" 413 y="4599"
414 width="2403" 414 width="2403"
415 height="1403" 415 height="1403"
416 id="rect369" 416 id="rect369"
417 style="fill:none;stroke:none" /><path 417 style="fill:none;stroke:none" /><path
418 d="m 16500,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 418 d="m 16500,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
419 id="path371" 419 id="path371"
420 inkscape:connector-curvature="0" 420 inkscape:connector-curvature="0"
421 style="fill:none;stroke:#3465a4" /><text 421 style="fill:none;stroke:#3465a4" /><text
422 class="TextShape" 422 class="TextShape"
423 id="text373"><tspan 423 id="text373"><tspan
424 class="TextParagraph" 424 class="TextParagraph"
425 font-size="635px" 425 font-size="635px"
426 font-weight="400" 426 font-weight="400"
427 id="tspan375" 427 id="tspan375"
428 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 428 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
429 class="TextPosition" 429 class="TextPosition"
430 x="16149" 430 x="16149"
431 y="5521" 431 y="5521"
432 id="tspan377"><tspan 432 id="tspan377"><tspan
433 id="tspan379" 433 id="tspan379"
434 style="fill:#000000;stroke:none">11</tspan></tspan></tspan></text> 434 style="fill:#000000;stroke:none">11</tspan></tspan></tspan></text>
435</g></g><g 435</g></g><g
436 class="com.sun.star.drawing.CustomShape" 436 class="com.sun.star.drawing.CustomShape"
437 id="g381" 437 id="g381"
438 transform="translate(-3285.889,-3185.889)"><g 438 transform="translate(-3285.889,-3185.889)"><g
439 id="id21"><rect 439 id="id21"><rect
440 class="BoundingBox" 440 class="BoundingBox"
441 x="12899" 441 x="12899"
442 y="4599" 442 y="4599"
443 width="2403" 443 width="2403"
444 height="1403" 444 height="1403"
445 id="rect384" 445 id="rect384"
446 style="fill:none;stroke:none" /><path 446 style="fill:none;stroke:none" /><path
447 d="m 14100,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 447 d="m 14100,6000 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
448 id="path386" 448 id="path386"
449 inkscape:connector-curvature="0" 449 inkscape:connector-curvature="0"
450 style="fill:none;stroke:#3465a4" /><text 450 style="fill:none;stroke:#3465a4" /><text
451 class="TextShape" 451 class="TextShape"
452 id="text388"><tspan 452 id="text388"><tspan
453 class="TextParagraph" 453 class="TextParagraph"
454 font-size="635px" 454 font-size="635px"
455 font-weight="400" 455 font-weight="400"
456 id="tspan390" 456 id="tspan390"
457 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 457 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
458 class="TextPosition" 458 class="TextPosition"
459 x="13749" 459 x="13749"
460 y="5521" 460 y="5521"
461 id="tspan392"><tspan 461 id="tspan392"><tspan
462 id="tspan394" 462 id="tspan394"
463 style="fill:#000000;stroke:none">10</tspan></tspan></tspan></text> 463 style="fill:#000000;stroke:none">10</tspan></tspan></tspan></text>
464</g></g><g 464</g></g><g
465 class="com.sun.star.drawing.CustomShape" 465 class="com.sun.star.drawing.CustomShape"
466 id="g396" 466 id="g396"
467 transform="translate(-3285.889,-3185.889)"><g 467 transform="translate(-3285.889,-3185.889)"><g
468 id="id22"><rect 468 id="id22"><rect
469 class="BoundingBox" 469 class="BoundingBox"
470 x="3299" 470 x="3299"
471 y="5999" 471 y="5999"
472 width="2403" 472 width="2403"
473 height="1403" 473 height="1403"
474 id="rect399" 474 id="rect399"
475 style="fill:none;stroke:none" /><path 475 style="fill:none;stroke:none" /><path
476 d="m 4500,7400 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 476 d="m 4500,7400 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
477 id="path401" 477 id="path401"
478 inkscape:connector-curvature="0" 478 inkscape:connector-curvature="0"
479 style="fill:none;stroke:#3465a4" /><text 479 style="fill:none;stroke:#3465a4" /><text
480 class="TextShape" 480 class="TextShape"
481 id="text403"><tspan 481 id="text403"><tspan
482 class="TextParagraph" 482 class="TextParagraph"
483 font-size="635px" 483 font-size="635px"
484 font-weight="400" 484 font-weight="400"
485 id="tspan405" 485 id="tspan405"
486 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 486 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
487 class="TextPosition" 487 class="TextPosition"
488 x="4149" 488 x="4149"
489 y="6921" 489 y="6921"
490 id="tspan407"><tspan 490 id="tspan407"><tspan
491 id="tspan409" 491 id="tspan409"
492 style="fill:#000000;stroke:none">12</tspan></tspan></tspan></text> 492 style="fill:#000000;stroke:none">12</tspan></tspan></tspan></text>
493</g></g><g 493</g></g><g
494 class="com.sun.star.drawing.CustomShape" 494 class="com.sun.star.drawing.CustomShape"
495 id="g411" 495 id="g411"
496 transform="translate(-3285.889,-3185.889)"><g 496 transform="translate(-3285.889,-3185.889)"><g
497 id="id23"><rect 497 id="id23"><rect
498 class="BoundingBox" 498 class="BoundingBox"
499 x="5699" 499 x="5699"
500 y="5999" 500 y="5999"
501 width="2403" 501 width="2403"
502 height="1403" 502 height="1403"
503 id="rect414" 503 id="rect414"
504 style="fill:none;stroke:none" /><path 504 style="fill:none;stroke:none" /><path
505 d="m 6900,7400 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 505 d="m 6900,7400 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
506 id="path416" 506 id="path416"
507 inkscape:connector-curvature="0" 507 inkscape:connector-curvature="0"
508 style="fill:none;stroke:#3465a4" /></g></g><g 508 style="fill:none;stroke:#3465a4" /></g></g><g
509 class="com.sun.star.drawing.CustomShape" 509 class="com.sun.star.drawing.CustomShape"
510 id="g418" 510 id="g418"
511 transform="translate(-3285.889,-3185.889)"><g 511 transform="translate(-3285.889,-3185.889)"><g
512 id="id24"><rect 512 id="id24"><rect
513 class="BoundingBox" 513 class="BoundingBox"
514 x="8099" 514 x="8099"
515 y="5999" 515 y="5999"
516 width="2403" 516 width="2403"
517 height="1403" 517 height="1403"
518 id="rect421" 518 id="rect421"
519 style="fill:none;stroke:none" /><path 519 style="fill:none;stroke:none" /><path
520 d="m 9300,7400 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 520 d="m 9300,7400 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
521 id="path423" 521 id="path423"
522 inkscape:connector-curvature="0" 522 inkscape:connector-curvature="0"
523 style="fill:none;stroke:#3465a4" /><text 523 style="fill:none;stroke:#3465a4" /><text
524 class="TextShape" 524 class="TextShape"
525 id="text425"><tspan 525 id="text425"><tspan
526 class="TextParagraph" 526 class="TextParagraph"
527 font-size="635px" 527 font-size="635px"
528 font-weight="400" 528 font-weight="400"
529 id="tspan427" 529 id="tspan427"
530 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 530 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
531 class="TextPosition" 531 class="TextPosition"
532 x="8949" 532 x="8949"
533 y="6921" 533 y="6921"
534 id="tspan429"><tspan 534 id="tspan429"><tspan
535 id="tspan431" 535 id="tspan431"
536 style="fill:#000000;stroke:none">18</tspan></tspan></tspan></text> 536 style="fill:#000000;stroke:none">18</tspan></tspan></tspan></text>
537</g></g><g 537</g></g><g
538 class="com.sun.star.drawing.CustomShape" 538 class="com.sun.star.drawing.CustomShape"
539 id="g433" 539 id="g433"
540 transform="translate(-3285.889,-3185.889)"><g 540 transform="translate(-3285.889,-3185.889)"><g
541 id="id25"><rect 541 id="id25"><rect
542 class="BoundingBox" 542 class="BoundingBox"
543 x="5699" 543 x="5699"
544 y="5999" 544 y="5999"
545 width="2403" 545 width="2403"
546 height="1403" 546 height="1403"
547 id="rect436" 547 id="rect436"
548 style="fill:none;stroke:none" /><path 548 style="fill:none;stroke:none" /><path
549 d="m 6900,7400 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 549 d="m 6900,7400 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
550 id="path438" 550 id="path438"
551 inkscape:connector-curvature="0" 551 inkscape:connector-curvature="0"
552 style="fill:none;stroke:#3465a4" /><text 552 style="fill:none;stroke:#3465a4" /><text
553 class="TextShape" 553 class="TextShape"
554 id="text440"><tspan 554 id="text440"><tspan
555 class="TextParagraph" 555 class="TextParagraph"
556 font-size="635px" 556 font-size="635px"
557 font-weight="400" 557 font-weight="400"
558 id="tspan442" 558 id="tspan442"
559 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 559 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
560 class="TextPosition" 560 class="TextPosition"
561 x="6549" 561 x="6549"
562 y="6921" 562 y="6921"
563 id="tspan444"><tspan 563 id="tspan444"><tspan
564 id="tspan446" 564 id="tspan446"
565 style="fill:#000000;stroke:none">13</tspan></tspan></tspan></text> 565 style="fill:#000000;stroke:none">13</tspan></tspan></tspan></text>
566</g></g><g 566</g></g><g
567 class="com.sun.star.drawing.CustomShape" 567 class="com.sun.star.drawing.CustomShape"
568 id="g448" 568 id="g448"
569 transform="translate(-3285.889,-3185.889)"><g 569 transform="translate(-3285.889,-3185.889)"><g
570 id="id26"><rect 570 id="id26"><rect
571 class="BoundingBox" 571 class="BoundingBox"
572 x="10499" 572 x="10499"
573 y="5999" 573 y="5999"
574 width="2403" 574 width="2403"
575 height="1403" 575 height="1403"
576 id="rect451" 576 id="rect451"
577 style="fill:none;stroke:none" /><path 577 style="fill:none;stroke:none" /><path
578 d="m 11700,7400 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 578 d="m 11700,7400 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
579 id="path453" 579 id="path453"
580 inkscape:connector-curvature="0" 580 inkscape:connector-curvature="0"
581 style="fill:none;stroke:#3465a4" /><text 581 style="fill:none;stroke:#3465a4" /><text
582 class="TextShape" 582 class="TextShape"
583 id="text455"><tspan 583 id="text455"><tspan
584 class="TextParagraph" 584 class="TextParagraph"
585 font-size="635px" 585 font-size="635px"
586 font-weight="400" 586 font-weight="400"
587 id="tspan457" 587 id="tspan457"
588 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 588 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
589 class="TextPosition" 589 class="TextPosition"
590 x="11349" 590 x="11349"
591 y="6921" 591 y="6921"
592 id="tspan459"><tspan 592 id="tspan459"><tspan
593 id="tspan461" 593 id="tspan461"
594 style="fill:#000000;stroke:none">19</tspan></tspan></tspan></text> 594 style="fill:#000000;stroke:none">19</tspan></tspan></tspan></text>
595</g></g><g 595</g></g><g
596 class="com.sun.star.drawing.CustomShape" 596 class="com.sun.star.drawing.CustomShape"
597 id="g463" 597 id="g463"
598 transform="translate(-3285.889,-3185.889)"><g 598 transform="translate(-3285.889,-3185.889)"><g
599 id="id27"><rect 599 id="id27"><rect
600 class="BoundingBox" 600 class="BoundingBox"
601 x="12899" 601 x="12899"
602 y="5999" 602 y="5999"
603 width="2403" 603 width="2403"
604 height="1403" 604 height="1403"
605 id="rect466" 605 id="rect466"
606 style="fill:none;stroke:none" /><path 606 style="fill:none;stroke:none" /><path
607 d="m 14100,7400 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 607 d="m 14100,7400 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
608 id="path468" 608 id="path468"
609 inkscape:connector-curvature="0" 609 inkscape:connector-curvature="0"
610 style="fill:none;stroke:#3465a4" /></g></g><g 610 style="fill:none;stroke:#3465a4" /></g></g><g
611 class="com.sun.star.drawing.CustomShape" 611 class="com.sun.star.drawing.CustomShape"
612 id="g470" 612 id="g470"
613 transform="translate(-3285.889,-3185.889)"><g 613 transform="translate(-3285.889,-3185.889)"><g
614 id="id28"><rect 614 id="id28"><rect
615 class="BoundingBox" 615 class="BoundingBox"
616 x="15299" 616 x="15299"
617 y="5999" 617 y="5999"
618 width="2403" 618 width="2403"
619 height="1403" 619 height="1403"
620 id="rect473" 620 id="rect473"
621 style="fill:none;stroke:none" /><path 621 style="fill:none;stroke:none" /><path
622 d="m 16500,7400 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 622 d="m 16500,7400 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
623 id="path475" 623 id="path475"
624 inkscape:connector-curvature="0" 624 inkscape:connector-curvature="0"
625 style="fill:none;stroke:#3465a4" /><text 625 style="fill:none;stroke:#3465a4" /><text
626 class="TextShape" 626 class="TextShape"
627 id="text477"><tspan 627 id="text477"><tspan
628 class="TextParagraph" 628 class="TextParagraph"
629 font-size="635px" 629 font-size="635px"
630 font-weight="400" 630 font-weight="400"
631 id="tspan479" 631 id="tspan479"
632 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 632 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
633 class="TextPosition" 633 class="TextPosition"
634 x="16149" 634 x="16149"
635 y="6921" 635 y="6921"
636 id="tspan481"><tspan 636 id="tspan481"><tspan
637 id="tspan483" 637 id="tspan483"
638 style="fill:#000000;stroke:none">21</tspan></tspan></tspan></text> 638 style="fill:#000000;stroke:none">21</tspan></tspan></tspan></text>
639</g></g><g 639</g></g><g
640 class="com.sun.star.drawing.CustomShape" 640 class="com.sun.star.drawing.CustomShape"
641 id="g485" 641 id="g485"
642 transform="translate(-3285.889,-3185.889)"><g 642 transform="translate(-3285.889,-3185.889)"><g
643 id="id29"><rect 643 id="id29"><rect
644 class="BoundingBox" 644 class="BoundingBox"
645 x="12899" 645 x="12899"
646 y="5999" 646 y="5999"
647 width="2403" 647 width="2403"
648 height="1403" 648 height="1403"
649 id="rect488" 649 id="rect488"
650 style="fill:none;stroke:none" /><path 650 style="fill:none;stroke:none" /><path
651 d="m 14100,7400 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 651 d="m 14100,7400 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
652 id="path490" 652 id="path490"
653 inkscape:connector-curvature="0" 653 inkscape:connector-curvature="0"
654 style="fill:none;stroke:#3465a4" /><text 654 style="fill:none;stroke:#3465a4" /><text
655 class="TextShape" 655 class="TextShape"
656 id="text492"><tspan 656 id="text492"><tspan
657 class="TextParagraph" 657 class="TextParagraph"
658 font-size="635px" 658 font-size="635px"
659 font-weight="400" 659 font-weight="400"
660 id="tspan494" 660 id="tspan494"
661 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 661 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
662 class="TextPosition" 662 class="TextPosition"
663 x="13749" 663 x="13749"
664 y="6921" 664 y="6921"
665 id="tspan496"><tspan 665 id="tspan496"><tspan
666 id="tspan498" 666 id="tspan498"
667 style="fill:#000000;stroke:none">20</tspan></tspan></tspan></text> 667 style="fill:#000000;stroke:none">20</tspan></tspan></tspan></text>
668</g></g><g 668</g></g><g
669 class="com.sun.star.drawing.CustomShape" 669 class="com.sun.star.drawing.CustomShape"
670 id="g500" 670 id="g500"
671 transform="translate(-3285.889,-3185.889)"><g 671 transform="translate(-3285.889,-3185.889)"><g
672 id="id30"><rect 672 id="id30"><rect
673 class="BoundingBox" 673 class="BoundingBox"
674 x="3299" 674 x="3299"
675 y="7399" 675 y="7399"
676 width="2403" 676 width="2403"
677 height="1403" 677 height="1403"
678 id="rect503" 678 id="rect503"
679 style="fill:none;stroke:none" /><path 679 style="fill:none;stroke:none" /><path
680 d="m 4500,8800 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 680 d="m 4500,8800 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
681 id="path505" 681 id="path505"
682 inkscape:connector-curvature="0" 682 inkscape:connector-curvature="0"
683 style="fill:none;stroke:#3465a4" /><text 683 style="fill:none;stroke:#3465a4" /><text
684 class="TextShape" 684 class="TextShape"
685 id="text507"><tspan 685 id="text507"><tspan
686 class="TextParagraph" 686 class="TextParagraph"
687 font-size="635px" 687 font-size="635px"
688 font-weight="400" 688 font-weight="400"
689 id="tspan509" 689 id="tspan509"
690 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 690 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
691 class="TextPosition" 691 class="TextPosition"
692 x="4149" 692 x="4149"
693 y="8321" 693 y="8321"
694 id="tspan511"><tspan 694 id="tspan511"><tspan
695 id="tspan513" 695 id="tspan513"
696 style="fill:#000000;stroke:none">14</tspan></tspan></tspan></text> 696 style="fill:#000000;stroke:none">14</tspan></tspan></tspan></text>
697</g></g><g 697</g></g><g
698 class="com.sun.star.drawing.CustomShape" 698 class="com.sun.star.drawing.CustomShape"
699 id="g515" 699 id="g515"
700 transform="translate(-3285.889,-3185.889)"><g 700 transform="translate(-3285.889,-3185.889)"><g
701 id="id31"><rect 701 id="id31"><rect
702 class="BoundingBox" 702 class="BoundingBox"
703 x="5699" 703 x="5699"
704 y="7399" 704 y="7399"
705 width="2403" 705 width="2403"
706 height="1403" 706 height="1403"
707 id="rect518" 707 id="rect518"
708 style="fill:none;stroke:none" /><path 708 style="fill:none;stroke:none" /><path
709 d="m 6900,8800 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 709 d="m 6900,8800 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
710 id="path520" 710 id="path520"
711 inkscape:connector-curvature="0" 711 inkscape:connector-curvature="0"
712 style="fill:none;stroke:#3465a4" /></g></g><g 712 style="fill:none;stroke:#3465a4" /></g></g><g
713 class="com.sun.star.drawing.CustomShape" 713 class="com.sun.star.drawing.CustomShape"
714 id="g522" 714 id="g522"
715 transform="translate(-3285.889,-3185.889)"><g 715 transform="translate(-3285.889,-3185.889)"><g
716 id="id32"><rect 716 id="id32"><rect
717 class="BoundingBox" 717 class="BoundingBox"
718 x="8099" 718 x="8099"
719 y="7399" 719 y="7399"
720 width="2403" 720 width="2403"
721 height="1403" 721 height="1403"
722 id="rect525" 722 id="rect525"
723 style="fill:none;stroke:none" /><path 723 style="fill:none;stroke:none" /><path
724 d="m 9300,8800 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 724 d="m 9300,8800 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
725 id="path527" 725 id="path527"
726 inkscape:connector-curvature="0" 726 inkscape:connector-curvature="0"
727 style="fill:none;stroke:#3465a4" /><text 727 style="fill:none;stroke:#3465a4" /><text
728 class="TextShape" 728 class="TextShape"
729 id="text529"><tspan 729 id="text529"><tspan
730 class="TextParagraph" 730 class="TextParagraph"
731 font-size="635px" 731 font-size="635px"
732 font-weight="400" 732 font-weight="400"
733 id="tspan531" 733 id="tspan531"
734 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 734 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
735 class="TextPosition" 735 class="TextPosition"
736 x="8949" 736 x="8949"
737 y="8321" 737 y="8321"
738 id="tspan533"><tspan 738 id="tspan533"><tspan
739 id="tspan535" 739 id="tspan535"
740 style="fill:#000000;stroke:none">16</tspan></tspan></tspan></text> 740 style="fill:#000000;stroke:none">16</tspan></tspan></tspan></text>
741</g></g><g 741</g></g><g
742 class="com.sun.star.drawing.CustomShape" 742 class="com.sun.star.drawing.CustomShape"
743 id="g537" 743 id="g537"
744 transform="translate(-3285.889,-3185.889)"><g 744 transform="translate(-3285.889,-3185.889)"><g
745 id="id33"><rect 745 id="id33"><rect
746 class="BoundingBox" 746 class="BoundingBox"
747 x="5699" 747 x="5699"
748 y="7399" 748 y="7399"
749 width="2403" 749 width="2403"
750 height="1403" 750 height="1403"
751 id="rect540" 751 id="rect540"
752 style="fill:none;stroke:none" /><path 752 style="fill:none;stroke:none" /><path
753 d="m 6900,8800 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 753 d="m 6900,8800 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
754 id="path542" 754 id="path542"
755 inkscape:connector-curvature="0" 755 inkscape:connector-curvature="0"
756 style="fill:none;stroke:#3465a4" /><text 756 style="fill:none;stroke:#3465a4" /><text
757 class="TextShape" 757 class="TextShape"
758 id="text544"><tspan 758 id="text544"><tspan
759 class="TextParagraph" 759 class="TextParagraph"
760 font-size="635px" 760 font-size="635px"
761 font-weight="400" 761 font-weight="400"
762 id="tspan546" 762 id="tspan546"
763 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 763 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
764 class="TextPosition" 764 class="TextPosition"
765 x="6549" 765 x="6549"
766 y="8321" 766 y="8321"
767 id="tspan548"><tspan 767 id="tspan548"><tspan
768 id="tspan550" 768 id="tspan550"
769 style="fill:#000000;stroke:none">15</tspan></tspan></tspan></text> 769 style="fill:#000000;stroke:none">15</tspan></tspan></tspan></text>
770</g></g><g 770</g></g><g
771 class="com.sun.star.drawing.CustomShape" 771 class="com.sun.star.drawing.CustomShape"
772 id="g552" 772 id="g552"
773 transform="translate(-3285.889,-3185.889)"><g 773 transform="translate(-3285.889,-3185.889)"><g
774 id="id34"><rect 774 id="id34"><rect
775 class="BoundingBox" 775 class="BoundingBox"
776 x="10499" 776 x="10499"
777 y="7399" 777 y="7399"
778 width="2403" 778 width="2403"
779 height="1403" 779 height="1403"
780 id="rect555" 780 id="rect555"
781 style="fill:none;stroke:none" /><path 781 style="fill:none;stroke:none" /><path
782 d="m 11700,8800 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 782 d="m 11700,8800 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
783 id="path557" 783 id="path557"
784 inkscape:connector-curvature="0" 784 inkscape:connector-curvature="0"
785 style="fill:none;stroke:#3465a4" /><text 785 style="fill:none;stroke:#3465a4" /><text
786 class="TextShape" 786 class="TextShape"
787 id="text559"><tspan 787 id="text559"><tspan
788 class="TextParagraph" 788 class="TextParagraph"
789 font-size="635px" 789 font-size="635px"
790 font-weight="400" 790 font-weight="400"
791 id="tspan561" 791 id="tspan561"
792 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 792 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
793 class="TextPosition" 793 class="TextPosition"
794 x="11349" 794 x="11349"
795 y="8321" 795 y="8321"
796 id="tspan563"><tspan 796 id="tspan563"><tspan
797 id="tspan565" 797 id="tspan565"
798 style="fill:#000000;stroke:none">17</tspan></tspan></tspan></text> 798 style="fill:#000000;stroke:none">17</tspan></tspan></tspan></text>
799</g></g><g 799</g></g><g
800 class="com.sun.star.drawing.CustomShape" 800 class="com.sun.star.drawing.CustomShape"
801 id="g567" 801 id="g567"
802 transform="translate(-3285.889,-3185.889)"><g 802 transform="translate(-3285.889,-3185.889)"><g
803 id="id35"><rect 803 id="id35"><rect
804 class="BoundingBox" 804 class="BoundingBox"
805 x="12899" 805 x="12899"
806 y="7399" 806 y="7399"
807 width="2403" 807 width="2403"
808 height="1403" 808 height="1403"
809 id="rect570" 809 id="rect570"
810 style="fill:none;stroke:none" /><path 810 style="fill:none;stroke:none" /><path
811 d="m 14100,8800 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 811 d="m 14100,8800 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
812 id="path572" 812 id="path572"
813 inkscape:connector-curvature="0" 813 inkscape:connector-curvature="0"
814 style="fill:none;stroke:#3465a4" /></g></g><g 814 style="fill:none;stroke:#3465a4" /></g></g><g
815 class="com.sun.star.drawing.CustomShape" 815 class="com.sun.star.drawing.CustomShape"
816 id="g574" 816 id="g574"
817 transform="translate(-3285.889,-3185.889)"><g 817 transform="translate(-3285.889,-3185.889)"><g
818 id="id36"><rect 818 id="id36"><rect
819 class="BoundingBox" 819 class="BoundingBox"
820 x="15299" 820 x="15299"
821 y="7399" 821 y="7399"
822 width="2403" 822 width="2403"
823 height="1403" 823 height="1403"
824 id="rect577" 824 id="rect577"
825 style="fill:none;stroke:none" /><path 825 style="fill:none;stroke:none" /><path
826 d="m 16500,8800 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 826 d="m 16500,8800 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
827 id="path579" 827 id="path579"
828 inkscape:connector-curvature="0" 828 inkscape:connector-curvature="0"
829 style="fill:none;stroke:#3465a4" /><text 829 style="fill:none;stroke:#3465a4" /><text
830 class="TextShape" 830 class="TextShape"
831 id="text581"><tspan 831 id="text581"><tspan
832 class="TextParagraph" 832 class="TextParagraph"
833 font-size="635px" 833 font-size="635px"
834 font-weight="400" 834 font-weight="400"
835 id="tspan583" 835 id="tspan583"
836 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 836 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
837 class="TextPosition" 837 class="TextPosition"
838 x="16149" 838 x="16149"
839 y="8321" 839 y="8321"
840 id="tspan585"><tspan 840 id="tspan585"><tspan
841 id="tspan587" 841 id="tspan587"
842 style="fill:#000000;stroke:none">23</tspan></tspan></tspan></text> 842 style="fill:#000000;stroke:none">23</tspan></tspan></tspan></text>
843</g></g><g 843</g></g><g
844 class="com.sun.star.drawing.CustomShape" 844 class="com.sun.star.drawing.CustomShape"
845 id="g589" 845 id="g589"
846 transform="translate(-3285.889,-3185.889)"><g 846 transform="translate(-3285.889,-3185.889)"><g
847 id="id37"><rect 847 id="id37"><rect
848 class="BoundingBox" 848 class="BoundingBox"
849 x="12899" 849 x="12899"
850 y="7399" 850 y="7399"
851 width="2403" 851 width="2403"
852 height="1403" 852 height="1403"
853 id="rect592" 853 id="rect592"
854 style="fill:none;stroke:none" /><path 854 style="fill:none;stroke:none" /><path
855 d="m 14100,8800 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 855 d="m 14100,8800 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
856 id="path594" 856 id="path594"
857 inkscape:connector-curvature="0" 857 inkscape:connector-curvature="0"
858 style="fill:none;stroke:#3465a4" /><text 858 style="fill:none;stroke:#3465a4" /><text
859 class="TextShape" 859 class="TextShape"
860 id="text596"><tspan 860 id="text596"><tspan
861 class="TextParagraph" 861 class="TextParagraph"
862 font-size="635px" 862 font-size="635px"
863 font-weight="400" 863 font-weight="400"
864 id="tspan598" 864 id="tspan598"
865 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 865 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
866 class="TextPosition" 866 class="TextPosition"
867 x="13749" 867 x="13749"
868 y="8321" 868 y="8321"
869 id="tspan600"><tspan 869 id="tspan600"><tspan
870 id="tspan602" 870 id="tspan602"
871 style="fill:#000000;stroke:none">22</tspan></tspan></tspan></text> 871 style="fill:#000000;stroke:none">22</tspan></tspan></tspan></text>
872</g></g><g 872</g></g><g
873 class="com.sun.star.drawing.CustomShape" 873 class="com.sun.star.drawing.CustomShape"
874 id="g604" 874 id="g604"
875 transform="translate(-3285.889,-3185.889)"><g 875 transform="translate(-3285.889,-3185.889)"><g
876 id="id38"><rect 876 id="id38"><rect
877 class="BoundingBox" 877 class="BoundingBox"
878 x="3299" 878 x="3299"
879 y="8799" 879 y="8799"
880 width="2403" 880 width="2403"
881 height="1403" 881 height="1403"
882 id="rect607" 882 id="rect607"
883 style="fill:none;stroke:none" /><path 883 style="fill:none;stroke:none" /><path
884 d="m 4500,10200 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 884 d="m 4500,10200 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
885 id="path609" 885 id="path609"
886 inkscape:connector-curvature="0" 886 inkscape:connector-curvature="0"
887 style="fill:none;stroke:#3465a4" /><text 887 style="fill:none;stroke:#3465a4" /><text
888 class="TextShape" 888 class="TextShape"
889 id="text611"><tspan 889 id="text611"><tspan
890 class="TextParagraph" 890 class="TextParagraph"
891 font-size="635px" 891 font-size="635px"
892 font-weight="400" 892 font-weight="400"
893 id="tspan613" 893 id="tspan613"
894 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 894 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
895 class="TextPosition" 895 class="TextPosition"
896 x="4149" 896 x="4149"
897 y="9721" 897 y="9721"
898 id="tspan615"><tspan 898 id="tspan615"><tspan
899 id="tspan617" 899 id="tspan617"
900 style="fill:#000000;stroke:none">24</tspan></tspan></tspan></text> 900 style="fill:#000000;stroke:none">24</tspan></tspan></tspan></text>
901</g></g><g 901</g></g><g
902 class="com.sun.star.drawing.CustomShape" 902 class="com.sun.star.drawing.CustomShape"
903 id="g619" 903 id="g619"
904 transform="translate(-3285.889,-3185.889)"><g 904 transform="translate(-3285.889,-3185.889)"><g
905 id="id39"><rect 905 id="id39"><rect
906 class="BoundingBox" 906 class="BoundingBox"
907 x="5699" 907 x="5699"
908 y="8799" 908 y="8799"
909 width="2403" 909 width="2403"
910 height="1403" 910 height="1403"
911 id="rect622" 911 id="rect622"
912 style="fill:none;stroke:none" /><path 912 style="fill:none;stroke:none" /><path
913 d="m 6900,10200 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 913 d="m 6900,10200 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
914 id="path624" 914 id="path624"
915 inkscape:connector-curvature="0" 915 inkscape:connector-curvature="0"
916 style="fill:none;stroke:#3465a4" /></g></g><g 916 style="fill:none;stroke:#3465a4" /></g></g><g
917 class="com.sun.star.drawing.CustomShape" 917 class="com.sun.star.drawing.CustomShape"
918 id="g626" 918 id="g626"
919 transform="translate(-3285.889,-3185.889)"><g 919 transform="translate(-3285.889,-3185.889)"><g
920 id="id40"><rect 920 id="id40"><rect
921 class="BoundingBox" 921 class="BoundingBox"
922 x="8099" 922 x="8099"
923 y="8799" 923 y="8799"
924 width="2403" 924 width="2403"
925 height="1403" 925 height="1403"
926 id="rect629" 926 id="rect629"
927 style="fill:none;stroke:none" /><path 927 style="fill:none;stroke:none" /><path
928 d="m 9300,10200 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 928 d="m 9300,10200 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
929 id="path631" 929 id="path631"
930 inkscape:connector-curvature="0" 930 inkscape:connector-curvature="0"
931 style="fill:none;stroke:#3465a4" /><text 931 style="fill:none;stroke:#3465a4" /><text
932 class="TextShape" 932 class="TextShape"
933 id="text633"><tspan 933 id="text633"><tspan
934 class="TextParagraph" 934 class="TextParagraph"
935 font-size="635px" 935 font-size="635px"
936 font-weight="400" 936 font-weight="400"
937 id="tspan635" 937 id="tspan635"
938 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 938 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
939 class="TextPosition" 939 class="TextPosition"
940 x="8949" 940 x="8949"
941 y="9721" 941 y="9721"
942 id="tspan637"><tspan 942 id="tspan637"><tspan
943 id="tspan639" 943 id="tspan639"
944 style="fill:#000000;stroke:none">26</tspan></tspan></tspan></text> 944 style="fill:#000000;stroke:none">26</tspan></tspan></tspan></text>
945</g></g><g 945</g></g><g
946 class="com.sun.star.drawing.CustomShape" 946 class="com.sun.star.drawing.CustomShape"
947 id="g641" 947 id="g641"
948 transform="translate(-3285.889,-3185.889)"><g 948 transform="translate(-3285.889,-3185.889)"><g
949 id="id41"><rect 949 id="id41"><rect
950 class="BoundingBox" 950 class="BoundingBox"
951 x="5699" 951 x="5699"
952 y="8799" 952 y="8799"
953 width="2403" 953 width="2403"
954 height="1403" 954 height="1403"
955 id="rect644" 955 id="rect644"
956 style="fill:none;stroke:none" /><path 956 style="fill:none;stroke:none" /><path
957 d="m 6900,10200 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 957 d="m 6900,10200 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
958 id="path646" 958 id="path646"
959 inkscape:connector-curvature="0" 959 inkscape:connector-curvature="0"
960 style="fill:none;stroke:#3465a4" /><text 960 style="fill:none;stroke:#3465a4" /><text
961 class="TextShape" 961 class="TextShape"
962 id="text648"><tspan 962 id="text648"><tspan
963 class="TextParagraph" 963 class="TextParagraph"
964 font-size="635px" 964 font-size="635px"
965 font-weight="400" 965 font-weight="400"
966 id="tspan650" 966 id="tspan650"
967 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 967 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
968 class="TextPosition" 968 class="TextPosition"
969 x="6549" 969 x="6549"
970 y="9721" 970 y="9721"
971 id="tspan652"><tspan 971 id="tspan652"><tspan
972 id="tspan654" 972 id="tspan654"
973 style="fill:#000000;stroke:none">25</tspan></tspan></tspan></text> 973 style="fill:#000000;stroke:none">25</tspan></tspan></tspan></text>
974</g></g><g 974</g></g><g
975 class="com.sun.star.drawing.CustomShape" 975 class="com.sun.star.drawing.CustomShape"
976 id="g656" 976 id="g656"
977 transform="translate(-3285.889,-3185.889)"><g 977 transform="translate(-3285.889,-3185.889)"><g
978 id="id42"><rect 978 id="id42"><rect
979 class="BoundingBox" 979 class="BoundingBox"
980 x="10499" 980 x="10499"
981 y="8799" 981 y="8799"
982 width="2403" 982 width="2403"
983 height="1403" 983 height="1403"
984 id="rect659" 984 id="rect659"
985 style="fill:none;stroke:none" /><path 985 style="fill:none;stroke:none" /><path
986 d="m 11700,10200 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 986 d="m 11700,10200 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
987 id="path661" 987 id="path661"
988 inkscape:connector-curvature="0" 988 inkscape:connector-curvature="0"
989 style="fill:none;stroke:#3465a4" /><text 989 style="fill:none;stroke:#3465a4" /><text
990 class="TextShape" 990 class="TextShape"
991 id="text663"><tspan 991 id="text663"><tspan
992 class="TextParagraph" 992 class="TextParagraph"
993 font-size="635px" 993 font-size="635px"
994 font-weight="400" 994 font-weight="400"
995 id="tspan665" 995 id="tspan665"
996 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 996 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
997 class="TextPosition" 997 class="TextPosition"
998 x="11349" 998 x="11349"
999 y="9721" 999 y="9721"
1000 id="tspan667"><tspan 1000 id="tspan667"><tspan
1001 id="tspan669" 1001 id="tspan669"
1002 style="fill:#000000;stroke:none">27</tspan></tspan></tspan></text> 1002 style="fill:#000000;stroke:none">27</tspan></tspan></tspan></text>
1003</g></g><g 1003</g></g><g
1004 class="com.sun.star.drawing.CustomShape" 1004 class="com.sun.star.drawing.CustomShape"
1005 id="g671" 1005 id="g671"
1006 transform="translate(-3285.889,-3185.889)"><g 1006 transform="translate(-3285.889,-3185.889)"><g
1007 id="id43"><rect 1007 id="id43"><rect
1008 class="BoundingBox" 1008 class="BoundingBox"
1009 x="12899" 1009 x="12899"
1010 y="8799" 1010 y="8799"
1011 width="2403" 1011 width="2403"
1012 height="1403" 1012 height="1403"
1013 id="rect674" 1013 id="rect674"
1014 style="fill:none;stroke:none" /><path 1014 style="fill:none;stroke:none" /><path
1015 d="m 14100,10200 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 1015 d="m 14100,10200 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
1016 id="path676" 1016 id="path676"
1017 inkscape:connector-curvature="0" 1017 inkscape:connector-curvature="0"
1018 style="fill:none;stroke:#3465a4" /></g></g><g 1018 style="fill:none;stroke:#3465a4" /></g></g><g
1019 class="com.sun.star.drawing.CustomShape" 1019 class="com.sun.star.drawing.CustomShape"
1020 id="g678" 1020 id="g678"
1021 transform="translate(-3285.889,-3185.889)"><g 1021 transform="translate(-3285.889,-3185.889)"><g
1022 id="id44"><rect 1022 id="id44"><rect
1023 class="BoundingBox" 1023 class="BoundingBox"
1024 x="15299" 1024 x="15299"
1025 y="8799" 1025 y="8799"
1026 width="2403" 1026 width="2403"
1027 height="1403" 1027 height="1403"
1028 id="rect681" 1028 id="rect681"
1029 style="fill:none;stroke:none" /><path 1029 style="fill:none;stroke:none" /><path
1030 d="m 16500,10200 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 1030 d="m 16500,10200 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
1031 id="path683" 1031 id="path683"
1032 inkscape:connector-curvature="0" 1032 inkscape:connector-curvature="0"
1033 style="fill:none;stroke:#3465a4" /><text 1033 style="fill:none;stroke:#3465a4" /><text
1034 class="TextShape" 1034 class="TextShape"
1035 id="text685"><tspan 1035 id="text685"><tspan
1036 class="TextParagraph" 1036 class="TextParagraph"
1037 font-size="635px" 1037 font-size="635px"
1038 font-weight="400" 1038 font-weight="400"
1039 id="tspan687" 1039 id="tspan687"
1040 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 1040 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
1041 class="TextPosition" 1041 class="TextPosition"
1042 x="16149" 1042 x="16149"
1043 y="9721" 1043 y="9721"
1044 id="tspan689"><tspan 1044 id="tspan689"><tspan
1045 id="tspan691" 1045 id="tspan691"
1046 style="fill:#000000;stroke:none">29</tspan></tspan></tspan></text> 1046 style="fill:#000000;stroke:none">29</tspan></tspan></tspan></text>
1047</g></g><g 1047</g></g><g
1048 class="com.sun.star.drawing.CustomShape" 1048 class="com.sun.star.drawing.CustomShape"
1049 id="g693" 1049 id="g693"
1050 transform="translate(-3285.889,-3185.889)"><g 1050 transform="translate(-3285.889,-3185.889)"><g
1051 id="id45"><rect 1051 id="id45"><rect
1052 class="BoundingBox" 1052 class="BoundingBox"
1053 x="12899" 1053 x="12899"
1054 y="8799" 1054 y="8799"
1055 width="2403" 1055 width="2403"
1056 height="1403" 1056 height="1403"
1057 id="rect696" 1057 id="rect696"
1058 style="fill:none;stroke:none" /><path 1058 style="fill:none;stroke:none" /><path
1059 d="m 14100,10200 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z" 1059 d="m 14100,10200 -1200,0 0,-1400 2400,0 0,1400 -1200,0 z"
1060 id="path698" 1060 id="path698"
1061 inkscape:connector-curvature="0" 1061 inkscape:connector-curvature="0"
1062 style="fill:none;stroke:#3465a4" /><text 1062 style="fill:none;stroke:#3465a4" /><text
1063 class="TextShape" 1063 class="TextShape"
1064 id="text700"><tspan 1064 id="text700"><tspan
1065 class="TextParagraph" 1065 class="TextParagraph"
1066 font-size="635px" 1066 font-size="635px"
1067 font-weight="400" 1067 font-weight="400"
1068 id="tspan702" 1068 id="tspan702"
1069 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan 1069 style="font-weight:400;font-size:635px;font-family:sans-serif"><tspan
1070 class="TextPosition" 1070 class="TextPosition"
1071 x="13749" 1071 x="13749"
1072 y="9721" 1072 y="9721"
1073 id="tspan704"><tspan 1073 id="tspan704"><tspan
1074 id="tspan706" 1074 id="tspan706"
1075 style="fill:#000000;stroke:none">28</tspan></tspan></tspan></text> 1075 style="fill:#000000;stroke:none">28</tspan></tspan></tspan></text>
1076</g></g><g 1076</g></g><g
1077 class="com.sun.star.drawing.LineShape" 1077 class="com.sun.star.drawing.LineShape"
1078 id="g708" 1078 id="g708"
1079 transform="translate(-3285.889,-3185.889)"><g 1079 transform="translate(-3285.889,-3185.889)"><g
1080 id="id46"><rect 1080 id="id46"><rect
1081 class="BoundingBox" 1081 class="BoundingBox"
1082 x="5199" 1082 x="5199"
1083 y="3850" 1083 y="3850"
1084 width="1402" 1084 width="1402"
1085 height="301" 1085 height="301"
1086 id="rect711" 1086 id="rect711"
1087 style="fill:none;stroke:none" /><path 1087 style="fill:none;stroke:none" /><path
1088 d="m 5200,4000 970,0" 1088 d="m 5200,4000 970,0"
1089 id="path713" 1089 id="path713"
1090 inkscape:connector-curvature="0" 1090 inkscape:connector-curvature="0"
1091 style="fill:none;stroke:#ff3333" /><path 1091 style="fill:none;stroke:#ff3333" /><path
1092 d="m 6600,4000 -450,-150 0,300 450,-150 z" 1092 d="m 6600,4000 -450,-150 0,300 450,-150 z"
1093 id="path715" 1093 id="path715"
1094 inkscape:connector-curvature="0" 1094 inkscape:connector-curvature="0"
1095 style="fill:#ff3333;stroke:none" /></g></g><g 1095 style="fill:#ff3333;stroke:none" /></g></g><g
1096 class="com.sun.star.drawing.LineShape" 1096 class="com.sun.star.drawing.LineShape"
1097 id="g717" 1097 id="g717"
1098 transform="translate(-3285.889,-3185.889)"><g 1098 transform="translate(-3285.889,-3185.889)"><g
1099 id="id47"><rect 1099 id="id47"><rect
1100 class="BoundingBox" 1100 class="BoundingBox"
1101 x="5000" 1101 x="5000"
1102 y="4299" 1102 y="4299"
1103 width="1202" 1103 width="1202"
1104 height="802" 1104 height="802"
1105 id="rect720" 1105 id="rect720"
1106 style="fill:none;stroke:none" /><path 1106 style="fill:none;stroke:none" /><path
1107 d="m 6200,4300 -842,561" 1107 d="m 6200,4300 -842,561"
1108 id="path722" 1108 id="path722"
1109 inkscape:connector-curvature="0" 1109 inkscape:connector-curvature="0"
1110 style="fill:none;stroke:#ff3333" /><path 1110 style="fill:none;stroke:#ff3333" /><path
1111 d="m 5000,5100 458,-125 -167,-249 -291,374 z" 1111 d="m 5000,5100 458,-125 -167,-249 -291,374 z"
1112 id="path724" 1112 id="path724"
1113 inkscape:connector-curvature="0" 1113 inkscape:connector-curvature="0"
1114 style="fill:#ff3333;stroke:none" /></g></g><g 1114 style="fill:#ff3333;stroke:none" /></g></g><g
1115 class="com.sun.star.drawing.LineShape" 1115 class="com.sun.star.drawing.LineShape"
1116 id="g726" 1116 id="g726"
1117 transform="translate(-3285.889,-3185.889)"><g 1117 transform="translate(-3285.889,-3185.889)"><g
1118 id="id48"><rect 1118 id="id48"><rect
1119 class="BoundingBox" 1119 class="BoundingBox"
1120 x="5399" 1120 x="5399"
1121 y="5250" 1121 y="5250"
1122 width="1202" 1122 width="1202"
1123 height="301" 1123 height="301"
1124 id="rect729" 1124 id="rect729"
1125 style="fill:none;stroke:none" /><path 1125 style="fill:none;stroke:none" /><path
1126 d="m 5400,5400 770,0" 1126 d="m 5400,5400 770,0"
1127 id="path731" 1127 id="path731"
1128 inkscape:connector-curvature="0" 1128 inkscape:connector-curvature="0"
1129 style="fill:none;stroke:#ff3333" /><path 1129 style="fill:none;stroke:#ff3333" /><path
1130 d="m 6600,5400 -450,-150 0,300 450,-150 z" 1130 d="m 6600,5400 -450,-150 0,300 450,-150 z"
1131 id="path733" 1131 id="path733"
1132 inkscape:connector-curvature="0" 1132 inkscape:connector-curvature="0"
1133 style="fill:#ff3333;stroke:none" /></g></g><g 1133 style="fill:#ff3333;stroke:none" /></g></g><g
1134 class="com.sun.star.drawing.LineShape" 1134 class="com.sun.star.drawing.LineShape"
1135 id="g735" 1135 id="g735"
1136 transform="translate(-3285.889,-3185.889)"><g 1136 transform="translate(-3285.889,-3185.889)"><g
1137 id="id49"><rect 1137 id="id49"><rect
1138 class="BoundingBox" 1138 class="BoundingBox"
1139 x="7599" 1139 x="7599"
1140 y="5250" 1140 y="5250"
1141 width="1202" 1141 width="1202"
1142 height="301" 1142 height="301"
1143 id="rect738" 1143 id="rect738"
1144 style="fill:none;stroke:none" /><path 1144 style="fill:none;stroke:none" /><path
1145 d="m 7600,5400 770,0" 1145 d="m 7600,5400 770,0"
1146 id="path740" 1146 id="path740"
1147 inkscape:connector-curvature="0" 1147 inkscape:connector-curvature="0"
1148 style="fill:none;stroke:#ff3333" /><path 1148 style="fill:none;stroke:#ff3333" /><path
1149 d="m 8800,5400 -450,-150 0,300 450,-150 z" 1149 d="m 8800,5400 -450,-150 0,300 450,-150 z"
1150 id="path742" 1150 id="path742"
1151 inkscape:connector-curvature="0" 1151 inkscape:connector-curvature="0"
1152 style="fill:#ff3333;stroke:none" /></g></g><g 1152 style="fill:#ff3333;stroke:none" /></g></g><g
1153 class="com.sun.star.drawing.LineShape" 1153 class="com.sun.star.drawing.LineShape"
1154 id="g744" 1154 id="g744"
1155 transform="translate(-3285.889,-3185.889)"><g 1155 transform="translate(-3285.889,-3185.889)"><g
1156 id="id50"><rect 1156 id="id50"><rect
1157 class="BoundingBox" 1157 class="BoundingBox"
1158 x="9799" 1158 x="9799"
1159 y="5250" 1159 y="5250"
1160 width="1402" 1160 width="1402"
1161 height="301" 1161 height="301"
1162 id="rect747" 1162 id="rect747"
1163 style="fill:none;stroke:none" /><path 1163 style="fill:none;stroke:none" /><path
1164 d="m 9800,5400 970,0" 1164 d="m 9800,5400 970,0"
1165 id="path749" 1165 id="path749"
1166 inkscape:connector-curvature="0" 1166 inkscape:connector-curvature="0"
1167 style="fill:none;stroke:#ff3333" /><path 1167 style="fill:none;stroke:#ff3333" /><path
1168 d="m 11200,5400 -450,-150 0,300 450,-150 z" 1168 d="m 11200,5400 -450,-150 0,300 450,-150 z"
1169 id="path751" 1169 id="path751"
1170 inkscape:connector-curvature="0" 1170 inkscape:connector-curvature="0"
1171 style="fill:#ff3333;stroke:none" /></g></g><g 1171 style="fill:#ff3333;stroke:none" /></g></g><g
1172 class="com.sun.star.drawing.LineShape" 1172 class="com.sun.star.drawing.LineShape"
1173 id="g753" 1173 id="g753"
1174 transform="translate(-3285.889,-3185.889)"><g 1174 transform="translate(-3285.889,-3185.889)"><g
1175 id="id51"><rect 1175 id="id51"><rect
1176 class="BoundingBox" 1176 class="BoundingBox"
1177 x="9900" 1177 x="9900"
1178 y="4200" 1178 y="4200"
1179 width="1202" 1179 width="1202"
1180 height="802" 1180 height="802"
1181 id="rect756" 1181 id="rect756"
1182 style="fill:none;stroke:none" /><path 1182 style="fill:none;stroke:none" /><path
1183 d="m 11100,5000 -842,-561" 1183 d="m 11100,5000 -842,-561"
1184 id="path758" 1184 id="path758"
1185 inkscape:connector-curvature="0" 1185 inkscape:connector-curvature="0"
1186 style="fill:none;stroke:#ff3333" /><path 1186 style="fill:none;stroke:#ff3333" /><path
1187 d="m 9900,4200 291,374 167,-249 -458,-125 z" 1187 d="m 9900,4200 291,374 167,-249 -458,-125 z"
1188 id="path760" 1188 id="path760"
1189 inkscape:connector-curvature="0" 1189 inkscape:connector-curvature="0"
1190 style="fill:#ff3333;stroke:none" /></g></g><g 1190 style="fill:#ff3333;stroke:none" /></g></g><g
1191 class="com.sun.star.drawing.LineShape" 1191 class="com.sun.star.drawing.LineShape"
1192 id="g762" 1192 id="g762"
1193 transform="translate(-3285.889,-3185.889)"><g 1193 transform="translate(-3285.889,-3185.889)"><g
1194 id="id52"><rect 1194 id="id52"><rect
1195 class="BoundingBox" 1195 class="BoundingBox"
1196 x="9999" 1196 x="9999"
1197 y="3850" 1197 y="3850"
1198 width="1402" 1198 width="1402"
1199 height="301" 1199 height="301"
1200 id="rect765" 1200 id="rect765"
1201 style="fill:none;stroke:none" /><path 1201 style="fill:none;stroke:none" /><path
1202 d="m 10000,4000 970,0" 1202 d="m 10000,4000 970,0"
1203 id="path767" 1203 id="path767"
1204 inkscape:connector-curvature="0" 1204 inkscape:connector-curvature="0"
1205 style="fill:none;stroke:#ff3333" /><path 1205 style="fill:none;stroke:#ff3333" /><path
1206 d="m 11400,4000 -450,-150 0,300 450,-150 z" 1206 d="m 11400,4000 -450,-150 0,300 450,-150 z"
1207 id="path769" 1207 id="path769"
1208 inkscape:connector-curvature="0" 1208 inkscape:connector-curvature="0"
1209 style="fill:#ff3333;stroke:none" /></g></g><g 1209 style="fill:#ff3333;stroke:none" /></g></g><g
1210 class="com.sun.star.drawing.LineShape" 1210 class="com.sun.star.drawing.LineShape"
1211 id="g771" 1211 id="g771"
1212 transform="translate(-3285.889,-3185.889)"><g 1212 transform="translate(-3285.889,-3185.889)"><g
1213 id="id53"><rect 1213 id="id53"><rect
1214 class="BoundingBox" 1214 class="BoundingBox"
1215 x="12399" 1215 x="12399"
1216 y="3850" 1216 y="3850"
1217 width="1202" 1217 width="1202"
1218 height="301" 1218 height="301"
1219 id="rect774" 1219 id="rect774"
1220 style="fill:none;stroke:none" /><path 1220 style="fill:none;stroke:none" /><path
1221 d="m 12400,4000 770,0" 1221 d="m 12400,4000 770,0"
1222 id="path776" 1222 id="path776"
1223 inkscape:connector-curvature="0" 1223 inkscape:connector-curvature="0"
1224 style="fill:none;stroke:#ff3333" /><path 1224 style="fill:none;stroke:#ff3333" /><path
1225 d="m 13600,4000 -450,-150 0,300 450,-150 z" 1225 d="m 13600,4000 -450,-150 0,300 450,-150 z"
1226 id="path778" 1226 id="path778"
1227 inkscape:connector-curvature="0" 1227 inkscape:connector-curvature="0"
1228 style="fill:#ff3333;stroke:none" /></g></g><g 1228 style="fill:#ff3333;stroke:none" /></g></g><g
1229 class="com.sun.star.drawing.LineShape" 1229 class="com.sun.star.drawing.LineShape"
1230 id="g780" 1230 id="g780"
1231 transform="translate(-3285.889,-3185.889)"><g 1231 transform="translate(-3285.889,-3185.889)"><g
1232 id="id54"><rect 1232 id="id54"><rect
1233 class="BoundingBox" 1233 class="BoundingBox"
1234 x="14799" 1234 x="14799"
1235 y="3850" 1235 y="3850"
1236 width="1202" 1236 width="1202"
1237 height="301" 1237 height="301"
1238 id="rect783" 1238 id="rect783"
1239 style="fill:none;stroke:none" /><path 1239 style="fill:none;stroke:none" /><path
1240 d="m 14800,4000 770,0" 1240 d="m 14800,4000 770,0"
1241 id="path785" 1241 id="path785"
1242 inkscape:connector-curvature="0" 1242 inkscape:connector-curvature="0"
1243 style="fill:none;stroke:#ff3333" /><path 1243 style="fill:none;stroke:#ff3333" /><path
1244 d="m 16000,4000 -450,-150 0,300 450,-150 z" 1244 d="m 16000,4000 -450,-150 0,300 450,-150 z"
1245 id="path787" 1245 id="path787"
1246 inkscape:connector-curvature="0" 1246 inkscape:connector-curvature="0"
1247 style="fill:#ff3333;stroke:none" /></g></g><g 1247 style="fill:#ff3333;stroke:none" /></g></g><g
1248 class="com.sun.star.drawing.LineShape" 1248 class="com.sun.star.drawing.LineShape"
1249 id="g789" 1249 id="g789"
1250 transform="translate(-3285.889,-3185.889)"><g 1250 transform="translate(-3285.889,-3185.889)"><g
1251 id="id55"><rect 1251 id="id55"><rect
1252 class="BoundingBox" 1252 class="BoundingBox"
1253 x="14400" 1253 x="14400"
1254 y="4399" 1254 y="4399"
1255 width="1402" 1255 width="1402"
1256 height="602" 1256 height="602"
1257 id="rect792" 1257 id="rect792"
1258 style="fill:none;stroke:none" /><path 1258 style="fill:none;stroke:none" /><path
1259 d="m 15800,4400 -1005,431" 1259 d="m 15800,4400 -1005,431"
1260 id="path794" 1260 id="path794"
1261 inkscape:connector-curvature="0" 1261 inkscape:connector-curvature="0"
1262 style="fill:none;stroke:#ff3333" /><path 1262 style="fill:none;stroke:#ff3333" /><path
1263 d="m 14400,5000 473,-39 -118,-276 -355,315 z" 1263 d="m 14400,5000 473,-39 -118,-276 -355,315 z"
1264 id="path796" 1264 id="path796"
1265 inkscape:connector-curvature="0" 1265 inkscape:connector-curvature="0"
1266 style="fill:#ff3333;stroke:none" /></g></g><g 1266 style="fill:#ff3333;stroke:none" /></g></g><g
1267 class="com.sun.star.drawing.LineShape" 1267 class="com.sun.star.drawing.LineShape"
1268 id="g798" 1268 id="g798"
1269 transform="translate(-3285.889,-3185.889)"><g 1269 transform="translate(-3285.889,-3185.889)"><g
1270 id="id56"><rect 1270 id="id56"><rect
1271 class="BoundingBox" 1271 class="BoundingBox"
1272 x="14599" 1272 x="14599"
1273 y="5250" 1273 y="5250"
1274 width="1402" 1274 width="1402"
1275 height="301" 1275 height="301"
1276 id="rect801" 1276 id="rect801"
1277 style="fill:none;stroke:none" /><path 1277 style="fill:none;stroke:none" /><path
1278 d="m 14600,5400 970,0" 1278 d="m 14600,5400 970,0"
1279 id="path803" 1279 id="path803"
1280 inkscape:connector-curvature="0" 1280 inkscape:connector-curvature="0"
1281 style="fill:none;stroke:#ff3333" /><path 1281 style="fill:none;stroke:#ff3333" /><path
1282 d="m 16000,5400 -450,-150 0,300 450,-150 z" 1282 d="m 16000,5400 -450,-150 0,300 450,-150 z"
1283 id="path805" 1283 id="path805"
1284 inkscape:connector-curvature="0" 1284 inkscape:connector-curvature="0"
1285 style="fill:#ff3333;stroke:none" /></g></g><g 1285 style="fill:#ff3333;stroke:none" /></g></g><g
1286 class="com.sun.star.drawing.LineShape" 1286 class="com.sun.star.drawing.LineShape"
1287 id="g807" 1287 id="g807"
1288 transform="translate(-3285.889,-3185.889)"><g 1288 transform="translate(-3285.889,-3185.889)"><g
1289 id="id57"><rect 1289 id="id57"><rect
1290 class="BoundingBox" 1290 class="BoundingBox"
1291 x="5199" 1291 x="5199"
1292 y="6550" 1292 y="6550"
1293 width="1402" 1293 width="1402"
1294 height="301" 1294 height="301"
1295 id="rect810" 1295 id="rect810"
1296 style="fill:none;stroke:none" /><path 1296 style="fill:none;stroke:none" /><path
1297 d="m 5200,6700 970,0" 1297 d="m 5200,6700 970,0"
1298 id="path812" 1298 id="path812"
1299 inkscape:connector-curvature="0" 1299 inkscape:connector-curvature="0"
1300 style="fill:none;stroke:#ff3333" /><path 1300 style="fill:none;stroke:#ff3333" /><path
1301 d="m 6600,6700 -450,-150 0,300 450,-150 z" 1301 d="m 6600,6700 -450,-150 0,300 450,-150 z"
1302 id="path814" 1302 id="path814"
1303 inkscape:connector-curvature="0" 1303 inkscape:connector-curvature="0"
1304 style="fill:#ff3333;stroke:none" /></g></g><g 1304 style="fill:#ff3333;stroke:none" /></g></g><g
1305 class="com.sun.star.drawing.LineShape" 1305 class="com.sun.star.drawing.LineShape"
1306 id="g816" 1306 id="g816"
1307 transform="translate(-3285.889,-3129.4446)"><g 1307 transform="translate(-3285.889,-3129.4446)"><g
1308 id="id58"><rect 1308 id="id58"><rect
1309 class="BoundingBox" 1309 class="BoundingBox"
1310 x="5000" 1310 x="5000"
1311 y="6999" 1311 y="6999"
1312 width="1202" 1312 width="1202"
1313 height="802" 1313 height="802"
1314 id="rect819" 1314 id="rect819"
1315 style="fill:none;stroke:none" /><path 1315 style="fill:none;stroke:none" /><path
1316 d="m 6200,7000 -842,561" 1316 d="m 6200,7000 -842,561"
1317 id="path821" 1317 id="path821"
1318 inkscape:connector-curvature="0" 1318 inkscape:connector-curvature="0"
1319 style="fill:none;stroke:#ff3333" /><path 1319 style="fill:none;stroke:#ff3333" /><path
1320 d="m 5000,7800 458,-125 -167,-249 -291,374 z" 1320 d="m 5000,7800 458,-125 -167,-249 -291,374 z"
1321 id="path823" 1321 id="path823"
1322 inkscape:connector-curvature="0" 1322 inkscape:connector-curvature="0"
1323 style="fill:#ff3333;stroke:none" /></g></g><g 1323 style="fill:#ff3333;stroke:none" /></g></g><g
1324 class="com.sun.star.drawing.LineShape" 1324 class="com.sun.star.drawing.LineShape"
1325 id="g825" 1325 id="g825"
1326 transform="translate(-3285.889,-3185.889)"><g 1326 transform="translate(-3285.889,-3185.889)"><g
1327 id="id59"><rect 1327 id="id59"><rect
1328 class="BoundingBox" 1328 class="BoundingBox"
1329 x="5399" 1329 x="5399"
1330 y="7950" 1330 y="7950"
1331 width="1202" 1331 width="1202"
1332 height="301" 1332 height="301"
1333 id="rect828" 1333 id="rect828"
1334 style="fill:none;stroke:none" /><path 1334 style="fill:none;stroke:none" /><path
1335 d="m 5400,8100 770,0" 1335 d="m 5400,8100 770,0"
1336 id="path830" 1336 id="path830"
1337 inkscape:connector-curvature="0" 1337 inkscape:connector-curvature="0"
1338 style="fill:none;stroke:#ff3333" /><path 1338 style="fill:none;stroke:#ff3333" /><path
1339 d="m 6600,8100 -450,-150 0,300 450,-150 z" 1339 d="m 6600,8100 -450,-150 0,300 450,-150 z"
1340 id="path832" 1340 id="path832"
1341 inkscape:connector-curvature="0" 1341 inkscape:connector-curvature="0"
1342 style="fill:#ff3333;stroke:none" /></g></g><g 1342 style="fill:#ff3333;stroke:none" /></g></g><g
1343 class="com.sun.star.drawing.LineShape" 1343 class="com.sun.star.drawing.LineShape"
1344 id="g834" 1344 id="g834"
1345 transform="translate(-3285.889,-3185.889)"><g 1345 transform="translate(-3285.889,-3185.889)"><g
1346 id="id60"><rect 1346 id="id60"><rect
1347 class="BoundingBox" 1347 class="BoundingBox"
1348 x="7599" 1348 x="7599"
1349 y="7950" 1349 y="7950"
1350 width="1202" 1350 width="1202"
1351 height="301" 1351 height="301"
1352 id="rect837" 1352 id="rect837"
1353 style="fill:none;stroke:none" /><path 1353 style="fill:none;stroke:none" /><path
1354 d="m 7600,8100 770,0" 1354 d="m 7600,8100 770,0"
1355 id="path839" 1355 id="path839"
1356 inkscape:connector-curvature="0" 1356 inkscape:connector-curvature="0"
1357 style="fill:none;stroke:#ff3333" /><path 1357 style="fill:none;stroke:#ff3333" /><path
1358 d="m 8800,8100 -450,-150 0,300 450,-150 z" 1358 d="m 8800,8100 -450,-150 0,300 450,-150 z"
1359 id="path841" 1359 id="path841"
1360 inkscape:connector-curvature="0" 1360 inkscape:connector-curvature="0"
1361 style="fill:#ff3333;stroke:none" /></g></g><g 1361 style="fill:#ff3333;stroke:none" /></g></g><g
1362 class="com.sun.star.drawing.LineShape" 1362 class="com.sun.star.drawing.LineShape"
1363 id="g843" 1363 id="g843"
1364 transform="translate(-3285.889,-3185.889)"><g 1364 transform="translate(-3285.889,-3185.889)"><g
1365 id="id61"><rect 1365 id="id61"><rect
1366 class="BoundingBox" 1366 class="BoundingBox"
1367 x="9799" 1367 x="9799"
1368 y="7950" 1368 y="7950"
1369 width="1402" 1369 width="1402"
1370 height="301" 1370 height="301"
1371 id="rect846" 1371 id="rect846"
1372 style="fill:none;stroke:none" /><path 1372 style="fill:none;stroke:none" /><path
1373 d="m 9800,8100 970,0" 1373 d="m 9800,8100 970,0"
1374 id="path848" 1374 id="path848"
1375 inkscape:connector-curvature="0" 1375 inkscape:connector-curvature="0"
1376 style="fill:none;stroke:#ff3333" /><path 1376 style="fill:none;stroke:#ff3333" /><path
1377 d="m 11200,8100 -450,-150 0,300 450,-150 z" 1377 d="m 11200,8100 -450,-150 0,300 450,-150 z"
1378 id="path850" 1378 id="path850"
1379 inkscape:connector-curvature="0" 1379 inkscape:connector-curvature="0"
1380 style="fill:#ff3333;stroke:none" /></g></g><g 1380 style="fill:#ff3333;stroke:none" /></g></g><g
1381 class="com.sun.star.drawing.LineShape" 1381 class="com.sun.star.drawing.LineShape"
1382 id="g852" 1382 id="g852"
1383 transform="translate(-3285.889,-3129.4446)"><g 1383 transform="translate(-3285.889,-3129.4446)"><g
1384 id="id62"><rect 1384 id="id62"><rect
1385 class="BoundingBox" 1385 class="BoundingBox"
1386 x="9900" 1386 x="9900"
1387 y="6900" 1387 y="6900"
1388 width="1202" 1388 width="1202"
1389 height="802" 1389 height="802"
1390 id="rect855" 1390 id="rect855"
1391 style="fill:none;stroke:none" /><path 1391 style="fill:none;stroke:none" /><path
1392 d="m 11100,7700 -842,-561" 1392 d="m 11100,7700 -842,-561"
1393 id="path857" 1393 id="path857"
1394 inkscape:connector-curvature="0" 1394 inkscape:connector-curvature="0"
1395 style="fill:none;stroke:#ff3333" /><path 1395 style="fill:none;stroke:#ff3333" /><path
1396 d="m 9900,6900 291,374 167,-249 -458,-125 z" 1396 d="m 9900,6900 291,374 167,-249 -458,-125 z"
1397 id="path859" 1397 id="path859"
1398 inkscape:connector-curvature="0" 1398 inkscape:connector-curvature="0"
1399 style="fill:#ff3333;stroke:none" /></g></g><g 1399 style="fill:#ff3333;stroke:none" /></g></g><g
1400 class="com.sun.star.drawing.LineShape" 1400 class="com.sun.star.drawing.LineShape"
1401 id="g861" 1401 id="g861"
1402 transform="translate(-3285.889,-3185.889)"><g 1402 transform="translate(-3285.889,-3185.889)"><g
1403 id="id63"><rect 1403 id="id63"><rect
1404 class="BoundingBox" 1404 class="BoundingBox"
1405 x="9999" 1405 x="9999"
1406 y="6550" 1406 y="6550"
1407 width="1402" 1407 width="1402"
1408 height="301" 1408 height="301"
1409 id="rect864" 1409 id="rect864"
1410 style="fill:none;stroke:none" /><path 1410 style="fill:none;stroke:none" /><path
1411 d="m 10000,6700 970,0" 1411 d="m 10000,6700 970,0"
1412 id="path866" 1412 id="path866"
1413 inkscape:connector-curvature="0" 1413 inkscape:connector-curvature="0"
1414 style="fill:none;stroke:#ff3333" /><path 1414 style="fill:none;stroke:#ff3333" /><path
1415 d="m 11400,6700 -450,-150 0,300 450,-150 z" 1415 d="m 11400,6700 -450,-150 0,300 450,-150 z"
1416 id="path868" 1416 id="path868"
1417 inkscape:connector-curvature="0" 1417 inkscape:connector-curvature="0"
1418 style="fill:#ff3333;stroke:none" /></g></g><g 1418 style="fill:#ff3333;stroke:none" /></g></g><g
1419 class="com.sun.star.drawing.LineShape" 1419 class="com.sun.star.drawing.LineShape"
1420 id="g870" 1420 id="g870"
1421 transform="translate(-3285.889,-3185.889)"><g 1421 transform="translate(-3285.889,-3185.889)"><g
1422 id="id64"><rect 1422 id="id64"><rect
1423 class="BoundingBox" 1423 class="BoundingBox"
1424 x="12399" 1424 x="12399"
1425 y="6550" 1425 y="6550"
1426 width="1202" 1426 width="1202"
1427 height="301" 1427 height="301"
1428 id="rect873" 1428 id="rect873"
1429 style="fill:none;stroke:none" /><path 1429 style="fill:none;stroke:none" /><path
1430 d="m 12400,6700 770,0" 1430 d="m 12400,6700 770,0"
1431 id="path875" 1431 id="path875"
1432 inkscape:connector-curvature="0" 1432 inkscape:connector-curvature="0"
1433 style="fill:none;stroke:#ff3333" /><path 1433 style="fill:none;stroke:#ff3333" /><path
1434 d="m 13600,6700 -450,-150 0,300 450,-150 z" 1434 d="m 13600,6700 -450,-150 0,300 450,-150 z"
1435 id="path877" 1435 id="path877"
1436 inkscape:connector-curvature="0" 1436 inkscape:connector-curvature="0"
1437 style="fill:#ff3333;stroke:none" /></g></g><g 1437 style="fill:#ff3333;stroke:none" /></g></g><g
1438 class="com.sun.star.drawing.LineShape" 1438 class="com.sun.star.drawing.LineShape"
1439 id="g879" 1439 id="g879"
1440 transform="translate(-3285.889,-3185.889)"><g 1440 transform="translate(-3285.889,-3185.889)"><g
1441 id="id65"><rect 1441 id="id65"><rect
1442 class="BoundingBox" 1442 class="BoundingBox"
1443 x="14799" 1443 x="14799"
1444 y="6550" 1444 y="6550"
1445 width="1202" 1445 width="1202"
1446 height="301" 1446 height="301"
1447 id="rect882" 1447 id="rect882"
1448 style="fill:none;stroke:none" /><path 1448 style="fill:none;stroke:none" /><path
1449 d="m 14800,6700 770,0" 1449 d="m 14800,6700 770,0"
1450 id="path884" 1450 id="path884"
1451 inkscape:connector-curvature="0" 1451 inkscape:connector-curvature="0"
1452 style="fill:none;stroke:#ff3333" /><path 1452 style="fill:none;stroke:#ff3333" /><path
1453 d="m 16000,6700 -450,-150 0,300 450,-150 z" 1453 d="m 16000,6700 -450,-150 0,300 450,-150 z"
1454 id="path886" 1454 id="path886"
1455 inkscape:connector-curvature="0" 1455 inkscape:connector-curvature="0"
1456 style="fill:#ff3333;stroke:none" /></g></g><g 1456 style="fill:#ff3333;stroke:none" /></g></g><g
1457 class="com.sun.star.drawing.LineShape" 1457 class="com.sun.star.drawing.LineShape"
1458 id="g888" 1458 id="g888"
1459 transform="translate(-3285.889,-3129.4446)"><g 1459 transform="translate(-3285.889,-3129.4446)"><g
1460 id="id66"><rect 1460 id="id66"><rect
1461 class="BoundingBox" 1461 class="BoundingBox"
1462 x="14400" 1462 x="14400"
1463 y="7099" 1463 y="7099"
1464 width="1402" 1464 width="1402"
1465 height="602" 1465 height="602"
1466 id="rect891" 1466 id="rect891"
1467 style="fill:none;stroke:none" /><path 1467 style="fill:none;stroke:none" /><path
1468 d="m 15800,7100 -1005,431" 1468 d="m 15800,7100 -1005,431"
1469 id="path893" 1469 id="path893"
1470 inkscape:connector-curvature="0" 1470 inkscape:connector-curvature="0"
1471 style="fill:none;stroke:#ff3333" /><path 1471 style="fill:none;stroke:#ff3333" /><path
1472 d="m 14400,7700 473,-39 -118,-276 -355,315 z" 1472 d="m 14400,7700 473,-39 -118,-276 -355,315 z"
1473 id="path895" 1473 id="path895"
1474 inkscape:connector-curvature="0" 1474 inkscape:connector-curvature="0"
1475 style="fill:#ff3333;stroke:none" /></g></g><g 1475 style="fill:#ff3333;stroke:none" /></g></g><g
1476 class="com.sun.star.drawing.LineShape" 1476 class="com.sun.star.drawing.LineShape"
1477 id="g897" 1477 id="g897"
1478 transform="translate(-3285.889,-3185.889)"><g 1478 transform="translate(-3285.889,-3185.889)"><g
1479 id="id67"><rect 1479 id="id67"><rect
1480 class="BoundingBox" 1480 class="BoundingBox"
1481 x="14599" 1481 x="14599"
1482 y="7950" 1482 y="7950"
1483 width="1402" 1483 width="1402"
1484 height="301" 1484 height="301"
1485 id="rect900" 1485 id="rect900"
1486 style="fill:none;stroke:none" /><path 1486 style="fill:none;stroke:none" /><path
1487 d="m 14600,8100 970,0" 1487 d="m 14600,8100 970,0"
1488 id="path902" 1488 id="path902"
1489 inkscape:connector-curvature="0" 1489 inkscape:connector-curvature="0"
1490 style="fill:none;stroke:#ff3333" /><path 1490 style="fill:none;stroke:#ff3333" /><path
1491 d="m 16000,8100 -450,-150 0,300 450,-150 z" 1491 d="m 16000,8100 -450,-150 0,300 450,-150 z"
1492 id="path904" 1492 id="path904"
1493 inkscape:connector-curvature="0" 1493 inkscape:connector-curvature="0"
1494 style="fill:#ff3333;stroke:none" /></g></g><g 1494 style="fill:#ff3333;stroke:none" /></g></g><g
1495 class="com.sun.star.drawing.LineShape" 1495 class="com.sun.star.drawing.LineShape"
1496 id="g906" 1496 id="g906"
1497 transform="translate(-3285.889,-3185.889)"><g 1497 transform="translate(-3285.889,-3185.889)"><g
1498 id="id68"><rect 1498 id="id68"><rect
1499 class="BoundingBox" 1499 class="BoundingBox"
1500 x="5399" 1500 x="5399"
1501 y="9450" 1501 y="9450"
1502 width="1202" 1502 width="1202"
1503 height="301" 1503 height="301"
1504 id="rect909" 1504 id="rect909"
1505 style="fill:none;stroke:none" /><path 1505 style="fill:none;stroke:none" /><path
1506 d="m 5400,9600 770,0" 1506 d="m 5400,9600 770,0"
1507 id="path911" 1507 id="path911"
1508 inkscape:connector-curvature="0" 1508 inkscape:connector-curvature="0"
1509 style="fill:none;stroke:#ff3333" /><path 1509 style="fill:none;stroke:#ff3333" /><path
1510 d="m 6600,9600 -450,-150 0,300 450,-150 z" 1510 d="m 6600,9600 -450,-150 0,300 450,-150 z"
1511 id="path913" 1511 id="path913"
1512 inkscape:connector-curvature="0" 1512 inkscape:connector-curvature="0"
1513 style="fill:#ff3333;stroke:none" /></g></g><g 1513 style="fill:#ff3333;stroke:none" /></g></g><g
1514 class="com.sun.star.drawing.LineShape" 1514 class="com.sun.star.drawing.LineShape"
1515 id="g915" 1515 id="g915"
1516 transform="translate(-3285.889,-3185.889)"><g 1516 transform="translate(-3285.889,-3185.889)"><g
1517 id="id69"><rect 1517 id="id69"><rect
1518 class="BoundingBox" 1518 class="BoundingBox"
1519 x="7599" 1519 x="7599"
1520 y="9450" 1520 y="9450"
1521 width="1202" 1521 width="1202"
1522 height="301" 1522 height="301"
1523 id="rect918" 1523 id="rect918"
1524 style="fill:none;stroke:none" /><path 1524 style="fill:none;stroke:none" /><path
1525 d="m 7600,9600 770,0" 1525 d="m 7600,9600 770,0"
1526 id="path920" 1526 id="path920"
1527 inkscape:connector-curvature="0" 1527 inkscape:connector-curvature="0"
1528 style="fill:none;stroke:#ff3333" /><path 1528 style="fill:none;stroke:#ff3333" /><path
1529 d="m 8800,9600 -450,-150 0,300 450,-150 z" 1529 d="m 8800,9600 -450,-150 0,300 450,-150 z"
1530 id="path922" 1530 id="path922"
1531 inkscape:connector-curvature="0" 1531 inkscape:connector-curvature="0"
1532 style="fill:#ff3333;stroke:none" /></g></g><g 1532 style="fill:#ff3333;stroke:none" /></g></g><g
1533 class="com.sun.star.drawing.LineShape" 1533 class="com.sun.star.drawing.LineShape"
1534 id="g924" 1534 id="g924"
1535 transform="translate(-3285.889,-3185.889)"><g 1535 transform="translate(-3285.889,-3185.889)"><g
1536 id="id70"><rect 1536 id="id70"><rect
1537 class="BoundingBox" 1537 class="BoundingBox"
1538 x="9999" 1538 x="9999"
1539 y="9450" 1539 y="9450"
1540 width="1202" 1540 width="1202"
1541 height="301" 1541 height="301"
1542 id="rect927" 1542 id="rect927"
1543 style="fill:none;stroke:none" /><path 1543 style="fill:none;stroke:none" /><path
1544 d="m 10000,9600 770,0" 1544 d="m 10000,9600 770,0"
1545 id="path929" 1545 id="path929"
1546 inkscape:connector-curvature="0" 1546 inkscape:connector-curvature="0"
1547 style="fill:none;stroke:#ff3333" /><path 1547 style="fill:none;stroke:#ff3333" /><path
1548 d="m 11200,9600 -450,-150 0,300 450,-150 z" 1548 d="m 11200,9600 -450,-150 0,300 450,-150 z"
1549 id="path931" 1549 id="path931"
1550 inkscape:connector-curvature="0" 1550 inkscape:connector-curvature="0"
1551 style="fill:#ff3333;stroke:none" /></g></g><g 1551 style="fill:#ff3333;stroke:none" /></g></g><g
1552 class="com.sun.star.drawing.LineShape" 1552 class="com.sun.star.drawing.LineShape"
1553 id="g933" 1553 id="g933"
1554 transform="translate(-3285.889,-3185.889)"><g 1554 transform="translate(-3285.889,-3185.889)"><g
1555 id="id71"><rect 1555 id="id71"><rect
1556 class="BoundingBox" 1556 class="BoundingBox"
1557 x="12399" 1557 x="12399"
1558 y="9450" 1558 y="9450"
1559 width="1202" 1559 width="1202"
1560 height="301" 1560 height="301"
1561 id="rect936" 1561 id="rect936"
1562 style="fill:none;stroke:none" /><path 1562 style="fill:none;stroke:none" /><path
1563 d="m 12400,9600 770,0" 1563 d="m 12400,9600 770,0"
1564 id="path938" 1564 id="path938"
1565 inkscape:connector-curvature="0" 1565 inkscape:connector-curvature="0"
1566 style="fill:none;stroke:#ff3333" /><path 1566 style="fill:none;stroke:#ff3333" /><path
1567 d="m 13600,9600 -450,-150 0,300 450,-150 z" 1567 d="m 13600,9600 -450,-150 0,300 450,-150 z"
1568 id="path940" 1568 id="path940"
1569 inkscape:connector-curvature="0" 1569 inkscape:connector-curvature="0"
1570 style="fill:#ff3333;stroke:none" /></g></g><g 1570 style="fill:#ff3333;stroke:none" /></g></g><g
1571 class="com.sun.star.drawing.LineShape" 1571 class="com.sun.star.drawing.LineShape"
1572 id="g942" 1572 id="g942"
1573 transform="translate(-3285.889,-3185.889)"><g 1573 transform="translate(-3285.889,-3185.889)"><g
1574 id="id72"><rect 1574 id="id72"><rect
1575 class="BoundingBox" 1575 class="BoundingBox"
1576 x="14799" 1576 x="14799"
1577 y="9450" 1577 y="9450"
1578 width="1202" 1578 width="1202"
1579 height="301" 1579 height="301"
1580 id="rect945" 1580 id="rect945"
1581 style="fill:none;stroke:none" /><path 1581 style="fill:none;stroke:none" /><path
1582 d="m 14800,9600 770,0" 1582 d="m 14800,9600 770,0"
1583 id="path947" 1583 id="path947"
1584 inkscape:connector-curvature="0" 1584 inkscape:connector-curvature="0"
1585 style="fill:none;stroke:#ff3333" /><path 1585 style="fill:none;stroke:#ff3333" /><path
1586 d="m 16000,9600 -450,-150 0,300 450,-150 z" 1586 d="m 16000,9600 -450,-150 0,300 450,-150 z"
1587 id="path949" 1587 id="path949"
1588 inkscape:connector-curvature="0" 1588 inkscape:connector-curvature="0"
1589 style="fill:#ff3333;stroke:none" /></g></g></svg> 1589 style="fill:#ff3333;stroke:none" /></g></g></svg>
diff --git a/Documentation/media/uapi/v4l/selection.svg b/Documentation/media/uapi/v4l/selection.svg
index d309187af967..a93e3b59786d 100644
--- a/Documentation/media/uapi/v4l/selection.svg
+++ b/Documentation/media/uapi/v4l/selection.svg
@@ -1,5812 +1,1151 @@
1<?xml version="1.0" encoding="UTF-8" standalone="no"?> 1<?xml version="1.0" encoding="UTF-8"?>
2<!-- Created with Inkscape (http://www.inkscape.org/) --> 2<svg enable-background="new" version="1" viewBox="0 0 4226.3 1686.8" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3 3 <defs>
4<svg 4 <pattern id="ig" xlink:href="#ka" patternTransform="matrix(5.4432 0 0 10.1 1722.4 161.06)"/>
5 xmlns:osb="http://www.openswatchbook.org/uri/2009/osb" 5 <marker id="er" overflow="visible" orient="auto">
6 xmlns:dc="http://purl.org/dc/elements/1.1/" 6 <path d="m-1.2 0l-1 1 3.5-1-3.5-1 1 1z" fill="#f8d615" fill-rule="evenodd" stroke="#f8d615" stroke-width=".2pt"/>
7 xmlns:cc="http://creativecommons.org/ns#" 7 </marker>
8 xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 8 <pattern id="ka" width="2" height="1" patternTransform="scale(10)" patternUnits="userSpaceOnUse">
9 xmlns:svg="http://www.w3.org/2000/svg" 9 <path d="M0-.5h1v2H0z" fill="#f815bb"/>
10 xmlns="http://www.w3.org/2000/svg" 10 </pattern>
11 xmlns:xlink="http://www.w3.org/1999/xlink" 11 <filter id="ep" x="-.085" y="-.366" width="1.169" height="1.732">
12 xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" 12 <feGaussianBlur stdDeviation="4.574"/>
13 xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" 13 </filter>
14 width="4226.3345" 14 <linearGradient id="n">
15 height="1686.8481" 15 <stop stop-color="#fff" offset="0"/>
16 id="svg2" 16 <stop stop-color="#fff" stop-opacity="0" offset="1"/>
17 sodipodi:version="0.32" 17 </linearGradient>
18 inkscape:version="0.91 r13725" 18 <linearGradient id="j">
19 sodipodi:docname="selection.svg" 19 <stop stop-color="#f9eed3" offset="0"/>
20 inkscape:output_extension="org.inkscape.output.svg.inkscape" 20 <stop stop-opacity="0" offset="1"/>
21 version="1.0" 21 </linearGradient>
22 style="display:inline;enable-background:new" 22 <linearGradient id="s">
23 inkscape:export-filename="/home/cheeseness/Documents/LCA09/mascot/tuz_final.png" 23 <stop stop-color="#283131" stop-opacity="0" offset="0"/>
24 inkscape:export-xdpi="100.03588" 24 <stop stop-color="#1e2424" offset=".5"/>
25 inkscape:export-ydpi="100.03588"> 25 <stop offset="1"/>
26 <sodipodi:namedview 26 </linearGradient>
27 id="base" 27 <linearGradient id="u">
28 pagecolor="#ffffff" 28 <stop stop-color="#cfc690" offset="0"/>
29 bordercolor="#666666" 29 <stop stop-color="#afa775" offset=".212"/>
30 borderopacity="1.0" 30 <stop stop-color="#615c3a" offset=".534"/>
31 gridtolerance="10000" 31 <stop offset=".765"/>
32 guidetolerance="10" 32 <stop stop-color="#403518" offset="1"/>
33 objecttolerance="10" 33 </linearGradient>
34 inkscape:pageopacity="0.0" 34 <radialGradient id="jd" cx="418.3" cy="342.48" r="131.45" gradientTransform="matrix(1.3957 .62111 -.42441 .95372 -15.062 -227.97)" gradientUnits="userSpaceOnUse">
35 inkscape:pageshadow="2" 35 <stop stop-color="#283131" offset="0"/>
36 inkscape:zoom="0.32297491" 36 <stop stop-color="#1e2424" offset=".5"/>
37 inkscape:cx="2113.1672" 37 <stop offset="1"/>
38 inkscape:cy="843.42407" 38 </radialGradient>
39 inkscape:document-units="px" 39 <filter id="iz" x="-.3" y="-.3" width="1.6" height="1.6">
40 inkscape:current-layer="layer16" 40 <feGaussianBlur stdDeviation="2"/>
41 showgrid="false" 41 </filter>
42 inkscape:window-width="1920" 42 <clipPath id="ea">
43 inkscape:window-height="997" 43 <path d="M179.64 267.36c-22.41 39.703-60.616 115.78-69.286 149.64-8.647 33.775-8.772 66.417-.357 86.429 8.36 19.882 26.164 35.633 40.714 41.429-.597-14.376 14.373-43.286 72.857-72.5 58.626-29.285 78.382-27.131 103.57-47.143 25.63-20.362 12.61-67.045 3.214-93.929-9.434-26.993-34.967-59.124-66.429-69.643-31.033-10.375-65.018-4.848-84.286 5.714z" fill="#f5ff04" fill-rule="evenodd"/>
44 inkscape:window-x="1920" 44 </clipPath>
45 inkscape:window-y="30" 45 <radialGradient id="iy" cx="275.44" cy="335.35" r="36.75" gradientTransform="matrix(.05911 2.687 -.72343 .01591 408.73 -424.56)" gradientUnits="userSpaceOnUse">
46 showguides="false" 46 <stop stop-color="#fff" offset="0"/>
47 inkscape:guide-bbox="true" 47 <stop stop-color="#fff" stop-opacity="0" offset="1"/>
48 units="mm" 48 </radialGradient>
49 inkscape:window-maximized="1" 49 <clipPath id="kb">
50 fit-margin-top="0" 50 <path d="m265.94 126.68l-18.767 168.86 174.11-73.121 61.954 88.659 57.884-31.99-37.534-180.06-237.64 27.649z" fill-rule="evenodd" stroke="#000" stroke-width=".9"/>
51 fit-margin-left="0" 51 </clipPath>
52 fit-margin-right="0" 52 <clipPath id="jz">
53 fit-margin-bottom="0" /> 53 <path d="M352.25 211.99c-3.804-25.264-16.81-50.638-17.157-75.525-.186-13.356 3.273-26.571 13.756-39.554 36.347-65.296 116.94-84.695 185.93-91.465 86.922-11.017 184.91 17.94 233.37 95.401 54.124 75.733 56.675 172.54 80.612 259.53 29.438 127.13 54.779 256.21 60.392 386.85-3.063 78.182-8.426 165.18-60.503 228.13-48.027 50.357-122.79 50.053-187.07 59.002-90.555 4.655-184.35-16.146-261.78-64.198-64.776-37.94-95.73-113.48-97.279-186.02-8.39-79.875 26.392-153.81 51.62-227.16 7.47-82.761 9.413-166.25 9.653-249.38-.837-32.195-7.09-63.817-11.546-95.609z" enable-background="accumulate" fill="#262f2f" fill-rule="evenodd" stroke="#000"/>
54 <defs 54 </clipPath>
55 id="defs4"> 55 <clipPath id="kd">
56 <pattern 56 <path d="M352.25 211.99c-3.804-25.264-16.81-50.638-17.157-75.525-.186-13.356 3.273-26.571 13.756-39.554 36.347-65.296 116.94-84.695 185.93-91.465 86.922-11.017 184.91 17.94 233.37 95.401 54.124 75.733 56.675 172.54 80.612 259.53 29.438 127.13 54.779 256.21 60.392 386.85-3.063 78.182-8.426 165.18-60.503 228.13-48.027 50.357-122.79 50.053-187.07 59.002-90.555 4.655-184.35-16.146-261.78-64.198-64.776-37.94-95.73-113.48-97.279-186.02-8.39-79.875 26.392-153.81 51.62-227.16 7.47-82.761 9.413-166.25 9.653-249.38-.837-32.195-7.09-63.817-11.546-95.609z" enable-background="accumulate" fill="#262f2f" fill-rule="evenodd" stroke="#000"/>
57 inkscape:collect="always" 57 </clipPath>
58 xlink:href="#Strips1_1" 58 <clipPath id="jx">
59 id="pattern5557" 59 <path d="M352.25 211.99c-3.804-25.264-16.81-50.638-17.157-75.525-.186-13.356 3.273-26.571 13.756-39.554 36.347-65.296 116.94-84.695 185.93-91.465 86.922-11.017 184.91 17.94 233.37 95.401 54.124 75.733 56.675 172.54 80.612 259.53 29.438 127.13 54.779 256.21 60.392 386.85-3.063 78.182-8.426 165.18-60.503 228.13-48.027 50.357-122.79 50.053-187.07 59.002-90.555 4.655-184.35-16.146-261.78-64.198-64.776-37.94-95.73-113.48-97.279-186.02-8.39-79.875 26.392-153.81 51.62-227.16 7.47-82.761 9.413-166.25 9.653-249.38-.837-32.195-7.09-63.817-11.546-95.609z" enable-background="accumulate" fill="#262f2f" fill-rule="evenodd" stroke="#000"/>
60 patternTransform="matrix(5.4431804,0,0,10.10048,1808.3554,-48.222348)" /> 60 </clipPath>
61 <marker 61 <clipPath id="en">
62 inkscape:stockid="Arrow1Send" 62 <path d="M352.25 211.99c-3.804-25.264-16.81-50.638-17.157-75.525-.186-13.356 3.273-26.571 13.756-39.554 36.347-65.296 116.94-84.695 185.93-91.465 86.922-11.017 184.91 17.94 233.37 95.401 54.124 75.733 56.675 172.54 80.612 259.53 29.438 127.13 54.779 256.21 60.392 386.85-3.063 78.182-8.426 165.18-60.503 228.13-48.027 50.357-122.79 50.053-187.07 59.002-90.555 4.655-184.35-16.146-261.78-64.198-64.776-37.94-95.73-113.48-97.279-186.02-8.39-79.875 26.392-153.81 51.62-227.16 7.47-82.761 9.413-166.25 9.653-249.38-.837-32.195-7.09-63.817-11.546-95.609z" enable-background="accumulate" fill="#262f2f" fill-rule="evenodd" stroke="#000"/>
63 orient="auto" 63 </clipPath>
64 refY="0" 64 <clipPath id="jw">
65 refX="0" 65 <path d="M821.64 477.89s22.619-6.507 35.743-5.873c13.123.634 30.642 1.939 43.709 12.186 13.067 10.248 25.068 27.14 34.112 58.37s1.698 99.252-6.176 143.35-28.265 106.11-45 140-49.798 77.495-60.569 89.876c-11.364 13.062-56.206 36.426-79.431 42.267 5.303-10.607 48.9-50.589 35-60.714-14.019-10.212-45.76 45.982-84.293 29.033 21.382-13.132 41.779-51.186 34.041-66.594-7.84-15.61-30.705 48.758-93.536 37.013 30.052-27.527 55.407-70.904 41.263-82.98-14.415-12.307-60.462 54.293-60.462 54.293s-2.822-41.7 13.773-68.607c16.639-26.978 79.653-81.615 99.553-111.7 19.9-30.088 33.613-66.009 42.135-92.518s15.801-77.1 15.801-77.1" enable-background="new" fill="#202020" fill-rule="evenodd" stroke="#000"/>
66 id="Arrow1Send" 66 </clipPath>
67 style="overflow:visible" 67 <clipPath id="kp">
68 inkscape:isstock="true"> 68 <path d="m366.89 504.13s-29.554 40.573-47.857 74.286-58.621 126.36-70.357 171.07c-11.759 44.803-62.5 123.57-62.5 123.57l76.071 18.214s11.807-12.823 31.071-46.071 60.357-138.57 60.357-138.57l13.214-202.5z" enable-background="accumulate" fill="#0f0f0f" fill-rule="evenodd" stroke="#000"/>
69 <path 69 </clipPath>
70 id="path7188" 70 <clipPath id="eo">
71 d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z" 71 <path d="M569.03 1018.8c-4.286.714-27.628 3.618-57.857 10s-99.775 25.962-142.86 35.714-117.26 34.816-156.91 27.265c-39.648-7.55-89.516-64.408-89.516-64.408l4.286-94.286s85.886-16.201 112.14-33.571c26.257-17.37 45.582-49.666 59.286-71.429s32.857-71.429 32.857-71.429l238.57 262.14z" enable-background="accumulate" fill="#0b0b0b" fill-rule="evenodd" stroke="#000"/>
72 style="fill:#f8d615;fill-opacity:1;fill-rule:evenodd;stroke:#f8d615;stroke-width:1pt;stroke-opacity:1" 72 </clipPath>
73 transform="matrix(-0.2,0,0,-0.2,-1.2,0)" 73 <filter id="kc" x="-.353" y="-.182" width="1.706" height="1.363">
74 inkscape:connector-curvature="0" /> 74 <feGaussianBlur stdDeviation="48.038"/>
75 </marker> 75 </filter>
76 <pattern 76 <filter id="jb" x="-.611" y="-.149" width="2.223" height="1.299">
77 inkscape:isstock="true" 77 <feGaussianBlur stdDeviation="37.83"/>
78 inkscape:stockid="Stripes 1:1" 78 </filter>
79 id="Strips1_1" 79 <filter id="eg" x="-.235" y="-.245" width="1.47" height="1.49">
80 patternTransform="translate(0,0) scale(10,10)" 80 <feGaussianBlur stdDeviation="58.328"/>
81 height="1" 81 </filter>
82 width="2" 82 <filter id="jy" x="-.205" y="-.29" width="1.409" height="1.58">
83 patternUnits="userSpaceOnUse" 83 <feGaussianBlur stdDeviation="22.3"/>
84 inkscape:collect="always"> 84 </filter>
85 <rect 85 <filter id="jv" x="-.344" y="-.184" width="1.688" height="1.369">
86 id="rect5945" 86 <feGaussianBlur stdDeviation="34.542"/>
87 height="2" 87 </filter>
88 width="1" 88 <filter id="kf" x="-.274" y="-.213" width="1.549" height="1.427">
89 y="-0.5" 89 <feGaussianBlur stdDeviation="11.314"/>
90 x="0" 90 </filter>
91 style="fill:#f815bb;stroke:none" /> 91 <filter id="ja" x="-.259" y="-.224" width="1.518" height="1.447">
92 </pattern> 92 <feGaussianBlur stdDeviation="19.632"/>
93 <linearGradient 93 </filter>
94 id="linearGradient10954" 94 <filter id="kq" x="-.325" y="-.19" width="1.651" height="1.38">
95 osb:paint="solid"> 95 <feGaussianBlur stdDeviation="28.713"/>
96 <stop 96 </filter>
97 style="stop-color:#d9f90b;stop-opacity:1;" 97 <filter id="ko" x="-.381" y="-.175" width="1.762" height="1.35">
98 offset="0" 98 <feGaussianBlur stdDeviation="19.304"/>
99 id="stop10956" /> 99 </filter>
100 </linearGradient> 100 <filter id="kv" x="-.211" y="-.168" width="1.422" height="1.336">
101 <linearGradient 101 <feGaussianBlur stdDeviation="8.369"/>
102 id="linearGradient9165" 102 </filter>
103 osb:paint="solid"> 103 <filter id="ks" x="-.187" y="-.236" width="1.374" height="1.473">
104 <stop 104 <feGaussianBlur stdDeviation="31.212"/>
105 style="stop-color:#000000;stop-opacity:0.31330472;" 105 </filter>
106 offset="0" 106 <clipPath id="ju">
107 id="stop9167" /> 107 <path d="M352.25 211.99c-3.804-25.264-16.81-50.638-17.157-75.525-.186-13.356 3.273-26.571 13.756-39.554 36.347-65.296 116.94-84.695 185.93-91.465 86.922-11.017 184.91 17.94 233.37 95.401 54.124 75.733 56.675 172.54 80.612 259.53 29.438 127.13 54.779 256.21 60.392 386.85-3.063 78.182-8.426 165.18-60.503 228.13-48.027 50.357-122.79 50.053-187.07 59.002-90.555 4.655-184.35-16.146-261.78-64.198-64.776-37.94-95.73-113.48-97.279-186.02-8.39-79.875 26.392-153.81 51.62-227.16 7.47-82.761 9.413-166.25 9.653-249.38-.837-32.195-7.09-63.817-11.546-95.609z" enable-background="accumulate" fill="#262f2f" fill-rule="evenodd" stroke="#000"/>
108 </linearGradient> 108 </clipPath>
109 <filter 109 <filter id="ki" x="-.252" y="-.053" width="1.503" height="1.106">
110 inkscape:collect="always" 110 <feGaussianBlur stdDeviation="13.025"/>
111 x="-0.084654994" 111 </filter>
112 width="1.16931" 112 <linearGradient id="t" x1="603.84" x2="616.24" y1="627.85" y2="585.43" gradientTransform="translate(450.03 73.844)" gradientUnits="userSpaceOnUse">
113 y="-0.36592469" 113 <stop stop-color="#1a1a1a" offset="0"/>
114 height="1.7318494" 114 <stop stop-color="#1a1a1a" stop-opacity="0" offset="1"/>
115 id="filter11361"> 115 </linearGradient>
116 <feGaussianBlur 116 <filter id="dq" x="-.329" y="-.182" width="1.657" height="1.364">
117 inkscape:collect="always" 117 <feGaussianBlur stdDeviation="20.913"/>
118 stdDeviation="4.5740586" 118 </filter>
119 id="feGaussianBlur11363" /> 119 <filter id="dr" x="-.555" y="-.514" width="2.109" height="2.029">
120 </filter> 120 <feGaussianBlur stdDeviation="20.913"/>
121 <linearGradient 121 </filter>
122 id="linearGradient7622"> 122 <filter id="cy" x="-.326" y="-.845" width="1.653" height="2.691">
123 <stop 123 <feGaussianBlur stdDeviation="21.92"/>
124 style="stop-color:#ffffff;stop-opacity:1;" 124 </filter>
125 offset="0" 125 <filter id="he" x="-.409" y="-.715" width="1.818" height="2.431">
126 id="stop7624" /> 126 <feGaussianBlur stdDeviation="21.92"/>
127 <stop 127 </filter>
128 style="stop-color:#ffffff;stop-opacity:0;" 128 <filter id="o">
129 offset="1" 129 <feGaussianBlur stdDeviation="8.881"/>
130 id="stop7626" /> 130 </filter>
131 </linearGradient> 131 <clipPath id="jt">
132 <linearGradient 132 <path d="M647.61 540.05s22.619-6.507 35.743-5.873c13.123.634 30.642 1.939 43.709 12.186 13.067 10.248 25.068 27.14 34.112 58.37s1.698 99.252-6.176 143.35-28.265 106.11-45 140-49.798 77.495-60.569 89.876c-11.364 13.062-56.206 36.426-79.431 42.267 5.303-10.607 48.9-50.589 35-60.714-14.019-10.212-45.76 45.982-84.293 29.033 21.382-13.132 41.779-51.186 34.041-66.594-7.84-15.61-30.705 48.758-93.536 37.013 30.052-27.527 55.407-70.904 41.263-82.98-14.415-12.307-60.462 54.293-60.462 54.293s-2.822-41.7 13.773-68.607c16.639-26.978 79.653-81.615 99.553-111.7 19.9-30.088 33.613-66.009 42.135-92.518s15.801-77.1 15.801-77.1" enable-background="new" fill="#202020" fill-rule="evenodd"/>
133 id="linearGradient4113"> 133 </clipPath>
134 <stop 134 <filter id="je" x="-.277" y="-.325" width="1.554" height="1.65">
135 style="stop-color:#000000;stop-opacity:0;" 135 <feGaussianBlur stdDeviation="19.956"/>
136 offset="0" 136 </filter>
137 id="stop4115" /> 137 <clipPath id="e">
138 <stop 138 <path d="M760.16 935.83c6.794 18.903 10.494 33.3 11.89 51.212 1.397 17.912-3.783 51.801-2.9 70.656.881 18.845 8.133 40.099 27.345 48.969 19.419 8.966 49.319 10.211 74.12-3.146 24.8-13.357 57.4-70.326 70.974-97.309 13.624-27.084 38.76-114.5 44.66-149.77 5.9-35.27 2.551-41.3-4.617-49.055 2.64-27.84-1.5-54.935 13.11-87.186-30.249 11.826-37.382 40.161-48.319 65.505-8-50.933.21-71.273 3.319-101.22-29.065 14.778-42.862 47.114-45 92.857-10.924-1.304-21.391-4.434-33.571-.714-.264-46.023-1.464-76.889 8.91-114.21-53.254 21.027-62.946 106.59-56.052 112.78-10.883.535-21.371-1.297-32.857 2.857.638-42.57-.261-84.909-30-122.86 0 0-30.958 80.922-31.43 103.57s9.452 40.166 9.452 40.166-8.568 36.741-6.298 58.232c2.295 21.741 20.443 59.676 27.265 78.658z" enable-background="new" fill="#ada469" fill-rule="evenodd"/>
139 style="stop-color:#000000;stop-opacity:1;" 139 </clipPath>
140 offset="1" 140 <clipPath id="kr">
141 id="stop4117" /> 141 <path d="m366.89 504.13s-29.554 40.573-47.857 74.286-58.621 126.36-70.357 171.07c-11.759 44.803-62.5 123.57-62.5 123.57l76.071 18.214s11.807-12.823 31.071-46.071 60.357-138.57 60.357-138.57l13.214-202.5z" enable-background="accumulate" fill="#0f0f0f" fill-rule="evenodd"/>
142 </linearGradient> 142 </clipPath>
143 <linearGradient 143 <clipPath id="am">
144 inkscape:collect="always" 144 <path d="M586.13 997.99c6.794 18.903 10.494 33.3 11.89 51.212 1.397 17.912-3.783 51.801-2.9 70.656.881 18.845 8.133 40.099 27.345 48.969 19.419 8.966 49.319 10.211 74.12-3.146 24.8-13.357 57.4-70.326 70.974-97.309 13.624-27.084 38.76-114.5 44.66-149.77 5.9-35.27 2.551-41.3-4.617-49.055 2.64-27.84-1.5-54.935 13.11-87.186-30.249 11.826-37.382 40.161-48.319 65.505-8-50.933.21-71.273 3.319-101.22-29.065 14.778-42.862 47.114-45 92.857-10.924-1.304-21.391-4.434-33.571-.714-.264-46.023-1.464-76.889 8.91-114.21-53.254 21.027-62.946 106.59-56.052 112.78-10.883.535-21.371-1.297-32.857 2.857.638-42.57-.261-84.909-30-122.86 0 0-30.958 80.922-31.43 103.57s9.452 40.166 9.452 40.166-8.568 36.741-6.298 58.232c2.295 21.741 20.443 59.676 27.265 78.658z" enable-background="new" fill="#ada469" fill-rule="evenodd"/>
145 id="linearGradient3660"> 145 </clipPath>
146 <stop 146 <filter id="ds">
147 style="stop-color:#ffffff;stop-opacity:1;" 147 <feGaussianBlur stdDeviation="10.893"/>
148 offset="0" 148 </filter>
149 id="stop3662" /> 149 <filter id="bz" x="-.495" y="-.267" width="1.99" height="1.534">
150 <stop 150 <feGaussianBlur stdDeviation="10.731"/>
151 style="stop-color:#ffffff;stop-opacity:0;" 151 </filter>
152 offset="1" 152 <filter id="by" x="-.406" y="-.303" width="1.812" height="1.605">
153 id="stop3664" /> 153 <feGaussianBlur stdDeviation="9.859"/>
154 </linearGradient> 154 </filter>
155 <linearGradient 155 <clipPath id="cj">
156 id="linearGradient3627"> 156 <path d="M586.13 997.99c6.794 18.903 10.494 33.3 11.89 51.212 1.397 17.912-3.783 51.801-2.9 70.656.881 18.845 8.133 40.099 27.345 48.969 19.419 8.966 49.319 10.211 74.12-3.146 24.8-13.357 57.4-70.326 70.974-97.309 13.624-27.084 38.76-114.5 44.66-149.77 5.9-35.27 2.551-41.3-4.617-49.055 2.64-27.84-1.5-54.935 13.11-87.186-30.249 11.826-37.382 40.161-48.319 65.505-8-50.933.21-71.273 3.319-101.22-29.065 14.778-42.862 47.114-45 92.857-10.924-1.304-21.391-4.434-33.571-.714-.264-46.023-1.464-76.889 8.91-114.21-53.254 21.027-62.946 106.59-56.052 112.78-10.883.535-21.371-1.297-32.857 2.857.638-42.57-.261-84.909-30-122.86 0 0-30.958 80.922-31.43 103.57s9.452 40.166 9.452 40.166-8.568 36.741-6.298 58.232c2.295 21.741 20.443 59.676 27.265 78.658z" enable-background="new" fill="#ada469" fill-rule="evenodd"/>
157 <stop 157 </clipPath>
158 style="stop-color:#ffffff;stop-opacity:1;" 158 <filter id="il">
159 offset="0" 159 <feGaussianBlur stdDeviation="3.616"/>
160 id="stop3629" /> 160 </filter>
161 <stop 161 <filter id="ir">
162 style="stop-color:#000000;stop-opacity:1;" 162 <feGaussianBlur stdDeviation="3.864"/>
163 offset="1" 163 </filter>
164 id="stop3631" /> 164 <clipPath id="ku">
165 </linearGradient> 165 <path d="M569.03 1018.8c-4.286.714-27.628 3.618-57.857 10s-57.314 4.966-135.79 17.33c-79.852 12.581-94.064 42.542-108.12 47.064-14.7 4.729-145.38-65.822-145.38-65.822l4.286-94.286s85.886-16.201 112.14-33.571c26.257-17.37 45.582-49.666 59.286-71.429s32.857-71.429 32.857-71.429l238.57 262.14z" enable-background="accumulate" fill="#292929" fill-rule="evenodd" stroke="#000"/>
166 <linearGradient 166 </clipPath>
167 id="linearGradient2843"> 167 <linearGradient id="dt" x1="699.33" x2="698.98" y1="269.77" y2="346.14" gradientUnits="userSpaceOnUse">
168 <stop 168 <stop stop-color="#fff" offset="0"/>
169 id="stop2845" 169 <stop offset="1"/>
170 offset="0" 170 </linearGradient>
171 style="stop-color:#000000;stop-opacity:1;" /> 171 <mask id="jc" maskUnits="userSpaceOnUse">
172 <stop 172 <ellipse transform="translate(-174.03 62.156)" cx="579.47" cy="260.58" rx="192.69" ry="164.05" enable-background="accumulate" fill="url(#dt)"/>
173 style="stop-color:#000000;stop-opacity:1;" 173 </mask>
174 offset="0.02188784" 174 <clipPath id="is">
175 id="stop2847" /> 175 <path d="m266.27 924.57c-1.407 18.801-1.145 32.751 2.082 49.303s16.406 45.907 20.334 63.184c3.926 17.267 2.694 38.31-12.46 51.148-15.317 12.977-42.05 21.599-67.831 15.734s-69.55-49.223-88.59-70.228c-19.112-21.083-63.761-93.851-77.94-124.28-14.177-30.425-12.66-36.719-8.119-45.53-9.367-24.52-12.414-50.067-33.712-75.577 30.325 3.114 43.88 26.956 60.126 47.14-5.53-48.076-18.055-64.416-28.374-90.724 29.994 6.082 50.579 31.872 63.98 72.712 9.554-3.918 18.238-9.373 30.187-9.061-11.298-41.696-17.949-69.916-36.687-101.07 53.442 5.67 83.657 80.639 78.971 87.96 9.978-2.243 19.006-6.53 30.437-5.65-11.249-38.348-21.048-76.869-3.66-118.65 0 0 48.287 65.436 54.39 85.805 6.103 20.37 1.52 38.701 1.52 38.701s16.96 31.085 20.293 51.094c3.373 20.241-3.533 59.103-4.946 77.983z" enable-background="new" fill="#ada469" fill-rule="evenodd"/>
176 <stop 176 </clipPath>
177 style="stop-color:#000000;stop-opacity:1;" 177 <clipPath id="im">
178 offset="0.75866222" 178 <path d="M760.16 935.83c6.794 18.903 10.494 33.3 11.89 51.212 1.397 17.912-3.783 51.801-2.9 70.656.881 18.845 8.133 40.099 27.345 48.969 19.419 8.966 49.319 10.211 74.12-3.146 24.8-13.357 57.4-70.326 70.974-97.309 13.624-27.084 38.76-114.5 44.66-149.77 5.9-35.27 2.551-41.3-4.617-49.055 2.64-27.84-1.5-54.935 13.11-87.186-30.249 11.826-37.382 40.161-48.319 65.505-8-50.933.21-71.273 3.319-101.22-29.065 14.778-42.862 47.114-45 92.857-10.924-1.304-21.391-4.434-33.571-.714-.264-46.023-1.464-76.889 8.91-114.21-53.254 21.027-62.946 106.59-56.052 112.78-10.883.535-21.371-1.297-32.857 2.857.638-42.57-.261-84.909-30-122.86 0 0-30.958 80.922-31.43 103.57s9.452 40.166 9.452 40.166-8.568 36.741-6.298 58.232c2.295 21.741 20.443 59.676 27.265 78.658z" enable-background="new" fill="#ada469" fill-rule="evenodd" stroke="#000"/>
179 id="stop2849" /> 179 </clipPath>
180 <stop 180 <filter id="jq" x="-.088" y="-.177" width="1.176" height="1.355">
181 id="stop2851" 181 <feGaussianBlur stdDeviation="16.34"/>
182 offset="0.88508981" 182 </filter>
183 style="stop-color:#232323;stop-opacity:1;" /> 183 <filter id="i">
184 <stop 184 <feTurbulence baseFrequency=".24" numOctaves="10" result="result0" seed="655" type="fractalNoise"/>
185 id="stop2853" 185 <feDisplacementMap in="SourceGraphic" in2="result0" scale="62" xChannelSelector="B" yChannelSelector="G"/>
186 offset="1" 186 </filter>
187 style="stop-color:#595959;stop-opacity:1;" /> 187 <filter id="em">
188 </linearGradient> 188 <feGaussianBlur stdDeviation="2.04"/>
189 <linearGradient 189 </filter>
190 inkscape:collect="always" 190 <clipPath id="jo">
191 id="linearGradient8964"> 191 <path d="m709.29 844.51c54.286-1.429 126.04-15.052 170-26.786 44.053-11.757 125.89-36.347 175.36-57.857 49.339-21.453 113.6-59.282 154.29-92.143 40.508-32.721 52.39-55.82 60.714-33.571 8.37 22.368-16.407 56.326-37.857 81.071-21.604 24.923-52.731 52.705-98.929 89.286s-156.08 101.58-212.86 128.57c-57.066 27.125-128.2 58.238-172.14 72.5s-131.43 31.071-131.43 31.071l92.857-192.14z" enable-background="accumulate" fill="#121212" fill-rule="evenodd"/>
192 <stop 192 </clipPath>
193 style="stop-color:#1a1a1a;stop-opacity:1;" 193 <clipPath id="jp">
194 offset="0" 194 <path d="m709.29 844.51c54.286-1.429 126.04-15.052 170-26.786 44.053-11.757 125.89-36.347 175.36-57.857 49.339-21.453 113.6-59.282 154.29-92.143 40.508-32.721 52.39-55.82 60.714-33.571 8.37 22.368-16.407 56.326-37.857 81.071-21.604 24.923-52.731 52.705-98.929 89.286s-156.08 101.58-212.86 128.57c-57.066 27.125-128.2 58.238-172.14 72.5s-131.43 31.071-131.43 31.071l92.857-192.14z" enable-background="accumulate" fill="#121212" fill-rule="evenodd"/>
195 id="stop8966" /> 195 </clipPath>
196 <stop 196 <clipPath id="js">
197 style="stop-color:#1a1a1a;stop-opacity:0;" 197 <path d="m709.29 844.51c54.286-1.429 126.04-15.052 170-26.786 44.053-11.757 125.89-36.347 175.36-57.857 49.339-21.453 113.6-59.282 154.29-92.143 40.508-32.721 52.39-55.82 60.714-33.571 8.37 22.368-16.407 56.326-37.857 81.071-21.604 24.923-52.731 52.705-98.929 89.286s-156.08 101.58-212.86 128.57c-57.066 27.125-128.2 58.238-172.14 72.5s-131.43 31.071-131.43 31.071l92.857-192.14z" enable-background="accumulate" fill="#121212" fill-rule="evenodd"/>
198 offset="1" 198 </clipPath>
199 id="stop8968" /> 199 <clipPath id="ke">
200 </linearGradient> 200 <path d="M178.21 274.15c-3.804-25.264-16.81-50.638-17.157-75.525-.186-13.356 3.273-26.571 13.756-39.554 36.347-65.296 116.94-84.695 185.93-91.465 86.922-11.017 184.91 17.94 233.37 95.401 54.124 75.733 56.675 172.54 80.612 259.53 29.438 127.13 54.779 256.21 60.392 386.85-3.063 78.182-8.426 165.18-60.503 228.13-48.027 50.357-122.79 50.053-187.07 59.002-90.555 4.655-184.35-16.146-261.78-64.198-64.776-37.94-95.73-113.48-97.279-186.02-8.39-79.875 26.392-153.81 51.62-227.16 7.47-82.761 9.413-166.25 9.653-249.38-.837-32.195-7.09-63.817-11.546-95.609z" enable-background="accumulate" fill="#262f2f" fill-rule="evenodd"/>
201 <linearGradient 201 </clipPath>
202 id="linearGradient8952"> 202 <filter id="iv" x="-.243" y="-.391" width="1.487" height="1.782">
203 <stop 203 <feGaussianBlur stdDeviation="14.59"/>
204 style="stop-color:#0a0c0c;stop-opacity:1;" 204 </filter>
205 offset="0" 205 <filter id="iu" x="-.146" y="-.235" width="1.292" height="1.47">
206 id="stop8954" /> 206 <feGaussianBlur stdDeviation="4.444"/>
207 <stop 207 </filter>
208 style="stop-color:#1f2727;stop-opacity:0;" 208 <filter id="it">
209 offset="1" 209 <feGaussianBlur stdDeviation=".606"/>
210 id="stop8956" /> 210 </filter>
211 </linearGradient> 211 <filter id="ix">
212 <linearGradient 212 <feGaussianBlur stdDeviation="6.589"/>
213 id="linearGradient8430"> 213 </filter>
214 <stop 214 <filter id="iw">
215 style="stop-color:#1e2323;stop-opacity:1;" 215 <feGaussianBlur stdDeviation="1.505"/>
216 offset="0" 216 </filter>
217 id="stop8432" /> 217 <filter id="jj" x="-.103" y="-.342" width="1.206" height="1.685">
218 <stop 218 <feGaussianBlur stdDeviation="1.168"/>
219 id="stop8438" 219 </filter>
220 offset="0.55992389" 220 <filter id="jf" x="-.098" y="-.198" width="1.197" height="1.395">
221 style="stop-color:#181d1d;stop-opacity:1;" /> 221 <feGaussianBlur stdDeviation="1.168"/>
222 <stop 222 </filter>
223 style="stop-color:#000000;stop-opacity:1;" 223 <filter id="jh" x="-.098" y="-.198" width="1.196" height="1.397">
224 offset="1" 224 <feGaussianBlur stdDeviation="1.168"/>
225 id="stop8434" /> 225 </filter>
226 </linearGradient> 226 <filter id="ji" x="-.099" y="-.226" width="1.198" height="1.453">
227 <linearGradient 227 <feGaussianBlur stdDeviation="1.168"/>
228 id="linearGradient8398"> 228 </filter>
229 <stop 229 <filter id="hy" x="-.099" y="-.225" width="1.198" height="1.451">
230 style="stop-color:#283131;stop-opacity:0;" 230 <feGaussianBlur stdDeviation="1.168"/>
231 offset="0" 231 </filter>
232 id="stop8400" /> 232 <filter id="hu" x="-.105" y="-.405" width="1.209" height="1.809">
233 <stop 233 <feGaussianBlur stdDeviation="1.168"/>
234 id="stop8402" 234 </filter>
235 offset="0.5125587" 235 <filter id="hv" x="-.103" y="-.364" width="1.207" height="1.729">
236 style="stop-color:#1e2424;stop-opacity:0;" /> 236 <feGaussianBlur stdDeviation="1.168"/>
237 <stop 237 </filter>
238 style="stop-color:#000000;stop-opacity:1;" 238 <filter id="hw" x="-.102" y="-.324" width="1.204" height="1.647">
239 offset="1" 239 <feGaussianBlur stdDeviation="1.168"/>
240 id="stop8404" /> 240 </filter>
241 </linearGradient> 241 <filter id="hx" x="-.101" y="-.274" width="1.201" height="1.548">
242 <linearGradient 242 <feGaussianBlur stdDeviation="1.168"/>
243 inkscape:collect="always" 243 </filter>
244 id="linearGradient4870"> 244 <filter id="hz" x="-.098" y="-.209" width="1.197" height="1.417">
245 <stop 245 <feGaussianBlur stdDeviation="1.168"/>
246 style="stop-color:#c7bd80;stop-opacity:1;" 246 </filter>
247 offset="0" 247 <filter id="ia" x="-.098" y="-.203" width="1.197" height="1.406">
248 id="stop4872" /> 248 <feGaussianBlur stdDeviation="1.168"/>
249 <stop 249 </filter>
250 style="stop-color:#c7bd80;stop-opacity:0;" 250 <filter id="ib" x="-.098" y="-.198" width="1.196" height="1.397">
251 offset="1" 251 <feGaussianBlur stdDeviation="1.168"/>
252 id="stop4874" /> 252 </filter>
253 </linearGradient> 253 <filter id="jg">
254 <linearGradient 254 <feGaussianBlur stdDeviation="1.168"/>
255 inkscape:collect="always" 255 </filter>
256 id="linearGradient4862"> 256 <filter id="jk">
257 <stop 257 <feGaussianBlur stdDeviation="1.168"/>
258 style="stop-color:#e2e2e2;stop-opacity:1;" 258 </filter>
259 offset="0" 259 <filter id="hr" x="-.031" y="-.103" width="1.062" height="1.205">
260 id="stop4864" /> 260 <feGaussianBlur stdDeviation=".35"/>
261 <stop 261 </filter>
262 style="stop-color:#e2e2e2;stop-opacity:0;" 262 <filter id="hq">
263 offset="1" 263 <feGaussianBlur stdDeviation=".35"/>
264 id="stop4866" /> 264 </filter>
265 </linearGradient> 265 <filter id="hp">
266 <linearGradient 266 <feGaussianBlur stdDeviation=".35"/>
267 id="linearGradient4478"> 267 </filter>
268 <stop 268 <filter id="hn">
269 style="stop-color:#f9eed3;stop-opacity:1;" 269 <feGaussianBlur stdDeviation=".35"/>
270 offset="0" 270 </filter>
271 id="stop4480" /> 271 <filter id="hm">
272 <stop 272 <feGaussianBlur stdDeviation=".35"/>
273 style="stop-color:#000000;stop-opacity:0;" 273 </filter>
274 offset="1" 274 <filter id="hl">
275 id="stop4482" /> 275 <feGaussianBlur stdDeviation=".35"/>
276 </linearGradient> 276 </filter>
277 <linearGradient 277 <filter id="hk">
278 id="linearGradient4106"> 278 <feGaussianBlur stdDeviation=".35"/>
279 <stop 279 </filter>
280 style="stop-color:#d9e002;stop-opacity:1;" 280 <filter id="hj">
281 offset="0" 281 <feGaussianBlur stdDeviation=".35"/>
282 id="stop4108" /> 282 </filter>
283 <stop 283 <filter id="hi">
284 id="stop4114" 284 <feGaussianBlur stdDeviation=".35"/>
285 offset="0.5" 285 </filter>
286 style="stop-color:#a9ae01;stop-opacity:1;" /> 286 <filter id="hh">
287 <stop 287 <feGaussianBlur stdDeviation=".35"/>
288 style="stop-color:#717501;stop-opacity:1;" 288 </filter>
289 offset="1" 289 <filter id="hf" x="-.031" y="-.121" width="1.063" height="1.243">
290 id="stop4110" /> 290 <feGaussianBlur stdDeviation=".35"/>
291 </linearGradient> 291 </filter>
292 <linearGradient 292 <filter id="hg" x="-.031" y="-.109" width="1.062" height="1.219">
293 id="linearGradient4084"> 293 <feGaussianBlur stdDeviation=".35"/>
294 <stop 294 </filter>
295 style="stop-color:#7d7d00;stop-opacity:1;" 295 <filter id="hs">
296 offset="0" 296 <feGaussianBlur stdDeviation=".35"/>
297 id="stop4086" /> 297 </filter>
298 <stop 298 <filter id="ho">
299 id="stop4088" 299 <feGaussianBlur stdDeviation=".35"/>
300 offset="0.3636601" 300 </filter>
301 style="stop-color:#c6c700;stop-opacity:1;" /> 301 <filter id="ht">
302 <stop 302 <feGaussianBlur stdDeviation="1.723"/>
303 style="stop-color:#f6f800;stop-opacity:1;" 303 </filter>
304 offset="1" 304 <clipPath id="jl">
305 id="stop4090" /> 305 <path transform="translate(.08 -.031)" d="M1111.4-285.94l-3.937 1.875c-.041.01-.1.02-.125.031-.42.213-.165.1-.657.313-.486.21-1.737.584-4.093 1.469-3.332 1.25-5.805 2.15-7 3.062-1.537.021-3.72.233-5.657.719a227.677 227.677 0 0 1-6.75 1.594c-1.895.42-1.675.642-2.875.875-1.296.251-1.721-.01-5.437.78-3.49.743-8.895 1.932-10.156 2.688-1.584-.18-3.868-.321-5.844-.03-3.04.446-4.916.672-6.844.905-.655.08-1.04.201-1.344.282-.426.131-.685.26-1.375.343-1.311.16-1.762-.156-5.53.282-3.555.413-9.006 1.272-10.25 1.937-1.6-.297-3.859-.534-5.845-.344-3.058.294-4.972.484-6.906.657-1.934.172-1.688.422-2.906.53-1.316.119-1.76-.163-5.531.25-3.542.39-9.008 1.21-10.281 1.876-1.6-.295-3.887-.507-5.875-.313-3.059.3-4.941.48-6.875.657-.658.06-1.04.178-1.344.25-.428.119-.683.218-1.375.28-1.316.121-1.76-.194-5.531.22-3.556.39-9.006 1.239-10.25
306 </linearGradient> 3061.906-1.599-.294-3.86-.524-5.844-.313-3.056.326-4.974.527-6.906.719s-1.69.44-2.906.563c-1.315.131-1.763-.165-5.532.28-3.539.42-8.977 1.293-10.25 1.97-1.597-.281-3.86-.42-5.843-.188-3.052.358-4.945.568-6.875.781-.657.073-1.041.173-1.344.25-.427.128-.685.268-1.375.344-1.314.146-1.768-.174-5.531.313-3.55.458-8.979 1.419-10.22 2.125-1.593-.245-3.833-.382-5.812-.125-3.048.394-4.95.648-6.875.906-1.924.258-1.726.493-2.937.656-1.31.176-1.748-.104-5.5.469-3.525.538-8.924 1.699-10.188 2.437-1.588-.203-3.846-.254-5.813.094-3.026.536-4.899.862-6.812 1.188-.651.11-1.014.27-1.313.375-.42.164-.663.33-1.344.468-1.294.262-1.727-.006-5.437.813-3.499.772-8.846 2.383-10.062 3.219-1.563-.078-3.758.085-5.688.593-2.972.783-4.817 1.232-6.687 1.75s-1.667.768-2.844 1.094c-1.273.353-1.697.107-5.344 1.188-3.425 1.014-8.65 2.933-9.875 3.843-1.539.013-3.72.273-5.625.875-2.93.928-4.75 1.459-6.594
307 <linearGradient 3072.063-.626.205-.991.393-1.28.531-.408.214-.654.409-1.313.625-1.255.412-1.687.19-5.282 1.438-3.39 1.177-8.595 3.213-9.78 4.156-1.525.06-3.65.395-5.532 1.062-2.897 1.029-4.699 1.676-6.531 2.313-1.832.637-1.628.848-2.781 1.25-1.247.434-1.664.2-5.22 1.562-3.338 1.28-8.486 3.483-9.687 4.47-1.507.107-3.635.498-5.5 1.218a1047.26 1047.26 0 0 1-6.437 2.469c-.617.233-.997.442-1.281.594v.03l-8 3.188 1.812 14.72c-.258-.062 6.188 3.312 6.188 3.312.226-.145.449-.273.718-.375 1.08-.41 2.172-.216 6-1.688 3.829-1.471 5.224-2.005 5.907-2.406.68-.4 1.611-.88 2.218-1.531 1.827-.138 3.571-.493 4.938-1 2.968-1.1 4.875-1.806 6.781-2.469 1.906-.662 2.354-1.415 3.406-1.781 1.092-.38 2.195-.166 6.063-1.531 3.867-1.366 5.283-1.827 5.969-2.22.7-.4 1.7-.932 2.312-1.593 1.97-.055 3.817-.385 5.281-.875 3.002-1.005 4.927-1.622 6.844-2.25 1.539-.504 2.174-1.047 2.906-1.437.23-.135.476-.254.75-.344 1.099-.36 2.182-.082
308 id="linearGradient4041"> 3086.094-1.313 3.912-1.23 5.366-1.673 6.063-2.03.694-.358 1.63-.794 2.25-1.407 1.865-.023 3.635-.267 5.03-.688 3.031-.913 4.993-1.43 6.938-1.968 1.945-.539 2.427-1.265 3.5-1.563 1.114-.31 2.22.007 6.188-1.031 3.967-1.039 5.417-1.433 6.125-1.75.735-.33 1.814-.754 2.437-1.375 1.998.116 3.858-.02 5.344-.375 3.078-.735 5.084-1.101 7.063-1.5 1.588-.32 2.244-.79 3-1.094a3.4 3.4 0 0 1 .75-.25c1.133-.23 2.304.209 6.343-.5 4.04-.709 5.5-.927 6.22-1.187.715-.26 1.704-.568 2.343-1.094 1.924.24 3.748.224 5.188 0 3.126-.488 5.154-.7 7.156-.969 2.001-.268 2.489-.945 3.594-1.094 1.146-.154 2.275.302 6.343-.219 4.068-.52 5.56-.695 6.282-.937.737-.247 1.798-.586 2.437-1.125 2.05.336 3.974.398 5.5.219 3.142-.37 5.18-.56 7.188-.782 1.61-.178 2.264-.608 3.03-.843.242-.086.495-.156.782-.188 1.15-.127 2.301.347 6.375-.125s5.559-.61 6.281-.844c.72-.232 1.7-.473 2.344-.968 1.936.333 3.77.404 5.219.25 3.146-.335
309 <stop 3095.177-.519 7.187-.719 2.01-.2 2.484-.826 3.594-.938 1.151-.115 2.297.366 6.375-.062s5.589-.562 6.313-.781c.739-.224 1.795-.514 2.437-1.031 2.057.398 4.002.493 5.531.343 3.149-.308 5.176-.473 7.188-.656 1.614-.147 2.263-.56 3.031-.781.241-.081.494-.13.781-.156 1.152-.106 2.293.392 6.375 0s5.59-.531 6.313-.75c.72-.219 1.7-.448 2.343-.938 1.939.35 3.77.454 5.22.313 3.148-.309 5.175-.474 7.187-.657 2.011-.183 2.514-.838 3.625-.937 1.152-.103 2.292.385 6.375 0s5.588-.501 6.312-.719c.74-.222 1.796-.514 2.438-1.031 2.057.402 4.003.503 5.531.344 3.147-.329 5.177-.523 7.187-.72 1.613-.156 2.266-.63 3.032-.874.24-.088.463-.122.75-.156 1.148-.14 2.316.34 6.375-.25 4.058-.59 5.562-.778 6.281-1.032.717-.253 1.675-.558 2.312-1.093 1.92.212 3.72.151 5.157-.094 3.119-.533 5.111-.929 7.093-1.313 1.983-.383 2.475-1.04 3.563-1.28 1.129-.251 2.27.115 6.25-.876s5.43-1.42 6.125-1.781c.722-.376 1.762-.87
310 id="stop4043" 3102.375-1.531 1.963-.012 3.794-.291 5.219-.844 2.95-1.145 4.873-1.87 6.687-2.75 1.456-.706 2.32-1.702 2.531-2 .213-.298.1-.729.125-.75.043-.035.34-.094.5-.437.86-1.848 2.324-5.628 2.438-6.313.114-.682.168-1.353.219-1.75.029-.23-.147-.879-.125-.937.03-.082.288-.251.343-.5.267-1.199.09-2.208-.125-3.625-.213-1.418-.971-4.615-1.625-5.47-.658-.861-1.224-1.01-1.75-1z" enable-background="new" fill="#bcb786" fill-rule="evenodd"/>
311 offset="0" 311 </clipPath>
312 style="stop-color:#ffff00;stop-opacity:1;" /> 312 <filter id="kk" x="-.082" y="-.227" width="1.163" height="1.453">
313 <stop 313 <feGaussianBlur stdDeviation="2.437"/>
314 id="stop4045" 314 </filter>
315 offset="1" 315 <filter id="kj" x="-.041" y="-.113" width="1.082" height="1.227">
316 style="stop-color:#ffff00;stop-opacity:0;" /> 316 <feGaussianBlur stdDeviation="1.219"/>
317 </linearGradient> 317 </filter>
318 <linearGradient 318 <clipPath id="kl">
319 id="linearGradient4025"> 319 <path d="M1049.2-282.27l-.09.008c-1.387.884-6.603 1.607-6.629 9.523-.024 7.426 15.013 17.091 17.156 18.094 1.73.81 3.592 1.41 5.406 1.72l1.438.218c1.92.212 3.72.151 5.156-.094 3.12-.532 5.112-.928 7.094-1.312 1.982-.384 2.474-1.04 3.562-1.281 1.129-.251 2.27.116 6.25-.875 3.98-.992 5.43-1.42 6.125-1.782.723-.376 1.762-.87 2.375-1.53 1.963-.013 3.794-.292 5.219-.845 2.951-1.144 4.873-1.869 6.688-2.75 1.455-.706 2.319-1.702 2.53-2 .213-.298.1-.728.126-.75.043-.035.34-.094.5-.437.859-1.847 2.323-5.628 2.437-6.313.114-.682.168-1.352.219-1.75.029-.23-.147-.879-.125-.937.031-.082.288-.25.344-.5.266-1.198.089-2.208-.125-3.625-.214-1.418-.972-4.615-1.625-5.469-.42-.548-.8-.792-1.157-.906-.067-.017-.123-.047-.187-.063-.021-.004-.042.003-.062 0-.312-.075-.609-.158-1.156-.218-.986-.109-2.425-.26-3.969-.25-.515.003-1.037.047-1.563.093-3.558.313-9.01.991-10.218
320 <stop 3201.625-1.634-.334-3.949-.612-5.938-.468-3.064.22-4.968.342-6.906.468-1.939.127-1.686.389-2.906.469-1.32.087-1.787-.223-5.563.094-3.546.297-8.98.993-10.22 1.625-1.632-.335-3.945-.613-5.937-.469-3.064.221-4.967.373-6.906.5-.659.043-1.042.124-1.344.187z" enable-background="new" fill="#bcb786" fill-rule="evenodd" opacity=".824"/>
321 style="stop-color:#ffffff;stop-opacity:1;" 321 </clipPath>
322 offset="0" 322 <filter id="km" x="-.022" width="1.044">
323 id="stop4027" /> 323 <feGaussianBlur stdDeviation=".575"/>
324 <stop 324 </filter>
325 style="stop-color:#ffffff;stop-opacity:0;" 325 <clipPath id="kn">
326 offset="1" 326 <path d="M205.47-408.97l-.09.002c-1.446.786-6.7 1.143-7.276 9.039-.542 7.405 13.786 18.096 15.854 19.245 1.67.927 3.484 1.655 5.273 2.09l1.419.32c1.9.344 3.7.41 5.15.265 3.149-.314 5.164-.57 7.168-.815 2.004-.245 2.54-.865 3.643-1.03 1.144-.172 2.257.274 6.296-.438s5.515-1.038 6.234-1.35c.747-.325 1.818-.746 2.476-1.362 1.96.124 3.805-.026 5.265-.479 3.024-.936 4.991-1.525 6.863-2.277 1.501-.603 2.432-1.536 2.664-1.819.233-.282.15-.72.177-.74.045-.032.346-.07.53-.4.985-1.784 2.709-5.453 2.87-6.128.162-.673.263-1.338.34-1.73.046-.228-.085-.888-.059-.945.037-.08.305-.23.378-.475.35-1.177.243-2.195.128-3.625-.115-1.429-.648-4.67-1.24-5.568-.38-.577-.742-.846-1.09-.985-.066-.022-.12-.055-.183-.075-.02-.005-.042 0-.063-.004-.305-.097-.596-.2-1.138-.299-.975-.176-2.4-.428-3.942-.526a19.346 19.346 0 0
327 id="stop4031" /> 3270-1.565-.015c-3.572.064-9.057.361-10.307.91-1.606-.448-3.896-.886-5.89-.882-3.072.007-4.98-.005-6.922-.013-1.943-.01-1.71.27-2.932.265-1.322-.005-1.767-.347-5.556-.294-3.558.05-9.028.365-10.307.91-1.606-.448-3.893-.887-5.89-.882-3.072.007-4.982.027-6.924.018-.661-.003-1.049.05-1.354.093z" enable-background="new" fill="#bcb786" fill-rule="evenodd" opacity=".824"/>
328 </linearGradient> 328 </clipPath>
329 <linearGradient 329 <linearGradient id="w" x1="774.98" x2="755.12" y1="-211.87" y2="-202.68" gradientTransform="translate(-19.092 4.243)" gradientUnits="userSpaceOnUse" xlink:href="#n"/>
330 id="linearGradient4013"> 330 <mask id="jm" maskUnits="userSpaceOnUse">
331 <stop 331 <path d="m718.41-224.31l33.25 56 276-24 159.5-48.25-66.5-82.75-402.25 99z" fill="url(#w)" fill-rule="evenodd"/>
332 style="stop-color:#ffff00;stop-opacity:1;" 332 </mask>
333 offset="0" 333 <clipPath id="kg">
334 id="stop4015" /> 334 <path d="M734.03 519.49s16.755 37.018 28.701 53.954 52.727 56.046 52.727 56.046l.597-138.59" enable-background="accumulate" fill="#1a1a1a" fill-rule="evenodd" stroke="#000"/>
335 <stop 335 </clipPath>
336 style="stop-color:#b2b200;stop-opacity:1;" 336 <filter id="jn">
337 offset="1" 337 <feGaussianBlur stdDeviation="10.662"/>
338 id="stop4017" /> 338 </filter>
339 </linearGradient> 339 <filter id="ip">
340 <linearGradient 340 <feGaussianBlur stdDeviation="7.18"/>
341 id="linearGradient3985"> 341 </filter>
342 <stop 342 <clipPath id="iq">
343 style="stop-color:#000000;stop-opacity:1;" 343 <path d="m266.27 924.57c-1.407 18.801-1.145 32.751 2.082 49.303 3.226 16.552 16.406 45.907 20.334 63.184 3.926 17.267 2.694 38.31-12.46 51.148-15.317 12.978-42.05 21.599-67.831 15.734s-69.55-49.223-88.59-70.228c-19.112-21.083-63.761-93.851-77.94-124.28-14.177-30.425-12.66-36.719-8.119-45.53-9.367-24.52-12.414-50.067-33.712-75.577 30.325 3.114 43.88 26.956 60.126 47.14-5.53-48.076-18.055-64.417-28.374-90.724 29.994 6.082 50.579 31.872 63.98 72.712 9.554-3.918 18.238-9.373 30.187-9.061-11.298-41.696-17.949-69.916-36.687-101.07 53.442 5.67 83.657 80.639 78.971 87.96 9.978-2.243 19.006-6.53 30.437-5.65-11.249-38.348-21.048-76.869-3.66-118.65 0 0 48.287 65.436 54.39 85.805 6.103 20.37 1.52 38.701 1.52 38.701s16.96 31.085 20.293 51.094c3.373 20.241-3.533 59.103-4.946 77.983z" enable-background="new" fill="#ada469" fill-rule="evenodd"/>
344 offset="0" 344 </clipPath>
345 id="stop3987" /> 345 <filter id="in">
346 <stop 346 <feGaussianBlur stdDeviation="6.82"/>
347 style="stop-color:#1d1d1d;stop-opacity:1;" 347 </filter>
348 offset="1" 348 <clipPath id="io">
349 id="stop3989" /> 349 <path d="m266.27 924.57c-1.407 18.801-1.145 32.751 2.082 49.303 3.226 16.552 16.406 45.907 20.334 63.184 3.926 17.267 2.694 38.31-12.46 51.148-15.317 12.978-42.05 21.599-67.831 15.734s-69.55-49.223-88.59-70.228c-19.112-21.083-63.761-93.851-77.94-124.28-14.177-30.425-12.66-36.719-8.119-45.53-9.367-24.52-12.414-50.067-33.712-75.577 30.325 3.114 43.88 26.956 60.126 47.14-5.53-48.076-18.055-64.417-28.374-90.724 29.994 6.082 50.579 31.872 63.98 72.712 9.554-3.918 18.238-9.373 30.187-9.061-11.298-41.696-17.949-69.916-36.687-101.07 53.442 5.67 83.657 80.639 78.971 87.96 9.978-2.243 19.006-6.53 30.437-5.65-11.249-38.348-21.048-76.869-3.66-118.65 0 0 48.287 65.436 54.39 85.805 6.103 20.37 1.52 38.701 1.52 38.701s16.96 31.085 20.293 51.094c3.373 20.241-3.533 59.103-4.946 77.983z" enable-background="new" fill="#ada469" fill-rule="evenodd"/>
350 </linearGradient> 350 </clipPath>
351 <linearGradient 351 <filter id="ij" x="-.144" y="-.103" width="1.288" height="1.206">
352 id="linearGradient3961"> 352 <feGaussianBlur stdDeviation="7.389"/>
353 <stop 353 </filter>
354 style="stop-color:#283131;stop-opacity:0;" 354 <clipPath id="ik">
355 offset="0" 355 <path d="M760.16 935.83c6.794 18.903 10.494 33.3 11.89 51.212 1.397 17.912-3.783 51.801-2.9 70.656.881 18.845 8.133 40.099 27.345 48.969 19.419 8.966 49.319 10.211 74.12-3.146 24.8-13.357 57.4-70.326 70.974-97.309 13.624-27.084 38.76-114.5 44.66-149.77 5.9-35.27 2.551-41.3-4.617-49.055 2.64-27.84-1.5-54.935 13.11-87.186-30.249 11.826-37.382 40.161-48.319 65.505-8-50.933.21-71.273 3.319-101.22-29.065 14.778-42.862 47.114-45 92.857-10.924-1.304-21.391-4.434-33.571-.714-.264-46.023-1.464-76.889 8.91-114.21-53.254 21.027-62.946 106.59-56.052 112.78-10.883.535-21.371-1.297-32.857 2.857.638-42.57-.261-84.909-30-122.86 0 0-30.958 80.922-31.43 103.57s9.452 40.166 9.452 40.166-8.568 36.741-6.298 58.232c2.295 21.741 20.443 59.676 27.265 78.658z" enable-background="new" fill="#ada469" fill-rule="evenodd"/>
356 id="stop3963" /> 356 </clipPath>
357 <stop 357 <filter id="ih" x="-.09" y="-.103" width="1.181" height="1.205">
358 id="stop3965" 358 <feGaussianBlur stdDeviation="5.346"/>
359 offset="0.5" 359 </filter>
360 style="stop-color:#1e2424;stop-opacity:1;" /> 360 <clipPath id="ii">
361 <stop 361 <path d="M760.16 935.83c6.794 18.903 10.494 33.3 11.89 51.212 1.397 17.912-3.783 51.801-2.9 70.656.881 18.845 8.133 40.099 27.345 48.969 19.419 8.966 49.319 10.211 74.12-3.146 24.8-13.357 57.4-70.326 70.974-97.309 13.624-27.084 38.76-114.5 44.66-149.77 5.9-35.27 2.551-41.3-4.617-49.055 2.64-27.84-1.5-54.935 13.11-87.186-30.249 11.826-37.382 40.161-48.319 65.505-8-50.933.21-71.273 3.319-101.22-29.065 14.778-42.862 47.114-45 92.857-10.924-1.304-21.391-4.434-33.571-.714-.264-46.023-1.464-76.889 8.91-114.21-53.254 21.027-62.946 106.59-56.052 112.78-10.883.535-21.371-1.297-32.857 2.857.638-42.57-.261-84.909-30-122.86 0 0-30.958 80.922-31.43 103.57s9.452 40.166 9.452 40.166-8.568 36.741-6.298 58.232c2.295 21.741 20.443 59.676 27.265 78.658z" enable-background="new" fill="#ada469" fill-rule="evenodd"/>
362 style="stop-color:#000000;stop-opacity:1;" 362 </clipPath>
363 offset="1" 363 <clipPath id="gc">
364 id="stop3967" /> 364 <path d="M569.03 1018.8c-4.286.714-27.628 3.618-57.857 10s-99.775 25.962-142.86 35.714-117.26 34.816-156.91 27.265c-39.648-7.55-89.516-64.408-89.516-64.408l4.286-94.286s85.886-16.201 112.14-33.571c26.257-17.37 45.582-49.666 59.286-71.429s32.857-71.429 32.857-71.429l238.57 262.14z" enable-background="accumulate" fill="#0b0b0b" fill-rule="evenodd" stroke="#000"/>
365 </linearGradient> 365 </clipPath>
366 <linearGradient 366 <filter id="gb" x="-.211" y="-.168" width="1.422" height="1.336">
367 id="linearGradient3951"> 367 <feGaussianBlur stdDeviation="8.369"/>
368 <stop 368 </filter>
369 id="stop3953" 369 <clipPath id="fz">
370 offset="0" 370 <path d="M205.47-408.97l-.09.002c-1.446.786-6.7 1.143-7.276 9.039-.542 7.405 13.786 18.096 15.854 19.245 1.67.927 3.484 1.655 5.273 2.09l1.419.32c1.9.344 3.7.41 5.15.265 3.149-.314 5.164-.57 7.168-.815 2.004-.245 2.54-.865 3.643-1.03 1.144-.172 2.257.274 6.296-.438s5.515-1.038 6.234-1.35c.747-.325 1.818-.746 2.476-1.362 1.96.124 3.805-.026 5.265-.479 3.024-.936 4.991-1.525 6.863-2.277 1.501-.603 2.432-1.536 2.664-1.819.233-.282.15-.72.177-.74.045-.032.346-.07.53-.4.985-1.784 2.709-5.453 2.87-6.128.162-.673.263-1.338.34-1.73.046-.228-.085-.888-.059-.945.037-.08.305-.23.378-.475.35-1.177.243-2.195.128-3.625-.115-1.429-.648-4.67-1.24-5.568-.38-.577-.742-.846-1.09-.985-.066-.022-.12-.055-.183-.075-.02-.005-.042 0-.063-.004-.305-.097-.596-.2-1.138-.299-.975-.176-2.4-.428-3.942-.526a19.346 19.346 0 0
371 style="stop-color:#344040;stop-opacity:1;" /> 3710-1.565-.015c-3.572.064-9.057.361-10.307.91-1.606-.448-3.896-.886-5.89-.882-3.072.007-4.98-.005-6.922-.013-1.943-.01-1.71.27-2.932.265-1.322-.005-1.767-.347-5.556-.294-3.558.05-9.028.365-10.307.91-1.606-.448-3.893-.887-5.89-.882-3.072.007-4.982.027-6.924.018-.661-.003-1.049.05-1.354.093z" enable-background="new" fill="#bcb786" fill-rule="evenodd" opacity=".824"/>
372 <stop 372 </clipPath>
373 style="stop-color:#222929;stop-opacity:1;" 373 <filter id="fy" x="-.022" width="1.044">
374 offset="0.5" 374 <feGaussianBlur stdDeviation=".575"/>
375 id="stop3955" /> 375 </filter>
376 <stop 376 <clipPath id="fx">
377 id="stop3957" 377 <path d="M1049.2-282.27l-.09.008c-1.387.884-6.603 1.607-6.629 9.523-.024 7.426 15.013 17.091 17.156 18.094 1.73.81 3.592 1.41 5.406 1.72l1.438.218c1.92.212 3.72.151 5.156-.094 3.12-.532 5.112-.928 7.094-1.312 1.982-.384 2.474-1.04 3.562-1.281 1.129-.251 2.27.116 6.25-.875 3.98-.992 5.43-1.42 6.125-1.782.723-.376 1.762-.87 2.375-1.53 1.963-.013 3.794-.292 5.219-.845 2.951-1.144 4.873-1.869 6.688-2.75 1.455-.706 2.319-1.702 2.53-2 .213-.298.1-.728.126-.75.043-.035.34-.094.5-.437.859-1.847 2.323-5.628 2.437-6.313.114-.682.168-1.352.219-1.75.029-.23-.147-.879-.125-.937.031-.082.288-.25.344-.5.266-1.198.089-2.208-.125-3.625-.214-1.418-.972-4.615-1.625-5.469-.42-.548-.8-.792-1.157-.906-.067-.017-.123-.047-.187-.063-.021-.004-.042.003-.062 0-.312-.075-.609-.158-1.156-.218-.986-.109-2.425-.26-3.969-.25-.515.003-1.037.047-1.563.093-3.558.313-9.01.991-10.218
378 offset="1" 3781.625-1.634-.334-3.949-.612-5.938-.468-3.064.22-4.968.342-6.906.468-1.939.127-1.686.389-2.906.469-1.32.087-1.787-.223-5.563.094-3.546.297-8.98.993-10.22 1.625-1.632-.335-3.945-.613-5.937-.469-3.064.221-4.967.373-6.906.5-.659.043-1.042.124-1.344.187z" enable-background="new" fill="#bcb786" fill-rule="evenodd" opacity=".824"/>
379 style="stop-color:#000000;stop-opacity:1;" /> 379 </clipPath>
380 </linearGradient> 380 <filter id="fw" x="-.082" y="-.227" width="1.163" height="1.453">
381 <linearGradient 381 <feGaussianBlur stdDeviation="2.437"/>
382 id="linearGradient3909"> 382 </filter>
383 <stop 383 <filter id="fv" x="-.041" y="-.113" width="1.082" height="1.227">
384 style="stop-color:#283131;stop-opacity:1;" 384 <feGaussianBlur stdDeviation="1.219"/>
385 offset="0" 385 </filter>
386 id="stop3911" /> 386 <clipPath id="y">
387 <stop 387 <path d="M352.25 211.99c-3.804-25.264-16.81-50.638-17.157-75.525-.186-13.356 3.273-26.571 13.756-39.554 36.347-65.296 116.94-84.695 185.93-91.465 86.922-11.017 184.91 17.94 233.37 95.401 54.124 75.733 56.675 172.54 80.612 259.53 29.438 127.13 54.779 256.21 60.392 386.85-3.063 78.182-8.426 165.18-60.503 228.13-48.027 50.357-122.79 50.053-187.07 59.002-90.555 4.655-184.35-16.146-261.78-64.198-64.776-37.94-95.73-113.48-97.279-186.02-8.39-79.875 26.392-153.81 51.62-227.16 7.47-82.761 9.413-166.25 9.653-249.38-.837-32.195-7.09-63.817-11.546-95.609z" enable-background="accumulate" fill="#262f2f" fill-rule="evenodd" stroke="#000"/>
388 id="stop3917" 388 </clipPath>
389 offset="0.5" 389 <filter id="fu" x="-.252" y="-.053" width="1.503" height="1.106">
390 style="stop-color:#1e2424;stop-opacity:1;" /> 390 <feGaussianBlur stdDeviation="13.025"/>
391 <stop 391 </filter>
392 style="stop-color:#000000;stop-opacity:1;" 392 <clipPath id="fs">
393 offset="1" 393 <path d="M734.03 519.49s16.755 37.018 28.701 53.954 52.727 56.046 52.727 56.046l.597-138.59" enable-background="accumulate" fill="#1a1a1a" fill-rule="evenodd" stroke="#000"/>
394 id="stop3913" /> 394 </clipPath>
395 </linearGradient> 395 <filter id="fr" x="-.274" y="-.213" width="1.549" height="1.427">
396 <linearGradient 396 <feGaussianBlur stdDeviation="11.314"/>
397 id="linearGradient3537"> 397 </filter>
398 <stop 398 <clipPath id="fq">
399 style="stop-color:#ada469;stop-opacity:1;" 399 <path d="M178.21 274.15c-3.804-25.264-16.81-50.638-17.157-75.525-.186-13.356 3.273-26.571 13.756-39.554 36.347-65.296 116.94-84.695 185.93-91.465 86.922-11.017 184.91 17.94 233.37 95.401 54.124 75.733 56.675 172.54 80.612 259.53 29.438 127.13 54.779 256.21 60.392 386.85-3.063 78.182-8.426 165.18-60.503 228.13-48.027 50.357-122.79 50.053-187.07 59.002-90.555 4.655-184.35-16.146-261.78-64.198-64.776-37.94-95.73-113.48-97.279-186.02-8.39-79.875 26.392-153.81 51.62-227.16 7.47-82.761 9.413-166.25 9.653-249.38-.837-32.195-7.09-63.817-11.546-95.609z" enable-background="accumulate" fill="#262f2f" fill-rule="evenodd"/>
400 offset="0" 400 </clipPath>
401 id="stop3539" /> 401 <filter id="aq">
402 <stop 402 <feGaussianBlur stdDeviation="2.04"/>
403 id="stop3545" 403 </filter>
404 offset="0.81132078" 404 <filter id="g">
405 style="stop-color:#ada469;stop-opacity:1;" /> 405 <feTurbulence baseFrequency=".24" numOctaves="10" result="result0" seed="655" type="fractalNoise"/>
406 <stop 406 <feDisplacementMap in="SourceGraphic" in2="result0" scale="62" xChannelSelector="B" yChannelSelector="G"/>
407 style="stop-color:#ffffff;stop-opacity:1;" 407 </filter>
408 offset="1" 408 <clipPath id="fp">
409 id="stop3541" /> 409 <path d="M352.25 211.99c-3.804-25.264-16.81-50.638-17.157-75.525-.186-13.356 3.273-26.571 13.756-39.554 36.347-65.296 116.94-84.695 185.93-91.465 86.922-11.017 184.91 17.94 233.37 95.401 54.124 75.733 56.675 172.54 80.612 259.53 29.438 127.13 54.779 256.21 60.392 386.85-3.063 78.182-8.426 165.18-60.503 228.13-48.027 50.357-122.79 50.053-187.07 59.002-90.555 4.655-184.35-16.146-261.78-64.198-64.776-37.94-95.73-113.48-97.279-186.02-8.39-79.875 26.392-153.81 51.62-227.16 7.47-82.761 9.413-166.25 9.653-249.38-.837-32.195-7.09-63.817-11.546-95.609z" enable-background="accumulate" fill="#262f2f" fill-rule="evenodd" stroke="#000"/>
410 </linearGradient> 410 </clipPath>
411 <linearGradient 411 <filter id="fo" x="-.353" y="-.182" width="1.706" height="1.363">
412 id="linearGradient3317"> 412 <feGaussianBlur stdDeviation="48.038"/>
413 <stop 413 </filter>
414 style="stop-color:#cfc690;stop-opacity:1" 414 <clipPath id="fn">
415 offset="0" 415 <path d="m265.94 126.68l-18.767 168.86 174.11-73.121 61.954 88.659 57.884-31.99-37.534-180.06-237.64 27.649z" fill-rule="evenodd" stroke="#000" stroke-width=".9"/>
416 id="stop3319" /> 416 </clipPath>
417 <stop 417 <filter id="fm" x="-.277" y="-.325" width="1.554" height="1.65">
418 id="stop3321" 418 <feGaussianBlur stdDeviation="19.956"/>
419 offset="0.21161865" 419 </filter>
420 style="stop-color:#afa775;stop-opacity:1;" /> 420 <mask id="fk" maskUnits="userSpaceOnUse">
421 <stop 421 <ellipse transform="translate(-174.03 62.156)" cx="579.47" cy="260.58" rx="192.69" ry="164.05" enable-background="accumulate" fill="url(#dt)"/>
422 id="stop3323" 422 </mask>
423 offset="0.53408515" 423 <filter id="fj" x="-.611" y="-.149" width="2.223" height="1.299">
424 style="stop-color:#615c3a;stop-opacity:1;" /> 424 <feGaussianBlur stdDeviation="37.83"/>
425 <stop 425 </filter>
426 style="stop-color:#000000;stop-opacity:1;" 426 <filter id="fi" x="-.259" y="-.224" width="1.518" height="1.447">
427 offset="0.76504093" 427 <feGaussianBlur stdDeviation="19.632"/>
428 id="stop3325" /> 428 </filter>
429 <stop 429 <filter id="fh" x="-.3" y="-.3" width="1.6" height="1.6">
430 id="stop3327" 430 <feGaussianBlur stdDeviation="2"/>
431 offset="1" 431 </filter>
432 style="stop-color:#403518;stop-opacity:1;" /> 432 <clipPath id="x">
433 </linearGradient> 433 <path d="M179.64 267.36c-22.41 39.703-60.616 115.78-69.286 149.64-8.647 33.775-8.772 66.417-.357 86.429 8.36 19.882 26.164 35.633 40.714 41.429-.597-14.376 14.373-43.286 72.857-72.5 58.626-29.285 78.382-27.131 103.57-47.143 25.63-20.362 12.61-67.045 3.214-93.929-9.434-26.993-34.967-59.124-66.429-69.643-31.033-10.375-65.018-4.848-84.286 5.714z" fill="#f5ff04" fill-rule="evenodd"/>
434 <radialGradient 434 </clipPath>
435 inkscape:collect="always" 435 <filter id="hd">
436 xlink:href="#linearGradient3317" 436 <feGaussianBlur stdDeviation="6.589"/>
437 id="radialGradient3315" 437 </filter>
438 cx="543.6698" 438 <filter id="hc">
439 cy="147.3131" 439 <feGaussianBlur stdDeviation="1.505"/>
440 fx="543.6698" 440 </filter>
441 fy="147.3131" 441 <filter id="hb" x="-.243" y="-.391" width="1.487" height="1.782">
442 r="47.863216" 442 <feGaussianBlur stdDeviation="14.59"/>
443 gradientTransform="matrix(2.1382256,0,0,2.3382884,-77.03847,-101.68704)" 443 </filter>
444 gradientUnits="userSpaceOnUse" /> 444 <filter id="ha" x="-.146" y="-.235" width="1.292" height="1.47">
445 <radialGradient 445 <feGaussianBlur stdDeviation="4.444"/>
446 inkscape:collect="always" 446 </filter>
447 xlink:href="#linearGradient3537" 447 <filter id="gz">
448 id="radialGradient3543" 448 <feGaussianBlur stdDeviation=".606"/>
449 cx="385" 449 </filter>
450 cy="237.00504" 450 <clipPath id="if">
451 fx="385" 451 <path d="m709.29 844.51c54.286-1.429 126.04-15.052 170-26.786 44.053-11.757 125.89-36.347 175.36-57.857 49.339-21.453 113.6-59.282 154.29-92.143 40.508-32.721 52.39-55.82 60.714-33.571 8.37 22.368-16.407 56.326-37.857 81.071-21.604 24.923-52.731 52.705-98.929 89.286s-156.08 101.58-212.86 128.57c-57.066 27.125-128.2 58.238-172.14 72.5s-131.43 31.071-131.43 31.071l92.857-192.14z" enable-background="accumulate" fill="#121212" fill-rule="evenodd"/>
452 fy="237.00504" 452 </clipPath>
453 r="86.928574" 453 <mask id="gy" maskUnits="userSpaceOnUse">
454 gradientTransform="matrix(1,0,0,0.8562038,0,34.080427)" 454 <path d="m718.41-224.31l33.25 56 276-24 159.5-48.25-66.5-82.75-402.25 99z" fill="url(#w)" fill-rule="evenodd"/>
455 gradientUnits="userSpaceOnUse" /> 455 </mask>
456 <radialGradient 456 <clipPath id="gx">
457 inkscape:collect="always" 457 <path transform="translate(.08 -.031)" d="M1111.4-285.94l-3.937 1.875c-.041.01-.1.02-.125.031-.42.213-.165.1-.657.313-.486.21-1.737.584-4.093 1.469-3.332 1.25-5.805 2.15-7 3.062-1.537.021-3.72.233-5.657.719a227.677 227.677 0 0 1-6.75 1.594c-1.895.42-1.675.642-2.875.875-1.296.251-1.721-.01-5.437.78-3.49.743-8.895 1.932-10.156 2.688-1.584-.18-3.868-.321-5.844-.03-3.04.446-4.916.672-6.844.905-.655.08-1.04.201-1.344.282-.426.131-.685.26-1.375.343-1.311.16-1.762-.156-5.53.282-3.555.413-9.006 1.272-10.25 1.937-1.6-.297-3.859-.534-5.845-.344-3.058.294-4.972.484-6.906.657-1.934.172-1.688.422-2.906.53-1.316.119-1.76-.163-5.531.25-3.542.39-9.008 1.21-10.281 1.876-1.6-.295-3.887-.507-5.875-.313-3.059.3-4.941.48-6.875.657-.658.06-1.04.178-1.344.25-.428.119-.683.218-1.375.28-1.316.121-1.76-.194-5.531.22-3.556.39-9.006 1.239-10.25
458 xlink:href="#linearGradient3909" 4581.906-1.599-.294-3.86-.524-5.844-.313-3.056.326-4.974.527-6.906.719s-1.69.44-2.906.563c-1.315.131-1.763-.165-5.532.28-3.539.42-8.977 1.293-10.25 1.97-1.597-.281-3.86-.42-5.843-.188-3.052.358-4.945.568-6.875.781-.657.073-1.041.173-1.344.25-.427.128-.685.268-1.375.344-1.314.146-1.768-.174-5.531.313-3.55.458-8.979 1.419-10.22 2.125-1.593-.245-3.833-.382-5.812-.125-3.048.394-4.95.648-6.875.906-1.924.258-1.726.493-2.937.656-1.31.176-1.748-.104-5.5.469-3.525.538-8.924 1.699-10.188 2.437-1.588-.203-3.846-.254-5.813.094-3.026.536-4.899.862-6.812 1.188-.651.11-1.014.27-1.313.375-.42.164-.663.33-1.344.468-1.294.262-1.727-.006-5.437.813-3.499.772-8.846 2.383-10.062 3.219-1.563-.078-3.758.085-5.688.593-2.972.783-4.817 1.232-6.687 1.75s-1.667.768-2.844 1.094c-1.273.353-1.697.107-5.344 1.188-3.425 1.014-8.65 2.933-9.875 3.843-1.539.013-3.72.273-5.625.875-2.93.928-4.75 1.459-6.594
459 id="radialGradient3915" 4592.063-.626.205-.991.393-1.28.531-.408.214-.654.409-1.313.625-1.255.412-1.687.19-5.282 1.438-3.39 1.177-8.595 3.213-9.78 4.156-1.525.06-3.65.395-5.532 1.062-2.897 1.029-4.699 1.676-6.531 2.313-1.832.637-1.628.848-2.781 1.25-1.247.434-1.664.2-5.22 1.562-3.338 1.28-8.486 3.483-9.687 4.47-1.507.107-3.635.498-5.5 1.218a1047.26 1047.26 0 0 1-6.437 2.469c-.617.233-.997.442-1.281.594v.03l-8 3.188 1.812 14.72c-.258-.062 6.188 3.312 6.188 3.312.226-.145.449-.273.718-.375 1.08-.41 2.172-.216 6-1.688 3.829-1.471 5.224-2.005 5.907-2.406.68-.4 1.611-.88 2.218-1.531 1.827-.138 3.571-.493 4.938-1 2.968-1.1 4.875-1.806 6.781-2.469 1.906-.662 2.354-1.415 3.406-1.781 1.092-.38 2.195-.166 6.063-1.531 3.867-1.366 5.283-1.827 5.969-2.22.7-.4 1.7-.932 2.312-1.593 1.97-.055 3.817-.385 5.281-.875 3.002-1.005 4.927-1.622 6.844-2.25 1.539-.504 2.174-1.047 2.906-1.437.23-.135.476-.254.75-.344 1.099-.36 2.182-.082
460 cx="418.30365" 4606.094-1.313 3.912-1.23 5.366-1.673 6.063-2.03.694-.358 1.63-.794 2.25-1.407 1.865-.023 3.635-.267 5.03-.688 3.031-.913 4.993-1.43 6.938-1.968 1.945-.539 2.427-1.265 3.5-1.563 1.114-.31 2.22.007 6.188-1.031 3.967-1.039 5.417-1.433 6.125-1.75.735-.33 1.814-.754 2.437-1.375 1.998.116 3.858-.02 5.344-.375 3.078-.735 5.084-1.101 7.063-1.5 1.588-.32 2.244-.79 3-1.094a3.4 3.4 0 0 1 .75-.25c1.133-.23 2.304.209 6.343-.5 4.04-.709 5.5-.927 6.22-1.187.715-.26 1.704-.568 2.343-1.094 1.924.24 3.748.224 5.188 0 3.126-.488 5.154-.7 7.156-.969 2.001-.268 2.489-.945 3.594-1.094 1.146-.154 2.275.302 6.343-.219 4.068-.52 5.56-.695 6.282-.937.737-.247 1.798-.586 2.437-1.125 2.05.336 3.974.398 5.5.219 3.142-.37 5.18-.56 7.188-.782 1.61-.178 2.264-.608 3.03-.843.242-.086.495-.156.782-.188 1.15-.127 2.301.347 6.375-.125s5.559-.61 6.281-.844c.72-.232 1.7-.473 2.344-.968 1.936.333 3.77.404 5.219.25 3.146-.335
461 cy="342.47794" 4615.177-.519 7.187-.719 2.01-.2 2.484-.826 3.594-.938 1.151-.115 2.297.366 6.375-.062s5.589-.562 6.313-.781c.739-.224 1.795-.514 2.437-1.031 2.057.398 4.002.493 5.531.343 3.149-.308 5.176-.473 7.188-.656 1.614-.147 2.263-.56 3.031-.781.241-.081.494-.13.781-.156 1.152-.106 2.293.392 6.375 0s5.59-.531 6.313-.75c.72-.219 1.7-.448 2.343-.938 1.939.35 3.77.454 5.22.313 3.148-.309 5.175-.474 7.187-.657 2.011-.183 2.514-.838 3.625-.937 1.152-.103 2.292.385 6.375 0s5.588-.501 6.312-.719c.74-.222 1.796-.514 2.438-1.031 2.057.402 4.003.503 5.531.344 3.147-.329 5.177-.523 7.187-.72 1.613-.156 2.266-.63 3.032-.874.24-.088.463-.122.75-.156 1.148-.14 2.316.34 6.375-.25 4.058-.59 5.562-.778 6.281-1.032.717-.253 1.675-.558 2.312-1.093 1.92.212 3.72.151 5.157-.094 3.119-.533 5.111-.929 7.093-1.313 1.983-.383 2.475-1.04 3.563-1.28 1.129-.251 2.27.115 6.25-.876s5.43-1.42 6.125-1.781c.722-.376 1.762-.87
462 fx="418.30365" 4622.375-1.531 1.963-.012 3.794-.291 5.219-.844 2.95-1.145 4.873-1.87 6.687-2.75 1.456-.706 2.32-1.702 2.531-2 .213-.298.1-.729.125-.75.043-.035.34-.094.5-.437.86-1.848 2.324-5.628 2.438-6.313.114-.682.168-1.353.219-1.75.029-.23-.147-.879-.125-.937.03-.082.288-.251.343-.5.267-1.199.09-2.208-.125-3.625-.213-1.418-.971-4.615-1.625-5.47-.658-.861-1.224-1.01-1.75-1z" enable-background="new" fill="#bcb786" fill-rule="evenodd"/>
463 fy="342.47794" 463 </clipPath>
464 r="131.4509" 464 <filter id="gw">
465 gradientTransform="matrix(1.3957347,0.6211056,-0.4244067,0.9537174,-15.061913,-227.96711)" 465 <feGaussianBlur stdDeviation="1.168"/>
466 gradientUnits="userSpaceOnUse" /> 466 </filter>
467 <radialGradient 467 <filter id="gv" x="-.103" y="-.342" width="1.206" height="1.685">
468 inkscape:collect="always" 468 <feGaussianBlur stdDeviation="1.168"/>
469 xlink:href="#linearGradient3951" 469 </filter>
470 id="radialGradient3933" 470 <filter id="gu" x="-.099" y="-.226" width="1.198" height="1.453">
471 cx="397.16388" 471 <feGaussianBlur stdDeviation="1.168"/>
472 cy="336.95245" 472 </filter>
473 fx="397.16388" 473 <filter id="gt" x="-.098" y="-.198" width="1.196" height="1.397">
474 fy="336.95245" 474 <feGaussianBlur stdDeviation="1.168"/>
475 r="36.75" 475 </filter>
476 gradientUnits="userSpaceOnUse" 476 <filter id="gs">
477 gradientTransform="matrix(1.9449972,2.4894837e-7,-2.4894833e-7,1.9449969,-375.31868,-318.41912)" /> 477 <feGaussianBlur stdDeviation="1.168"/>
478 <linearGradient 478 </filter>
479 inkscape:collect="always" 479 <filter id="gr" x="-.098" y="-.198" width="1.197" height="1.395">
480 xlink:href="#linearGradient3961" 480 <feGaussianBlur stdDeviation="1.168"/>
481 id="linearGradient3959" 481 </filter>
482 x1="398.21429" 482 <filter id="gq" x="-.098" y="-.198" width="1.196" height="1.397">
483 y1="343.52289" 483 <feGaussianBlur stdDeviation="1.168"/>
484 x2="379.28571" 484 </filter>
485 y2="265.30862" 485 <filter id="gp" x="-.098" y="-.203" width="1.197" height="1.406">
486 gradientUnits="userSpaceOnUse" 486 <feGaussianBlur stdDeviation="1.168"/>
487 gradientTransform="translate(450.03125,73.843964)" /> 487 </filter>
488 <filter 488 <filter id="go" x="-.098" y="-.209" width="1.197" height="1.417">
489 inkscape:collect="always" 489 <feGaussianBlur stdDeviation="1.168"/>
490 id="filter3981" 490 </filter>
491 x="-0.30000001" 491 <filter id="gn" x="-.099" y="-.225" width="1.198" height="1.451">
492 width="1.6" 492 <feGaussianBlur stdDeviation="1.168"/>
493 y="-0.30000001" 493 </filter>
494 height="1.6"> 494 <filter id="gm" x="-.101" y="-.274" width="1.201" height="1.548">
495 <feGaussianBlur 495 <feGaussianBlur stdDeviation="1.168"/>
496 inkscape:collect="always" 496 </filter>
497 stdDeviation="2" 497 <filter id="gl" x="-.102" y="-.324" width="1.204" height="1.647">
498 id="feGaussianBlur3983" /> 498 <feGaussianBlur stdDeviation="1.168"/>
499 </filter> 499 </filter>
500 <radialGradient 500 <filter id="gk" x="-.103" y="-.364" width="1.207" height="1.729">
501 inkscape:collect="always" 501 <feGaussianBlur stdDeviation="1.168"/>
502 xlink:href="#linearGradient3985" 502 </filter>
503 id="radialGradient3991" 503 <filter id="gj" x="-.105" y="-.405" width="1.209" height="1.809">
504 cx="402.48898" 504 <feGaussianBlur stdDeviation="1.168"/>
505 cy="317.23578" 505 </filter>
506 fx="402.48898" 506 <filter id="gi">
507 fy="317.23578" 507 <feGaussianBlur stdDeviation="1.723"/>
508 r="23.714285" 508 </filter>
509 gradientUnits="userSpaceOnUse" 509 <filter id="gh">
510 gradientTransform="matrix(4.3776616,0,0,4.3776616,-1358.3025,-1070.7357)" /> 510 <feGaussianBlur stdDeviation=".35"/>
511 <clipPath 511 </filter>
512 clipPathUnits="userSpaceOnUse" 512 <filter id="gg" x="-.031" y="-.103" width="1.062" height="1.205">
513 id="clipPath3999"> 513 <feGaussianBlur stdDeviation=".35"/>
514 <path 514 </filter>
515 style="display:inline;opacity:1;fill:#f5ff04;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" 515 <filter id="gf">
516 d="m 179.64286,267.36218 c -22.41044,39.70292 -60.6161,115.78029 -69.28571,149.64286 -8.64721,33.7751 -8.77199,66.41654 -0.35715,86.42858 8.3602,19.88213 26.16398,35.6328 40.71428,41.42856 -0.59638,-14.37587 14.37295,-43.28583 72.85715,-72.5 58.62627,-29.28514 78.38163,-27.13086 103.57142,-47.14286 25.63006,-20.36176 12.61031,-67.04463 3.21429,-93.92857 -9.43424,-26.99328 -34.96741,-59.12448 -66.42857,-69.64285 -31.03327,-10.37532 -65.01776,-4.84837 -84.28571,5.71428 z" 516 <feGaussianBlur stdDeviation=".35"/>
517 id="path4001" 517 </filter>
518 sodipodi:nodetypes="czzczzzzc" 518 <filter id="ge">
519 inkscape:connector-curvature="0" /> 519 <feGaussianBlur stdDeviation=".35"/>
520 </clipPath> 520 </filter>
521 <radialGradient 521 <filter id="ff">
522 inkscape:collect="always" 522 <feGaussianBlur stdDeviation=".35"/>
523 xlink:href="#linearGradient4013" 523 </filter>
524 id="radialGradient4056" 524 <filter id="fe">
525 gradientUnits="userSpaceOnUse" 525 <feGaussianBlur stdDeviation=".35"/>
526 gradientTransform="matrix(1.1323239,0.7659488,-1.4550286,2.1510098,588.75376,-711.79716)" 526 </filter>
527 cx="228.81355" 527 <filter id="fd">
528 cy="440.26971" 528 <feGaussianBlur stdDeviation=".35"/>
529 fx="228.81355" 529 </filter>
530 fy="440.26971" 530 <filter id="fc">
531 r="119.17509" /> 531 <feGaussianBlur stdDeviation=".35"/>
532 <radialGradient 532 </filter>
533 inkscape:collect="always" 533 <filter id="fb">
534 xlink:href="#linearGradient4041" 534 <feGaussianBlur stdDeviation=".35"/>
535 id="radialGradient4060" 535 </filter>
536 gradientUnits="userSpaceOnUse" 536 <filter id="fa">
537 gradientTransform="matrix(0.05911206,2.6869855,-0.7234268,0.01591495,408.72779,-424.56452)" 537 <feGaussianBlur stdDeviation=".35"/>
538 cx="275.4422" 538 </filter>
539 cy="335.34866" 539 <filter id="ez">
540 fx="275.4422" 540 <feGaussianBlur stdDeviation=".35"/>
541 fy="335.34866" 541 </filter>
542 r="36.75" /> 542 <filter id="ey">
543 <radialGradient 543 <feGaussianBlur stdDeviation=".35"/>
544 inkscape:collect="always" 544 </filter>
545 xlink:href="#linearGradient4025" 545 <filter id="ex" x="-.031" y="-.109" width="1.062" height="1.219">
546 id="radialGradient4062" 546 <feGaussianBlur stdDeviation=".35"/>
547 gradientUnits="userSpaceOnUse" 547 </filter>
548 gradientTransform="matrix(0.05911206,2.6869855,-0.7234268,0.01591495,408.72779,-424.56452)" 548 <filter id="ew" x="-.031" y="-.121" width="1.063" height="1.243">
549 cx="275.4422" 549 <feGaussianBlur stdDeviation=".35"/>
550 cy="335.34866" 550 </filter>
551 fx="275.4422" 551 <clipPath id="ie">
552 fy="335.34866" 552 <path d="m266.27 924.57c-1.407 18.801-1.145 32.751 2.082 49.303 3.226 16.552 16.406 45.907 20.334 63.184 3.926 17.267 2.694 38.31-12.46 51.148-15.317 12.978-42.05 21.599-67.831 15.734s-69.55-49.223-88.59-70.228c-19.112-21.083-63.761-93.851-77.94-124.28-14.177-30.425-12.66-36.719-8.119-45.53-9.367-24.52-12.414-50.067-33.712-75.577 30.325 3.114 43.88 26.956 60.126 47.14-5.53-48.076-18.055-64.417-28.374-90.724 29.994 6.082 50.579 31.872 63.98 72.712 9.554-3.918 18.238-9.373 30.187-9.061-11.298-41.696-17.949-69.916-36.687-101.07 53.442 5.67 83.657 80.639 78.971 87.96 9.978-2.243 19.006-6.53 30.437-5.65-11.249-38.348-21.048-76.869-3.66-118.65 0 0 48.287 65.436 54.39 85.805 6.103 20.37 1.52 38.701 1.52 38.701s16.96 31.085 20.293 51.094c3.373 20.241-3.533 59.103-4.946 77.983z" enable-background="new" fill="#ada469" fill-rule="evenodd"/>
553 r="36.75" /> 553 </clipPath>
554 <linearGradient 554 <filter id="id">
555 inkscape:collect="always" 555 <feGaussianBlur stdDeviation="7.18"/>
556 xlink:href="#linearGradient4084" 556 </filter>
557 id="linearGradient4082" 557 <clipPath id="ic">
558 gradientUnits="userSpaceOnUse" 558 <path d="m266.27 924.57c-1.407 18.801-1.145 32.751 2.082 49.303 3.226 16.552 16.406 45.907 20.334 63.184 3.926 17.267 2.694 38.31-12.46 51.148-15.317 12.978-42.05 21.599-67.831 15.734s-69.55-49.223-88.59-70.228c-19.112-21.083-63.761-93.851-77.94-124.28-14.177-30.425-12.66-36.719-8.119-45.53-9.367-24.52-12.414-50.067-33.712-75.577 30.325 3.114 43.88 26.956 60.126 47.14-5.53-48.076-18.055-64.417-28.374-90.724 29.994 6.082 50.579 31.872 63.98 72.712 9.554-3.918 18.238-9.373 30.187-9.061-11.298-41.696-17.949-69.916-36.687-101.07 53.442 5.67 83.657 80.639 78.971 87.96 9.978-2.243 19.006-6.53 30.437-5.65-11.249-38.348-21.048-76.869-3.66-118.65 0 0 48.287 65.436 54.39 85.805 6.103 20.37 1.52 38.701 1.52 38.701s16.96 31.085 20.293 51.094c3.373 20.241-3.533 59.103-4.946 77.983z" enable-background="new" fill="#ada469" fill-rule="evenodd"/>
559 x1="182.35046" 559 </clipPath>
560 y1="256.11136" 560 <filter id="gd">
561 x2="145.53348" 561 <feGaussianBlur stdDeviation="6.82"/>
562 y2="542.20502" /> 562 </filter>
563 <clipPath 563 <clipPath id="ev">
564 clipPathUnits="userSpaceOnUse" 564 <path d="M760.16 935.83c6.794 18.903 10.494 33.3 11.89 51.212 1.397 17.912-3.783 51.801-2.9 70.656.881 18.845 8.133 40.099 27.345 48.969 19.419 8.966 49.319 10.211 74.12-3.146 24.8-13.357 57.4-70.326 70.974-97.309 13.624-27.084 38.76-114.5 44.66-149.77 5.9-35.27 2.551-41.3-4.617-49.055 2.64-27.84-1.5-54.935 13.11-87.186-30.249 11.826-37.382 40.161-48.319 65.505-8-50.933.21-71.273 3.319-101.22-29.065 14.778-42.862 47.114-45 92.857-10.924-1.304-21.391-4.434-33.571-.714-.264-46.023-1.464-76.889 8.91-114.21-53.254 21.027-62.946 106.59-56.052 112.78-10.883.535-21.371-1.297-32.857 2.857.638-42.57-.261-84.909-30-122.86 0 0-30.958 80.922-31.43 103.57s9.452 40.166 9.452 40.166-8.568 36.741-6.298 58.232c2.295 21.741 20.443 59.676 27.265 78.658z" enable-background="new" fill="#ada469" fill-rule="evenodd"/>
565 id="clipPath4100"> 565 </clipPath>
566 <path 566 <filter id="eu" x="-.144" y="-.103" width="1.288" height="1.206">
567 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.9000755px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 567 <feGaussianBlur stdDeviation="7.389"/>
568 d="m 265.93541,126.68393 -18.76721,168.86308 174.10543,-73.12068 61.9544,88.65883 57.8844,-31.9903 -37.53442,-180.059677 -237.6426,27.648747 z" 568 </filter>
569 id="path4102" 569 <clipPath id="et">
570 sodipodi:nodetypes="ccccccc" 570 <path d="M760.16 935.83c6.794 18.903 10.494 33.3 11.89 51.212 1.397 17.912-3.783 51.801-2.9 70.656.881 18.845 8.133 40.099 27.345 48.969 19.419 8.966 49.319 10.211 74.12-3.146 24.8-13.357 57.4-70.326 70.974-97.309 13.624-27.084 38.76-114.5 44.66-149.77 5.9-35.27 2.551-41.3-4.617-49.055 2.64-27.84-1.5-54.935 13.11-87.186-30.249 11.826-37.382 40.161-48.319 65.505-8-50.933.21-71.273 3.319-101.22-29.065 14.778-42.862 47.114-45 92.857-10.924-1.304-21.391-4.434-33.571-.714-.264-46.023-1.464-76.889 8.91-114.21-53.254 21.027-62.946 106.59-56.052 112.78-10.883.535-21.371-1.297-32.857 2.857.638-42.57-.261-84.909-30-122.86 0 0-30.958 80.922-31.43 103.57s9.452 40.166 9.452 40.166-8.568 36.741-6.298 58.232c2.295 21.741 20.443 59.676 27.265 78.658z" enable-background="new" fill="#ada469" fill-rule="evenodd"/>
571 inkscape:connector-curvature="0" /> 571 </clipPath>
572 </clipPath> 572 <filter id="es" x="-.09" y="-.103" width="1.181" height="1.205">
573 <radialGradient 573 <feGaussianBlur stdDeviation="5.346"/>
574 inkscape:collect="always" 574 </filter>
575 xlink:href="#linearGradient4106" 575 <marker id="eq" overflow="visible" orient="auto">
576 id="radialGradient4112" 576 <path d="m-1.2 0l-1 1 3.5-1-3.5-1 1 1z" fill="#f8d615" fill-rule="evenodd" stroke="#f8d615" stroke-width=".2pt"/>
577 cx="250.22678" 577 </marker>
578 cy="475.09763" 578 <radialGradient id="r" cx="142.96" cy="107.09" r="66.982" gradientTransform="matrix(-.33248 .90223 -.95824 -.35312 305.29 19.909)" gradientUnits="userSpaceOnUse">
579 fx="250.22678" 579 <stop stop-color="#1e2323" offset="0"/>
580 fy="475.09763" 580 <stop stop-color="#181d1d" offset=".56"/>
581 r="95.98877" 581 <stop offset="1"/>
582 gradientTransform="matrix(1.2259004,-0.7077739,0.1413989,0.2449102,322.22326,608.91815)" 582 </radialGradient>
583 gradientUnits="userSpaceOnUse" /> 583 <radialGradient id="q" cx="317.79" cy="129.65" r="47.863" gradientTransform="matrix(1.0036 0 0 1.6613 -160.53 -96.205)" gradientUnits="userSpaceOnUse" xlink:href="#u"/>
584 <linearGradient 584 <radialGradient id="p" cx="325.31" cy="80.91" r="26.938" gradientTransform="matrix(2.0748 -.1578 .23824 3.1325 -550.77 -65.729)" gradientUnits="userSpaceOnUse">
585 inkscape:collect="always" 585 <stop stop-color="#283131" stop-opacity="0" offset="0"/>
586 xlink:href="#linearGradient4478" 586 <stop stop-color="#1e2424" stop-opacity="0" offset=".513"/>
587 id="linearGradient4484" 587 <stop offset="1"/>
588 x1="412.08926" 588 </radialGradient>
589 y1="404.91574" 589 <linearGradient id="kt" x1="347.9" x2="275.58" y1="1070.2" y2="867.98" gradientUnits="userSpaceOnUse">
590 x2="417.375" 590 <stop offset="0"/>
591 y2="401.82648" 591 <stop offset=".022"/>
592 gradientUnits="userSpaceOnUse" /> 592 <stop offset=".759"/>
593 <linearGradient 593 <stop stop-color="#232323" offset=".885"/>
594 inkscape:collect="always" 594 <stop stop-color="#595959" offset="1"/>
595 xlink:href="#linearGradient4478" 595 </linearGradient>
596 id="linearGradient4486" 596 <linearGradient id="kh" x1="603.84" x2="616.24" y1="627.85" y2="585.43" gradientTransform="translate(450.03 73.844)" gradientUnits="userSpaceOnUse" xlink:href="#t"/>
597 x1="411.91071" 597 <linearGradient id="el" x1="609.31" x2="560.83" y1="239.47" y2="262.86" gradientTransform="translate(450.03 73.844)" gradientUnits="userSpaceOnUse">
598 y1="404.91577" 598 <stop stop-color="#0a0c0c" offset="0"/>
599 x2="417.375" 599 <stop stop-color="#1f2727" stop-opacity="0" offset="1"/>
600 y2="401.82648" 600 </linearGradient>
601 gradientUnits="userSpaceOnUse" /> 601 <radialGradient id="ek" cx="543.67" cy="147.31" r="47.863" gradientTransform="matrix(2.1382 0 0 2.3383 -77.038 -101.69)" gradientUnits="userSpaceOnUse" xlink:href="#u"/>
602 <linearGradient 602 <radialGradient id="ef" cx="385" cy="237.01" r="86.929" gradientTransform="matrix(1 0 0 .8562 0 34.08)" gradientUnits="userSpaceOnUse">
603 inkscape:collect="always" 603 <stop stop-color="#ada469" offset="0"/>
604 xlink:href="#linearGradient4478" 604 <stop stop-color="#ada469" offset=".811"/>
605 id="linearGradient4488" 605 <stop stop-color="#fff" offset="1"/>
606 x1="411.91071" 606 </radialGradient>
607 y1="405.54077" 607 <linearGradient id="ee" x1="398.21" x2="379.29" y1="343.52" y2="265.31" gradientTransform="translate(450.03 73.844)" gradientUnits="userSpaceOnUse" xlink:href="#s"/>
608 x2="417.375" 608 <radialGradient id="ed" cx="397.16" cy="336.95" r="36.75" gradientTransform="translate(-375.32 -318.42) scale(1.945)" gradientUnits="userSpaceOnUse">
609 y2="401.82648" 609 <stop stop-color="#344040" offset="0"/>
610 gradientUnits="userSpaceOnUse" /> 610 <stop stop-color="#222929" offset=".5"/>
611 <linearGradient 611 <stop offset="1"/>
612 inkscape:collect="always" 612 </radialGradient>
613 xlink:href="#linearGradient4478" 613 <radialGradient id="ec" cx="402.49" cy="317.24" r="23.714" gradientTransform="translate(-1358.3 -1070.7) scale(4.3777)" gradientUnits="userSpaceOnUse">
614 id="linearGradient4490" 614 <stop offset="0"/>
615 x1="412.08926" 615 <stop stop-color="#1d1d1d" offset="1"/>
616 y1="405.54077" 616 </radialGradient>
617 x2="417.375" 617 <radialGradient id="eb" cx="250.23" cy="475.1" r="95.989" gradientTransform="matrix(1.2259 -.70777 .1414 .24491 322.22 608.92)" gradientUnits="userSpaceOnUse">
618 y2="401.82648" 618 <stop stop-color="#d9e002" offset="0"/>
619 gradientUnits="userSpaceOnUse" /> 619 <stop stop-color="#a9ae01" offset=".5"/>
620 <linearGradient 620 <stop stop-color="#717501" offset="1"/>
621 inkscape:collect="always" 621 </radialGradient>
622 xlink:href="#linearGradient4478" 622 <radialGradient id="m" cx="228.81" cy="440.27" r="119.18" gradientTransform="matrix(1.1323 .76595 -1.455 2.151 588.75 -711.8)" gradientUnits="userSpaceOnUse">
623 id="linearGradient4492" 623 <stop stop-color="#ff0" offset="0"/>
624 x1="411.73212" 624 <stop stop-color="#b2b200" offset="1"/>
625 y1="405.54077" 625 </radialGradient>
626 x2="417.375" 626 <radialGradient id="dz" cx="275.44" cy="335.35" r="36.75" gradientTransform="matrix(.05911 2.687 -.72343 .01591 408.73 -424.56)" gradientUnits="userSpaceOnUse">
627 y2="401.82648" 627 <stop stop-color="#ff0" offset="0"/>
628 gradientUnits="userSpaceOnUse" /> 628 <stop stop-color="#ff0" stop-opacity="0" offset="1"/>
629 <radialGradient 629 </radialGradient>
630 inkscape:collect="always" 630 <linearGradient id="l" x1="182.35" x2="145.53" y1="256.11" y2="542.21" gradientUnits="userSpaceOnUse">
631 xlink:href="#linearGradient4862" 631 <stop stop-color="#7d7d00" offset="0"/>
632 id="radialGradient4868" 632 <stop stop-color="#c6c700" offset=".364"/>
633 cx="429.56738" 633 <stop stop-color="#f6f800" offset="1"/>
634 cy="377.42877" 634 </linearGradient>
635 fx="429.56738" 635 <radialGradient id="dy" cx="296.34" cy="427.18" r="19.704" gradientTransform="translate(-599.29 -827.09) scale(2.9797)" gradientUnits="userSpaceOnUse">
636 fy="377.42877" 636 <stop stop-opacity="0" offset="0"/>
637 r="72.079735" 637 <stop offset="1"/>
638 gradientTransform="matrix(1,0,0,0.618034,0,144.16496)" 638 </radialGradient>
639 gradientUnits="userSpaceOnUse" /> 639 <radialGradient id="dx" cx="429.57" cy="377.43" r="72.08" gradientTransform="matrix(1 0 0 .61803 0 144.16)" gradientUnits="userSpaceOnUse">
640 <radialGradient 640 <stop stop-color="#e2e2e2" offset="0"/>
641 inkscape:collect="always" 641 <stop stop-color="#e2e2e2" stop-opacity="0" offset="1"/>
642 xlink:href="#linearGradient4870" 642 </radialGradient>
643 id="radialGradient4876" 643 <radialGradient id="dw" cx="437.7" cy="391.22" r="36.612" gradientTransform="matrix(1 0 0 .61803 0 149.43)" gradientUnits="userSpaceOnUse">
644 cx="437.6991" 644 <stop stop-color="#c7bd80" offset="0"/>
645 cy="391.21735" 645 <stop stop-color="#c7bd80" stop-opacity="0" offset="1"/>
646 fx="437.6991" 646 </radialGradient>
647 fy="391.21735" 647 <linearGradient id="dv" x1="412.09" x2="417.38" y1="404.92" y2="401.83" gradientUnits="userSpaceOnUse" xlink:href="#j"/>
648 r="36.611931" 648 <linearGradient id="du" x1="411.91" x2="417.38" y1="404.92" y2="401.83" gradientUnits="userSpaceOnUse" xlink:href="#j"/>
649 gradientTransform="matrix(1,0,0,0.618034,0,149.43174)" 649 <linearGradient id="ej" x1="411.91" x2="417.38" y1="405.54" y2="401.83" gradientUnits="userSpaceOnUse" xlink:href="#j"/>
650 gradientUnits="userSpaceOnUse" /> 650 <linearGradient id="ei" x1="412.09" x2="417.38" y1="405.54" y2="401.83" gradientUnits="userSpaceOnUse" xlink:href="#j"/>
651 <radialGradient 651 <linearGradient id="eh" x1="411.73" x2="417.38" y1="405.54" y2="401.83" gradientUnits="userSpaceOnUse" xlink:href="#j"/>
652 inkscape:collect="always" 652 <linearGradient id="jr" x1="1255.7" x2="893.7" y1="667.09" y2="858.01" gradientUnits="userSpaceOnUse" xlink:href="#n"/>
653 xlink:href="#linearGradient4013" 653 <linearGradient id="ft" x1="603.84" x2="616.24" y1="627.85" y2="585.43" gradientTransform="matrix(1.0057 0 0 2.3995 3424.4 -24.137)" gradientUnits="userSpaceOnUse" xlink:href="#t"/>
654 id="radialGradient3585" 654 <radialGradient id="fl" cx="418.3" cy="342.48" r="131.45" gradientTransform="matrix(1.3957 .62111 -.42441 .95372 -15.062 -227.97)" gradientUnits="userSpaceOnUse" xlink:href="#s"/>
655 gradientUnits="userSpaceOnUse" 655 <radialGradient id="fg" cx="275.44" cy="335.35" r="36.75" gradientTransform="matrix(.05911 2.687 -.72343 .01591 408.73 -424.56)" gradientUnits="userSpaceOnUse" xlink:href="#n"/>
656 gradientTransform="matrix(1.1323239,0.7659488,-1.4550286,2.1510098,588.75376,-711.79716)" 656 <clipPath id="ga">
657 cx="228.81355" 657 <path d="M3492.3 296.46H3930v902.66h-437.7z" fill="#fff"/>
658 cy="440.26971" 658 </clipPath>
659 fx="228.81355" 659 </defs>
660 fy="440.26971" 660 <g stroke-miterlimit="1">
661 r="119.17509" /> 661 <path d="M10.45 109.38h1876.7v1563H10.45z" enable-background="new" fill="#a8a8a8" stroke="#000" stroke-width="20.9"/>
662 <linearGradient 662 <path d="M2337.1 111.42h1878.8v1565H2337.1z" enable-background="new" fill="none" stroke="#000" stroke-width="20.925"/>
663 inkscape:collect="always" 663 <path d="M2358.4 132.96h1833.4v1522.9H2358.4z" enable-background="new" fill="#a8a8a8" stroke="#f83615" stroke-width="20.391"/>
664 xlink:href="#linearGradient4084" 664 </g>
665 id="linearGradient3587" 665 <g fill-rule="evenodd">
666 gradientUnits="userSpaceOnUse" 666 <path transform="translate(-2833.5 -4370) scale(10.727)" d="M304.64 526.65c-10 .357-18.214 2.857-18.214 2.857l7.5 6.071 10.357 3.572 16.071.357 22.5-5.357 7.857 1.071 20.357-2.143-10.357 6.786c5.46-1.023 17.393 3.57 9.643 5.357-1.74.402 13.929-4.643 13.929-4.643l2.5-4.642 3.571-9.286h11.43l18.213-4.643 3.572-5-16.071 1.071-12.143 2.143-14.643-5-70.692 16.708-5.38-5.279z" enable-background="new" filter="url(#ep)" opacity=".5"/>
667 x1="182.35046" 667 <g enable-background="new">
668 y1="256.11136" 668 <path transform="matrix(.71084 -.19374 .26296 .96481 552.25 332.01)" d="m245.12 100.05s-47.128-31.647-67.215-35.801c-20.038-4.144-38.473-3.318-51.934 13.607s-12.077 61.265-13.536 86.97 2.55 70.177 17.605 88.666c15.055 18.488 45.886 13.585 49.927 21.414 2.213 4.287 65.152-174.86 65.152-174.86z" enable-background="accumulate" fill="url(#r)"/>
669 x2="145.53348" 669 <path transform="matrix(.71084 -.19374 .26296 .96481 552.25 332.01)" d="M135.38 82.018s26.344 1.939 37.633 13.903c11.415 12.097 13.735 21.332 15.296 37.735 1.563 16.425-.85 28.418-7.814 36.037s-1.004 19.583-25.916 12.071-27.032-27.783-26.515-46.305c.517-18.529 7.316-53.441 7.316-53.441z" enable-background="accumulate" fill="url(#q)"/>
670 y2="542.20502" /> 670 <path transform="matrix(.71084 -.19374 .26296 .96481 552.25 332.01)" d="M135.65 81.927s-4.645 16.365.588 28.563c5.488 12.793 27.224 44.26 27.224 54.656l22.656-5c2.542-6.966 3.21-15.752 2.188-26.5-1.562-16.403-3.867-25.621-15.281-37.719-9.655-10.232-31.593-13.375-37.375-14z" enable-background="new" fill="url(#p)"/>
671 <clipPath 671 </g>
672 clipPathUnits="userSpaceOnUse" 672 <path d="m893.6 1350.3c-4.286 0.714-27.628 3.618-57.857 10s-57.314 4.966-135.79 17.33c-79.852 12.581-94.064 42.542-108.12 47.064-14.7 4.729-145.38-65.822-145.38-65.822l4.286-94.286s85.886-16.201 112.14-33.571c26.257-17.37 45.582-49.666 59.286-71.429s32.857-71.429 32.857-71.429l238.57 262.14z" enable-background="accumulate" stroke="#000"/>
673 id="clipPath8514"> 673 <path transform="translate(324.57 331.53)" d="m332.34 898.39l-32.732-61.3-37.617 45.106c2.177 1.317 5.774-20.856 45.6-64.417l24.749 80.61z" clip-path="url(#eo)" enable-background="accumulate" fill="#fff" filter="url(#kv)" opacity=".5"/>
674 <path 674 <path transform="translate(324.57 331.53)" d="m200.82 863.03l146.37-51.619 243.95 226.27-241.83 140.01-181.02-87.681 32.527-226.98z" clip-path="url(#ku)" enable-background="accumulate" fill="url(#kt)" filter="url(#ks)"/>
675 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#262f2f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" 675 <path d="m691.46 835.66s-29.554 40.573-47.857 74.286-58.621 126.36-70.357 171.07c-11.759 44.803-62.5 123.57-62.5 123.57l76.071 18.214s11.807-12.823 31.071-46.071 60.357-138.57 60.357-138.57l13.214-202.5z" enable-background="accumulate" fill="#0f0f0f"/>
676 d="m 352.24553,211.99185 c -3.80443,-25.26423 -16.80972,-50.63802 -17.1568,-75.52523 -0.18626,-13.35552 3.27285,-26.57091 13.75553,-39.554046 36.34702,-65.295835 116.94091,-84.694685 185.93466,-91.465427 86.92239,-11.016801 184.91267,17.940072 233.37134,95.401283 54.12402,75.7333 56.67476,172.53912 80.61204,259.52795 29.43779,127.1276 54.77914,256.21414 60.39224,386.85035 -3.06348,78.18185 -8.42634,165.18415 -60.50321,228.13413 -48.02654,50.35744 -122.78647,50.05304 -187.06988,59.00234 -90.55539,4.655 -184.35153,-16.1458 -261.7839,-64.19824 -64.77564,-37.94001 -95.73019,-113.47863 -97.2794,-186.01958 -8.38917,-79.87516 26.39152,-153.80851 51.6204,-227.15961 7.47061,-82.76107 9.41286,-166.24775 9.65334,-249.38484 -0.83682,-32.19544 -7.08953,-63.81733 -11.54636,-95.60908 z" 676 <path transform="translate(324.57 331.53)" d="m430.28 381.94c-7.071 2.828-236.18 32.152-236.18 32.152l-39.64 359.83 90.198 92.64 52.326-114.55 100.47-186.39 32.828-183.68z" clip-path="url(#kr)" enable-background="accumulate" fill="#fff" filter="url(#kq)" opacity=".4"/>
677 id="path8516" 677 <path d="m1018.2 1359.5s23.256 11.394 36.068 20.476c12.697 9.001 29.472 24.649 41.692 37.36 12.306 12.8 20.113 22.599 41.533 24.161 21.432 1.563 53.282-8.788 73.296-24.664 20.014-15.877 45.647-69.233 45.647-69.233l-127.16-143.07" enable-background="accumulate" stroke="#000"/>
678 sodipodi:nodetypes="cscccccccccccc" 678 <path transform="translate(324.57 331.53)" d="M331.34 641.5L216.17 835.36l44.042 90.598 97.581-193.75-26.456-90.711z" clip-path="url(#kp)" enable-background="accumulate" filter="url(#ko)" opacity=".75"/>
679 inkscape:connector-curvature="0" /> 679 <g enable-background="new">
680 </clipPath> 680 <path d="M1113.913 623.101l-.09-.002c-1.48.72-6.744.842-7.674 8.704-.872 7.373 12.962 18.694 14.976 19.936 1.626 1.001 3.407 1.81 5.174 2.325l1.403.382c1.883.43 3.679.575 5.134.496 3.16-.173 5.184-.339 7.197-.493 2.013-.155 2.577-.75 3.686-.866 1.15-.12 2.242.375 6.309-.155 4.066-.53 5.556-.79 6.288-1.07.76-.29 1.85-.663 2.534-1.25 1.952.213 3.803.145 5.281-.241 3.063-.8 5.055-1.3 6.958-1.968 1.527-.536 2.499-1.426 2.744-1.698.245-.271.181-.712.21-.73.046-.03.348-.055.546-.378 1.065-1.737 2.951-5.325 3.143-5.993.191-.664.322-1.324.417-1.713.056-.225-.045-.89-.017-.946.04-.078.315-.216.399-.457.402-1.16.34-2.183.29-3.616-.05-1.433-.438-4.695-.99-5.618-.353-.593-.703-.88-1.044-1.033-.065-.025-.118-.06-.18-.083-.02-.007-.042-.002-.061-.007-.301-.111-.586-.228-1.124-.35-.966-.22-2.379-.535-3.914-.702a19.278 19.278 0 0
681 <clipPath 6810-1.563-.085c-3.571-.097-9.064-.045-10.338.446-1.584-.518-3.852-1.06-5.845-1.144-3.069-.13-4.974-.228-6.914-.324-1.94-.095-1.72.194-2.941.134-1.32-.065-1.75-.426-5.537-.543-3.556-.11-9.035-.04-10.338.447-1.584-.52-3.85-1.06-5.845-1.144-3.07-.131-4.978-.197-6.918-.293-.66-.032-1.05.004-1.356.033z" enable-background="new" fill="#bcb786"/>
682 clipPathUnits="userSpaceOnUse" 682 <g transform="rotate(2.568 -22364 20373)" clip-path="url(#kn)" enable-background="new" filter="url(#km)">
683 id="clipPath8604"> 683 <path d="M229.94-409.12c-3.558.05-9.024.36-10.303.904-1.606-.447-3.903-.881-5.9-.877a979.03 979.03 0 0 1-6.907 0c-.66-.003-1.048.068-1.353.11v1.096c.12-.18.393-.69.95-.767.747-.103 5.17-.151 7.31-.11 1.775.035 4.455.274 6.39.96.32.113.618.273.891.41 1.964.987 7.944 4.302 7.944 4.302s-6.633-3.948-7.483-4.439c-.203-.117-.575-.258-1.036-.41 1.22-.449 5.076-.62 7.828-.713 3.024-.102 3.348-.09 5.41.192 2.13.29 3.34.602 3.34.602s-.08-.64 1.035-.794c.748-.103 5.17-.152 7.31-.11 2.07.04 5.366.407 7.282 1.37 1.003.504 3.035 1.569 4.795 2.536l.096-.02s-3.58-2.162-4.43-2.653c-.204-.117-.575-.258-1.037-.411 1.22-.448 5.047-.62 7.8-.712 3.024-.102 3.347-.09 5.41.191 1.954.267 3.013.53 3.195.576l-.027-.312a8.503 8.503 0 0 0-1.4-.357c-1.301-.235-3.4-.602-5.51-.564-3.571.064-9.052.356-10.302.904-1.606-.447-3.877-.881-5.871-.877-3.072.007-4.994.01-6.936
684 <path 6840-1.943-.009-1.713.28-2.936.274-1.322-.005-1.766-.354-5.555-.301M206.2-407.48c1.92.817 4.577 2.193 6.159 3.397s2.908 1.774 5.555 3.918c.885.718 1.748 1.35 2.591 1.922l.541-.19a57.511 57.511 0 0 1-2.269-1.622c-2.822-2.12-3.627-2.81-6.015-4.274s-4.1-2.366-6.562-3.15" enable-background="new"/>
685 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#262f2f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" 685 <path d="M237.8-407.48c1.92.817 4.606 2.193 6.188 3.397.813.62 1.558 1.07 2.45 1.654l.65-.116a40.414 40.414 0 0 0-2.697-1.784c-2.389-1.465-4.128-2.366-6.59-3.151" enable-background="new"/>
686 d="m 352.24553,211.99185 c -3.80443,-25.26423 -16.80972,-50.63802 -17.1568,-75.52523 -0.18626,-13.35552 3.27285,-26.57091 13.75553,-39.554046 36.34702,-65.295835 116.94091,-84.694685 185.93466,-91.465427 86.92239,-11.016801 184.91267,17.940072 233.37134,95.401283 54.12402,75.7333 56.67476,172.53912 80.61204,259.52795 29.43779,127.1276 54.77914,256.21414 60.39224,386.85035 -3.06348,78.18185 -8.42634,165.18415 -60.50321,228.13413 -48.02654,50.35744 -122.78647,50.05304 -187.06988,59.00234 -90.55539,4.655 -184.35153,-16.1458 -261.7839,-64.19824 -64.77564,-37.94001 -95.73019,-113.47863 -97.2794,-186.01958 -8.38917,-79.87516 26.39152,-153.80851 51.6204,-227.15961 7.47061,-82.76107 9.41286,-166.24775 9.65334,-249.38484 -0.83682,-32.19544 -7.08953,-63.81733 -11.54636,-95.60908 z" 686 </g>
687 id="path8606" 687 <g transform="rotate(6.561 -6814.9 734.73)" clip-path="url(#kl)">
688 sodipodi:nodetypes="cscccccccccccc" 688 <path d="M1056.2-278.8c4.145-1.479 10 3.125 10 3.125.899.28 2.725-.894 2.624-1.686 0 0-1.55-1.86-.374-2.939s5.296 1.507 7.5 1.625 5.562-.23 7-.75 1.113-1.425 2.625-1.75 5.119 1.038 7.06 1.169 4.649.334 5.815-.169.178-1.16 1.875-1.875 7.76-.957 9.625-.125 1.81.52 2.625 3 7.44 5.163-1.125 13.375-59.378 13.786-65.625 2.75 6.23-14.271 10.375-15.75z" enable-background="new" filter="url(#kk)" opacity=".75"/>
689 inkscape:connector-curvature="0" /> 689 <path d="M1058.5-275.43c4.145-1.479 10 3.125 10 3.125.899.28 2.725-.894 2.624-1.686 0 0-1.55-1.86-.374-2.939s5.296 1.507 7.5 1.625 5.562-.23 7-.75 1.113-1.425 2.625-1.75 5.119 1.038 7.06 1.169 4.649.334 5.815-.169.178-1.16 1.875-1.875 7.76-.957 9.625-.125 1.81.52 2.625 3 7.44 5.163-1.125 13.375-59.378 13.786-65.625 2.75 6.23-14.271 10.375-15.75z" enable-background="new" filter="url(#kj)" opacity=".75"/>
690 </clipPath> 690 </g>
691 <clipPath 691 </g>
692 clipPathUnits="userSpaceOnUse" 692 <path d="M676.821 543.52c-3.804-25.264-16.81-50.638-17.157-75.525-.186-13.356 3.273-26.571 13.756-39.554 36.347-65.296 116.94-84.695 185.93-91.465 86.922-11.017 184.91 17.94 233.37 95.401 54.124 75.733 56.675 172.54 80.612 259.53 29.438 127.13 54.779 256.21 60.392 386.85-3.063 78.182-8.426 165.18-60.503 228.13-48.026 50.357-122.79 50.053-187.07 59.002-90.555 4.655-184.35-16.146-261.78-64.198-64.776-37.94-95.73-113.48-97.279-186.02-8.39-79.875 26.392-153.81 51.62-227.16 7.47-82.761 9.413-166.25 9.653-249.38-.837-32.195-7.09-63.817-11.546-95.609z" enable-background="accumulate" fill="#101414"/>
693 id="clipPath8610"> 693 <path transform="translate(324.57 331.53)" d="M311.83 415.43l9.9 121.62-60.105 136.47 15.556 174.66c15.613 61.879 32.185 98.669 74.376 117.05 4.32-36.24-38.612-142.96-39.243-189.12-.631-46.184 10.83-108.61 30.678-158.3 20.048-50.192 36.897-44.846 42.125-92.593s-17.426-149.39-17.426-149.39l-55.86 39.598z" clip-path="url(#en)" enable-background="accumulate" fill="#fff" filter="url(#ki)" opacity=".25"/>
694 <path 694 <path transform="translate(48.571 195.53)" d="m1010 655.49s16.755 37.018 28.702 53.954c11.946 16.936 52.727 56.046 52.727 56.046l52.597-127.59" enable-background="accumulate" fill="url(#kh)"/>
695 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#262f2f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" 695 <path transform="translate(324.57 331.53)" d="m730.32 536.57c0 8.485 42.548 58.468 42.548 58.468l12.607-28.77-55.154-29.698z" clip-path="url(#kg)" enable-background="accumulate" fill="#fff" filter="url(#kf)" opacity=".08"/>
696 d="m 352.24553,211.99185 c -3.80443,-25.26423 -16.80972,-50.63802 -17.1568,-75.52523 -0.18626,-13.35552 3.27285,-26.57091 13.75553,-39.554046 36.34702,-65.295835 116.94091,-84.694685 185.93466,-91.465427 86.92239,-11.016801 184.91267,17.940072 233.37134,95.401283 54.12402,75.7333 56.67476,172.53912 80.61204,259.52795 29.43779,127.1276 54.77914,256.21414 60.39224,386.85035 -3.06348,78.18185 -8.42634,165.18415 -60.50321,228.13413 -48.02654,50.35744 -122.78647,50.05304 -187.06988,59.00234 -90.55539,4.655 -184.35153,-16.1458 -261.7839,-64.19824 -64.77564,-37.94001 -95.73019,-113.47863 -97.2794,-186.01958 -8.38917,-79.87516 26.39152,-153.80851 51.6204,-227.15961 7.47061,-82.76107 9.41286,-166.24775 9.65334,-249.38484 -0.83682,-32.19544 -7.08953,-63.81733 -11.54636,-95.60908 z" 696 </g>
697 id="path8612" 697 <g transform="translate(498.6 269.37)" clip-path="url(#ke)" enable-background="new">
698 sodipodi:nodetypes="cscccccccccccc" 698 <g transform="translate(-174.03 62.156)" filter="url(#em)">
699 inkscape:connector-curvature="0" /> 699 <g filter="url(#i)">
700 </clipPath> 700 <path d="M425.88 476.99c10.805-1.479 24.744 3.354 44.643 3.214s57.453-16.91 82.143-17.143 62.752 12.284 79.286 15 22.848-.158 27.5 7.857 1.927 10.747-10.357 20.714-40.79 12.636-66.071 12.857c-25.282.221-70.381 7.079-95.357 3.93s-56.938-7.824-68.929-17.858-19.851-16.732-17.5-23.929 13.837-3.164 24.643-4.643z" enable-background="new" fill="#fff" fill-rule="evenodd"/>
701 <clipPath 701 <path d="M343.65 412.6h381.84v181.02H343.65z" enable-background="accumulate" fill="none"/>
702 clipPathUnits="userSpaceOnUse" 702 </g>
703 id="clipPath8616"> 703 <g filter="url(#i)">
704 <path 704 <path d="m861.17 390.2c-10.462 9.714-86.98 19.005-100.71 29.286s-14.753 12.888-12.143 20 6.545 9.406 25.714 8.571 98.571-27.622 98.571-21.429l-11.429-36.429z" enable-background="new" fill="#fff" fill-rule="evenodd"/>
705 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#262f2f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" 705 <path d="M702.86 344.82h207.89v162.63H702.86z" enable-background="accumulate" fill="none"/>
706 d="m 352.24553,211.99185 c -3.80443,-25.26423 -16.80972,-50.63802 -17.1568,-75.52523 -0.18626,-13.35552 3.27285,-26.57091 13.75553,-39.554046 36.34702,-65.295835 116.94091,-84.694685 185.93466,-91.465427 86.92239,-11.016801 184.91267,17.940072 233.37134,95.401283 54.12402,75.7333 56.67476,172.53912 80.61204,259.52795 29.43779,127.1276 54.77914,256.21414 60.39224,386.85035 -3.06348,78.18185 -8.42634,165.18415 -60.50321,228.13413 -48.02654,50.35744 -122.78647,50.05304 -187.06988,59.00234 -90.55539,4.655 -184.35153,-16.1458 -261.7839,-64.19824 -64.77564,-37.94001 -95.73019,-113.47863 -97.2794,-186.01958 -8.38917,-79.87516 26.39152,-153.80851 51.6204,-227.15961 7.47061,-82.76107 9.41286,-166.24775 9.65334,-249.38484 -0.83682,-32.19544 -7.08953,-63.81733 -11.54636,-95.60908 z" 706 </g>
707 id="path8618" 707 </g>
708 sodipodi:nodetypes="cscccccccccccc" 708 <g enable-background="new" opacity=".18">
709 inkscape:connector-curvature="0" /> 709 <g transform="translate(-174.03 62.156)" filter="url(#i)">
710 </clipPath> 710 <path d="M425.88 476.99c10.805-1.479 24.744 3.354 44.643 3.214s57.453-16.91 82.143-17.143 62.752 12.284 79.286 15 22.848-.158 27.5 7.857 1.927 10.747-10.357 20.714-40.79 12.636-66.071 12.857c-25.282.221-70.381 7.079-95.357 3.93s-56.938-7.824-68.929-17.858-19.851-16.732-17.5-23.929 13.837-3.164 24.643-4.643z" enable-background="new" fill="#fff" fill-rule="evenodd"/>
711 <clipPath 711 <path d="M343.65 412.6h381.84v181.02H343.65z" enable-background="accumulate" fill="none"/>
712 clipPathUnits="userSpaceOnUse" 712 </g>
713 id="clipPath8622"> 713 <g transform="translate(-174.03 62.156)" filter="url(#i)">
714 <path 714 <path d="m861.17 390.2c-10.462 9.714-86.98 19.005-100.71 29.286s-14.753 12.888-12.143 20 6.545 9.406 25.714 8.571 98.571-27.622 98.571-21.429l-11.429-36.429z" enable-background="new" fill="#fff" fill-rule="evenodd"/>
715 style="display:inline;opacity:1;fill:#202020;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" 715 <path d="M702.86 344.82h207.89v162.63H702.86z" enable-background="accumulate" fill="none"/>
716 d="m 821.64329,477.88997 c 0,0 22.61947,-6.50681 35.74275,-5.87273 13.12328,0.63409 30.64158,1.93862 43.70885,12.18619 13.06727,10.24756 25.06774,27.14007 34.11239,58.36965 9.04465,31.22958 1.69832,99.25201 -6.17603,143.34735 -7.87435,44.09534 -28.2651,106.11298 -45,140 -16.7349,33.88702 -49.79771,77.4952 -60.56943,89.87616 -11.36422,13.06197 -56.20589,36.42617 -79.43057,42.26667 5.3033,-10.6066 48.89976,-50.58884 35,-60.71426 -14.01897,-10.21226 -45.76009,45.98236 -84.29315,29.03317 21.38231,-13.13212 41.7794,-51.18606 34.04061,-66.59445 -7.84025,-15.61039 -30.70493,48.75757 -93.53554,37.01288 30.05204,-27.52666 55.40706,-70.90401 41.2627,-82.9797 -14.41516,-12.30687 -60.46175,54.29315 -60.46175,54.29315 0,0 -2.8219,-41.70118 13.7732,-68.60732 16.63935,-26.97787 79.65297,-81.61527 99.55313,-111.70342 19.90015,-30.08814 33.61256,-66.00902 42.13542,-92.51794 8.52286,-26.50892 15.80094,-77.09954 15.80094,-77.09954" 716 </g>
717 id="path8624" 717 </g>
718 sodipodi:nodetypes="czzzzzzczczczczzzc" 718 </g>
719 inkscape:connector-curvature="0" /> 719 <g transform="translate(48.571 195.53)" fill-rule="evenodd">
720 </clipPath> 720 <path transform="translate(276 136)" d="m582.66-7.418l113.14 86.267 108.89 258.8 38.184 207.89 120.21 91.924s-12.728-287.09-19.799-313.96-149.91-393.15-149.91-393.15l-210.72 62.225z" clip-path="url(#kd)" enable-background="accumulate" filter="url(#kc)" opacity=".75"/>
721 <clipPath 721 <path d="m964.14 239.6s8.677 10.897 24.107 11.964c15.43 1.068 49.722-39.953 70.179-52.143 20.479-12.204 47.046-26.602 63.929-20.357 16.882 6.245 22.158 26.436 27.857 48.036 5.7 21.6 6.719 61.814-2.679 92.857-9.397 31.043-50.502 73.104-65.356 103.39s-11.607 39.821-11.607 39.821" enable-background="accumulate" fill="url(#el)"/>
722 clipPathUnits="userSpaceOnUse" 722 <path d="m1124.5 207.63c-15.893-0.893-49.719 12.106-66.071 24.286-16.439 12.244-29.221 24.114-29.286 52.143-0.065 28.206 13.119 39.076 29.107 46.964s33.686 7.12 51.964-11.786c18.278-18.905 14.286-111.61 14.286-111.61z" enable-background="new" fill="url(#ek)"/>
723 id="clipPath8642"> 723 <ellipse transform="matrix(.94347 -.12399 .14401 1.0958 451.95 134.6)" cx="385" cy="237.01" rx="86.429" ry="73.929" clip-path="url(#kb)" enable-background="accumulate" fill="url(#ef)" filter="url(#je)" opacity=".75"/>
724 <path 724 <path transform="translate(450.03 73.844)" d="m527.61 407.45s-122.04 38.403-187.51 9.632c-65.473-28.772-74.377-124.72-74.377-124.72s73.382-80.504 129.92-83.615c55.827-3.072 90.574 20.143 114.87 65.852 24.352 45.813 17.101 132.85 17.101 132.85z" enable-background="accumulate" fill="url(#jd)" mask="url(#jc)"/>
725 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#0f0f0f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" 725 <path d="m772.17 393.35s36.218-27.382 51.607-35.893c15.177-8.393 25.714-11.607 35.893-11.607l-15.536 66.964" enable-background="accumulate" fill="url(#ee)"/>
726 d="m 366.88839,504.13471 c 0,0 -29.55406,40.57305 -47.85714,74.28571 -18.30309,33.71267 -58.62109,126.35694 -70.35714,171.07143 -11.7594,44.80344 -62.5,123.57144 -62.5,123.57144 l 76.07143,18.21428 c 0,0 11.80712,-12.82335 31.07142,-46.07143 19.2643,-33.24808 60.35715,-138.57143 60.35715,-138.57143 l 13.21428,-202.5 z" 726 <circle transform="translate(449.5 74.915)" cx="409.29" cy="306.65" r="36.25" enable-background="accumulate" fill="url(#ed)"/>
727 id="path8644" 727 <path transform="translate(276 136)" d="m311.83 415.43l9.9 121.62-60.105 136.47 15.556 174.66c15.613 61.879 32.185 98.669 74.376 117.05 4.32-36.24 8.682-72.368-31.243-223.12l17.678-69.296 72.125-138.59-42.426-158.39-55.86 39.598z" clip-path="url(#en)" enable-background="accumulate" fill="#fff" filter="url(#jb)" opacity=".3"/>
728 sodipodi:nodetypes="czzcczcc" 728 <path d="m635.21 581.13c-14.142 12.728 39.233 34.58 76.368 24.042s104.64-35.564 103.24-79.196c-1.407-43.632-76.368-128.69-76.368-128.69l-103.24 183.85z" enable-background="accumulate" filter="url(#ja)" opacity=".5"/>
729 inkscape:connector-curvature="0" /> 729 <circle transform="translate(449.67 74.915)" cx="410" cy="306.65" r="23.214" enable-background="accumulate" fill="url(#ec)"/>
730 </clipPath> 730 <circle transform="translate(452 73.487)" cx="414.29" cy="303.08" r="7.5" enable-background="accumulate" fill="#fff" filter="url(#iz)" stroke="#000" stroke-linejoin="bevel"/>
731 <clipPath 731 <path d="m789.32 478.35s7.023 19.569-1.071 35-42.323 38.988-67.5 50c-25.31 11.07-85.473 32.964-101.79 41.964-16.461 9.082-18.214 12.679-18.214 12.679s-7.147-19.064 28.75-51.786c36.172-32.972 142.03-48.05 159.82-87.857z" enable-background="accumulate" fill="url(#eb)"/>
732 clipPathUnits="userSpaceOnUse" 732 </g>
733 id="clipPath8658"> 733 <g enable-background="new">
734 <path 734 <g transform="translate(829.32 270.09)" fill-rule="evenodd">
735 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#0b0b0b;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" 735 <path transform="translate(-329.81)" d="M179.64 267.36c-22.41 39.703-60.616 115.78-69.286 149.64-8.647 33.775-8.772 66.417-.357 86.429 8.36 19.882 26.164 35.633 40.714 41.429-.597-14.376 14.373-43.286 72.857-72.5 58.626-29.285 78.382-27.131 103.57-47.143 25.63-20.362 8.206-79.647 3.214-93.929s-1.236-3.38-1.946-5.093c-10.689-25.816-34.214-54.43-64.483-64.55s-65.018-4.848-84.286 5.714z" clip-path="url(#ea)" fill="url(#m)"/>
736 d="m 569.03125,1018.7776 c -4.28571,0.7143 -27.62815,3.6181 -57.85714,10 -30.22899,6.3819 -99.77493,25.9619 -142.85715,35.7143 -43.08222,9.7524 -117.26443,34.816 -156.91262,27.2654 -39.64818,-7.5506 -89.51595,-64.4083 -89.51595,-64.4083 l 4.28572,-94.28571 c 0,0 85.88551,-16.20094 112.14285,-33.57143 26.25735,-17.37049 45.58238,-49.66598 59.28572,-71.42857 13.70334,-21.76259 32.85714,-71.42858 32.85714,-71.42858 l 238.57143,262.14289 z" 736 <ellipse transform="rotate(28.068 -88.085 -332.1)" cx="183.57" cy="338.08" rx="64.716" ry="134.01" enable-background="accumulate" fill="url(#dz)"/>
737 id="path8660" 737 <ellipse transform="rotate(28.068 -43.578 -333.81)" cx="183.57" cy="338.08" rx="64.716" ry="134.01" enable-background="accumulate" fill="url(#iy)"/>
738 sodipodi:nodetypes="czzzcczzcc" 738 </g>
739 inkscape:connector-curvature="0" /> 739 <path transform="translate(499.51 270.09)" d="M179.64 267.36c-22.41 39.703-60.616 115.78-69.286 149.64-8.647 33.775-8.772 66.417-.357 86.429 8.36 19.882 26.164 35.633 40.714 41.429-.597-14.376 14.373-43.286 72.857-72.5 58.626-29.285 78.382-27.131 103.57-47.143 25.63-20.362 8.206-79.647 3.214-93.929s-1.236-3.38-1.946-5.093c-10.689-25.816-34.214-54.43-64.483-64.55s-65.018-4.848-84.286 5.714z" clip-path="url(#ea)" enable-background="new" fill="none" filter="url(#ix)" stroke="url(#l)" stroke-width="20.8"/>
740 </clipPath> 740 </g>
741 <filter 741 <g transform="translate(48.571 195.53)" fill-rule="evenodd">
742 inkscape:collect="always" 742 <circle transform="translate(452.56 72.581)" cx="310.71" cy="398.08" r="19.704" enable-background="accumulate" stroke="#000" stroke-linejoin="bevel"/>
743 id="filter8802" 743 <circle transform="translate(450.56 72.581)" cx="310.71" cy="398.08" r="19.704" enable-background="accumulate" fill="url(#m)" filter="url(#iw)" stroke="url(#l)" stroke-width="20.8"/>
744 x="-0.35311759" 744 <circle transform="translate(450.56 72.581)" cx="310.71" cy="398.08" r="19.704" enable-background="accumulate" fill="url(#dy)"/>
745 width="1.7062352" 745 <ellipse transform="rotate(-4.471 1823.1 -5529.2)" cx="429.57" cy="377.43" rx="72.08" ry="44.548" enable-background="accumulate" fill="url(#dx)" filter="url(#iv)"/>
746 y="-0.1817714" 746 <ellipse transform="matrix(1.4358 -.07 .07 1.4358 235.18 -63.865)" cx="437.7" cy="391.22" rx="36.612" ry="22.627" enable-background="accumulate" fill="url(#dw)" filter="url(#iu)"/>
747 height="1.3635428"> 747 <g transform="translate(450.03 73.844)" enable-background="new" filter="url(#it)">
748 <feGaussianBlur 748 <circle cx="413.66" cy="401.83" r="3.214" enable-background="accumulate" stroke="url(#dv)"/>
749 inkscape:collect="always" 749 <circle transform="translate(13.125 8.125)" cx="413.66" cy="401.83" r="3.214" enable-background="accumulate" stroke="url(#du)"/>
750 stdDeviation="48.038491" 750 <circle transform="translate(32.946 7.5)" cx="413.66" cy="401.83" r="3.214" enable-background="accumulate" stroke="url(#ej)"/>
751 id="feGaussianBlur8804" /> 751 <circle transform="translate(24.911 -10.268)" cx="413.66" cy="401.83" r="3.214" enable-background="accumulate" stroke="url(#ei)"/>
752 </filter> 752 <circle transform="translate(47.589 -.625)" cx="413.66" cy="401.83" r="3.214" enable-background="accumulate" stroke="url(#eh)"/>
753 <filter 753 </g>
754 inkscape:collect="always" 754 </g>
755 id="filter8806" 755 <g fill="none" stroke="#000">
756 x="-0.61142862" 756 <path d="M944.771 678.46c.985 4.35 4.537 6.18 7.387 7.892 4.46 2.513 6.52 1.522 9.154-.758 1.602-1.921 10.683-4.698 15.594-7.07 4.33-1.46 8.904-5.36 13.385-8.335 3.395-1.627 5.347.355 7.829 1.01 2.944.717 4.411 2.172 6.06 3.536 2.397 1.175-.927 3.143 3.284 4.293 1.19.218 2.417.577 3.283-.505" enable-background="new"/>
757 width="2.2228572" 757 <path d="M959.421 670.88c2.315-.032 3.178.643 5.493-.82 3.455-3.082 5.402-3.146 7.955-4.42 3.026-1.315 6.535 8.152 10.102 9.849 2.395-.822 1.289 1.794 1.452 2.651.057 2.647 2.807 3.679 4.356 5.43 3.316 2.256 7.375 6.296 11.112 5.303 6.445-2.93 10.28-1.281 16.29-7.386.703-1.182-.585-6.895 3.093-7.198 2.524.254 4.166.05 6.06.569 5.442 2.117 7.738 6.45 14.71 7.955 6.184.966 7.613 3.794 13.89 5.05M925.551 679.05c2.399-.794 6.106 4.192 8.173 7.046.593 2.68 1.154 5.486.758 12.122.785 2.417 2.68 3.03 4.798 3.283 3.117-.537 5.877-1.325 7.324-3.03 1.871-1.943 5.312 2.393 8.08 4.04 3.61 1.912 7.775 1.979 11.87 2.273 1.703-.231 2.37 4.515 3.283 8.08.384 4.379-.886 6.896-1.768 9.85-.294 2.496 2.988 3.53 6.313 4.545 3.183.742 6.545 1.662 9.092 1.768 5.142.875 8.088 2.69 12.122 4.04 2.239.817 3.26 2.243 4.545 3.536" enable-background="new"/>
758 y="-0.14930232" 758 </g>
759 height="1.2986046"> 759 <g fill-rule="evenodd">
760 <feGaussianBlur 760 <path transform="translate(324.57 331.53)" d="m332 187.7s57.5-25.5 57.5-28 5.5-52 5.5-52 91-48.5 91.5-50.5 86-62 86-62l-186 22-75.5 106z" clip-path="url(#jz)" enable-background="new" fill="#fff" filter="url(#jy)" opacity=".25"/>
761 inkscape:collect="always" 761 <path d="m1745.9 918.08s-115.97 73.539-123.04 77.782c-7.071 4.243-230.52 137.18-230.52 137.18l4.243 39.598 216.37-100.41 117.38-101.82 15.556-52.326z" enable-background="accumulate" fill="#fff" opacity=".25"/>
762 stdDeviation="37.830213" 762 <path transform="translate(324.57 331.53)" d="m528.92 556.85c-5.657-1.414-181.02 74.953-181.02 74.953l-33.941 181.02 51.095 193.95 257.2 67.681s206.48 152.74 212.13 148.49c5.657-4.243 168.29-193.75 168.29-193.75l-159.81-183.85-46.669-178.19-267.29-110.31z" clip-path="url(#jx)" enable-background="accumulate" filter="url(#eg)" opacity=".5"/>
763 id="feGaussianBlur8808" /> 763 <path d="m1146.2 809.42s22.62-6.507 35.743-5.873 30.642 1.939 43.709 12.186c13.067 10.248 25.068 27.14 34.112 58.37 9.045 31.23 1.698 99.252-6.176 143.35-7.874 44.095-28.265 106.11-45 140-16.735 33.887-49.798 77.495-60.57 89.876-11.363 13.062-56.205 36.426-79.43 42.267 5.303-10.607 48.9-50.589 35-60.714-14.02-10.212-45.76 45.982-84.293 29.033 21.382-13.132 41.779-51.186 34.04-66.594-7.84-15.61-30.704 48.758-93.535 37.013 30.052-27.527 55.407-70.904 41.263-82.98-14.415-12.307-60.462 54.293-60.462 54.293s-2.822-41.7 13.773-68.607c16.639-26.978 79.653-81.615 99.553-111.7 19.9-30.088 33.613-66.009 42.136-92.518s15.8-77.1 15.8-77.1" enable-background="new" fill="#0c0c0c"/>
764 </filter> 764 <path transform="translate(324.57 331.53)" d="m770.75 609.18l-50.912 97.581-79.903 111.02 34.648 71.418 42.426 79.196 72.125-45.255 14.142-192.33 21.213-138.59-14.142-90.156-39.598 107.13z" clip-path="url(#jw)" enable-background="accumulate" fill="#fff" filter="url(#jv)" opacity=".25"/>
765 <filter 765 <path transform="translate(324.57 331.53)" d="m295 846.2l6.645-68.923s90.32 89.005 162.36 122.92 308 62 308 62l154-26-36 162-286 26-298-89-11-189z" clip-path="url(#ju)" enable-background="accumulate" filter="url(#eg)"/>
766 inkscape:collect="always" 766 <path transform="translate(498.6 269.37)" d="m405.8 845.99l74.953 65.054 2.5 16.88 19.403 10.159 6.492 23.051 31.709-8.371 14.849 48.083c12.257 12.728 89.793-113.11 55.86 38.184l-60.81 16.264-89.203-94.693-62.825-53.8 7.07-60.811z" clip-path="url(#jt)" enable-background="new" fill="#fff" filter="url(#o)"/>
767 id="filter8810" 767 <path d="m1207.9 1113.9c54.286-1.429 126.04-15.052 170-26.786 44.053-11.757 125.89-36.347 175.36-57.857 49.339-21.453 113.6-59.282 154.29-92.143 40.508-32.721 52.39-55.82 60.714-33.571 8.37 22.368-16.407 56.326-37.857 81.071-21.604 24.923-52.731 52.705-98.929 89.286s-156.08 101.58-212.86 128.57c-57.066 27.125-128.2 58.238-172.14 72.5s-131.43 31.071-131.43 31.071l92.857-192.14z" enable-background="accumulate" fill="#121212"/>
768 x="-0.23519406" 768 <path transform="translate(498.6 269.37)" d="m1241.6 652.95s-64.722 54.337-145.66 98.995c-82.024 45.255-284.26 93.338-284.26 93.338s-15.101 21.052 45.255 28.284 224.08-53.301 278.6-96.167 120.21-111.72 120.21-111.72l-14.142-12.728z" clip-path="url(#js)" enable-background="accumulate" fill="url(#jr)" filter="url(#jq)" opacity=".5"/>
769 width="1.4703881" 769 </g>
770 y="-0.24500646" 770 <g transform="translate(498.6 269.37)" clip-path="url(#jp)" enable-background="new">
771 height="1.4900129"> 771 <g filter="url(#em)">
772 <feGaussianBlur 772 <g transform="translate(-174.03 62.156)" filter="url(#i)">
773 inkscape:collect="always" 773 <path d="m1268.3 663.77s-0.296 26.161 4.643 37.857 20.038 26.487 28.572 31.429 18.929 8.571 18.929 8.571l117.86-115 17.857-75.714-96.43 38.571-91.428 74.286z" enable-background="new" fill="#fff" fill-rule="evenodd"/>
774 stdDeviation="58.328041" 774 <path d="M1197.8 486.14h333.75v309.71H1197.8z" enable-background="accumulate" fill="none"/>
775 id="feGaussianBlur8812" /> 775 </g>
776 </filter> 776 </g>
777 <filter 777 <g transform="translate(-174.03 62.156)" enable-background="new" filter="url(#i)" opacity=".18">
778 inkscape:collect="always" 778 <path d="m1268.3 663.77s-0.296 26.161 4.643 37.857 20.038 26.487 28.572 31.429 18.929 8.571 18.929 8.571l117.86-115 17.857-75.714-96.43 38.571-91.428 74.286z" enable-background="new" fill="#fff" fill-rule="evenodd"/>
779 id="filter8814" 779 <path d="M1197.8 486.14h333.75v309.71H1197.8z" enable-background="accumulate" fill="none"/>
780 x="-0.20466694" 780 </g>
781 width="1.4093339" 781 </g>
782 y="-0.29007819" 782 <path transform="translate(498.6 269.37)" d="M1264.2 605c-4.491.733-8.157 3.455-11.938 6.406-10.081 7.87-28.17 34.425-48.031 50.47-39.867 32.202-104 69.976-152.56 91.093-48.614 21.137-130.54 45.818-174.31 57.5-43.398 11.582-115.04 25.131-168.25 26.531l-4.562.125-2 4.125-92.844 192.12-6.5 13.47 14.656-2.845s87.27-16.65 132.34-31.28c44.725-14.518 115.79-45.668 173.03-72.876 57.603-27.38 166.94-91.98 214.28-129.47 46.36-36.71 77.805-64.717 99.938-90.25 10.9-12.576 22.745-27.53 31.03-42.75 8.287-15.219 19.16-44.218 13.688-58.844-1.218-3.254-2.552-6.06-4.594-8.5s-8.475-1.572-8.563-5.03c-.21-8.266-3.315-.245-4.812 0zm2.156 15.219c.415.586 1.031 1.558 1.782 3.563 2.896 7.742-1.441 31.899-8.813 45.438s-22.638 28.924-33.188 41.094c-21.075 24.314-51.904 51.862-97.938 88.312-45.05 35.672-155.46 101.09-211.41 127.69-56.892 27.042-128.1 58.118-171.25 72.125-36.365 11.803-95.845 23.834-115.72
783 height="1.5801564"> 78327.78l84.281-174.47c54.707-2.049 123.79-15.215 167.12-26.78 44.334-11.832 126.08-36.336 176.41-58.22 50.112-21.788 112.53-61.167 154.03-94.687 20.646-16.677 41.745-42.546 49.813-48.844 2.437-1.903 4.08-2.636 4.875-3z" clip-path="url(#jo)" enable-background="accumulate" fill="#050505" fill-rule="evenodd" filter="url(#jn)" opacity=".833"/>
784 <feGaussianBlur 784 <g transform="rotate(6.561 -6814.9 734.74)" enable-background="new" fill-rule="evenodd" mask="url(#jm)">
785 inkscape:collect="always" 785 <path d="M1111.48-285.971l-3.937 1.875c-.041.01-.1.02-.125.031-.42.213-.165.1-.657.312-.486.21-1.737.585-4.093 1.47-3.332 1.25-5.805 2.15-7 3.062-1.537.021-3.72.233-5.657.719a227.677 227.677 0 0 1-6.75 1.593c-1.894.42-1.675.642-2.875.875-1.296.252-1.721-.009-5.437.782-3.49.742-8.895 1.93-10.156 2.687-1.584-.18-3.868-.322-5.844-.031-3.04.447-4.916.673-6.844.906-.655.08-1.04.2-1.343.281-.427.132-.686.26-1.375.344-1.312.16-1.763-.157-5.532.281-3.554.413-9.005 1.273-10.25 1.938-1.599-.297-3.857-.534-5.843-.344-3.06.293-4.972.484-6.907.656-1.934.173-1.688.423-2.906.532-1.316.117-1.76-.164-5.531.25-3.542.388-9.008 1.209-10.281 1.875-1.6-.295-3.887-.507-5.875-.313-3.058.3-4.941.48-6.875.656-.658.06-1.04.179-1.344.25-.428.12-.683.218-1.375.282-1.316.12-1.76-.195-5.531.218-3.556.39-9.006 1.24-10.25
786 stdDeviation="22.300169" 7861.907-1.599-.295-3.86-.524-5.844-.313-3.056.325-4.974.526-6.906.719s-1.69.44-2.906.562c-1.315.132-1.763-.164-5.532.282-3.538.418-8.977 1.292-10.25 1.968-1.597-.28-3.86-.42-5.843-.187-3.052.358-4.945.568-6.875.781-.657.073-1.041.173-1.344.25-.427.127-.685.267-1.375.344-1.314.146-1.768-.174-5.531.312-3.55.46-8.979 1.42-10.22 2.125-1.592-.244-3.833-.381-5.812-.125-3.047.395-4.95.649-6.875.907-1.924.257-1.726.493-2.937.656-1.31.176-1.748-.105-5.5.469-3.525.538-8.924 1.699-10.188 2.437-1.588-.203-3.846-.255-5.813.094-3.026.536-4.899.861-6.812 1.187-.65.111-1.014.271-1.313.375-.42.165-.663.332-1.344.469-1.294.262-1.727-.006-5.437.813-3.499.771-8.846 2.382-10.062 3.218-1.563-.077-3.758.086-5.688.594-2.972.783-4.817 1.232-6.687 1.75s-1.667.767-2.844 1.094c-1.272.353-1.697.107-5.344 1.187-3.424 1.015-8.65 2.934-9.875 3.844-1.539.013-3.72.272-5.625.875-2.93.928-4.75 1.459-6.594
787 id="feGaussianBlur8816" /> 7872.063-.626.205-.991.392-1.28.53-.408.215-.654.41-1.313.626-1.255.411-1.686.189-5.281 1.437-3.39 1.178-8.595 3.214-9.782 4.157-1.524.06-3.65.395-5.53 1.062-2.898 1.028-4.7 1.676-6.532 2.313-1.832.637-1.628.848-2.781 1.25-1.247.434-1.664.2-5.22 1.562-3.338 1.28-8.486 3.483-9.687 4.469-1.507.108-3.635.499-5.5 1.219a1047.26 1047.26 0 0 1-6.437 2.469c-.617.233-.997.442-1.281.593v.031l-8 3.188-12.476 3.492 7.93 19.278c-.592 1.973 12.545-4.739 12.545-4.739.227-.144.45-.272.72-.375 1.08-.41 2.17-.215 6-1.687 3.828-1.472 5.223-2.005 5.905-2.406.68-.4 1.612-.88 2.22-1.531 1.826-.138 3.57-.494 4.937-1 2.968-1.1 4.875-1.807 6.78-2.47 1.907-.662 2.355-1.414 3.407-1.78 1.092-.38 2.195-.166 6.063-1.532 3.867-1.366 5.283-1.827 5.968-2.218.702-.4 1.701-.933 2.313-1.594 1.97-.055 3.817-.385 5.281-.875 3.002-1.005 4.926-1.622 6.844-2.25 1.538-.504 2.174-1.047 2.906-1.438.23-.134.476-.253.75-.343 1.098-.36
788 </filter> 7882.181-.082 6.094-1.313 3.912-1.231 5.366-1.673 6.062-2.031.694-.357 1.63-.793 2.25-1.406 1.866-.023 3.636-.267 5.032-.688 3.03-.913 4.992-1.43 6.937-1.969 1.945-.538 2.426-1.264 3.5-1.562 1.114-.31 2.22.007 6.188-1.031 3.967-1.039 5.417-1.433 6.125-1.75.734-.33 1.813-.754 2.437-1.375 1.998.116 3.857-.02 5.344-.375 3.078-.735 5.083-1.101 7.062-1.5 1.588-.32 2.245-.79 3-1.094a3.4 3.4 0 0 1 .75-.25c1.134-.23 2.305.209 6.344-.5 4.04-.71 5.5-.927 6.219-1.188.716-.26 1.704-.567 2.344-1.093 1.924.239 3.748.224 5.187 0 3.127-.488 5.155-.701 7.156-.97 2.002-.267 2.49-.944 3.594-1.093 1.147-.154 2.276.302 6.344-.219 4.068-.52 5.56-.695 6.281-.937.737-.247 1.798-.586 2.438-1.125 2.05.335 3.973.398 5.5.218 3.142-.368 5.18-.559 7.187-.78 1.611-.179 2.265-.609 3.031-.845.241-.085.495-.155.782-.187 1.15-.128 2.301.347 6.375-.125s5.559-.61 6.28-.844c.72-.232 1.701-.473 2.345-.969 1.936.334 3.77.405
789 <filter 7895.219.25 3.146-.334 5.177-.518 7.187-.718 2.01-.2 2.484-.827 3.594-.938 1.15-.115 2.296.365 6.375-.062s5.589-.562 6.312-.782c.74-.223 1.796-.513 2.438-1.03 2.057.398 4.002.493 5.531.343 3.149-.308 5.176-.473 7.188-.656 1.614-.147 2.263-.56 3.03-.781.242-.081.494-.13.782-.157 1.152-.105 2.293.393 6.375 0s5.589-.53 6.312-.75c.721-.218 1.7-.447 2.344-.937 1.938.35 3.769.454 5.219.312 3.149-.308 5.176-.473 7.187-.656 2.012-.183 2.515-.838 3.625-.937 1.153-.104 2.293.384 6.375 0 4.083-.385 5.59-.501 6.313-.72.74-.222 1.796-.514 2.437-1.03 2.058.401 4.003.503 5.532.343 3.146-.328 5.177-.522 7.187-.718 1.613-.158 2.266-.632 3.031-.875.241-.088.464-.122.75-.157 1.149-.14 2.317.34 6.375-.25 4.059-.59 5.562-.777 6.282-1.03.716-.254 1.674-.559 2.312-1.095 1.92.212 3.72.152 5.156-.093 3.12-.533 5.112-.929 7.094-1.313 1.982-.384 2.474-1.04 3.563-1.281 1.128-.25 2.27.116 6.25-.875s5.43-1.42
790 inkscape:collect="always" 7906.125-1.781c.722-.376 1.761-.87 2.375-1.531 1.963-.012 3.793-.292 5.218-.844 2.952-1.145 4.874-1.87 6.688-2.75 1.456-.707 2.32-1.702 2.531-2 .212-.298.1-.729.125-.75.043-.035.34-.094.5-.438.86-1.847 2.323-5.627 2.438-6.312.113-.682.168-1.353.218-1.75.03-.23-.147-.88-.125-.938.031-.082.289-.25.344-.5.266-1.198.09-2.207-.125-3.625-.214-1.417-.972-4.614-1.625-5.469-.659-.861-1.225-1.01-1.75-1z" enable-background="new" fill="#bcb786"/>
791 id="filter8818" 791 <g clip-path="url(#jl)">
792 x="-0.34381232" 792 <path d="M1107.4-284.05c-.419.213-.156.094-.647.306-.486.21-1.724.574-4.08 1.459-3.33 1.25-5.83 2.153-7.026 3.066-1.536.021-3.72.233-5.656.719a227.709 227.709 0 0 1-6.75 1.593c-1.895.42-1.676.643-2.875.875-1.297.252-1.721-.009-5.438.782-3.49.742-8.894 1.93-10.156 2.687-1.583-.18-3.867-.322-5.843-.031-3.04.447-4.917.673-6.844.906-.655.08-1.041.201-1.344.282-.426.131-.686.26-1.375.343-1.311.16-1.762-.157-5.531.282-3.554.413-9.005 1.272-10.25 1.937-1.599-.297-3.858-.534-5.844-.344-3.059.294-4.972.484-6.906.657-1.934.172-1.689.422-2.906.53-1.317.118-1.76-.163-5.532.25-3.541.39-9.007 1.21-10.28 1.876-1.6-.295-3.888-.507-5.876-.313-3.058.3-4.94.48-6.875.657-.657.06-1.04.178-1.343.25-.428.118-.684.218-1.375.28-1.316.121-1.76-.194-5.532.22-3.556.39-9.005 1.239-10.25
793 width="1.6876246" 7931.906-1.598-.294-3.86-.524-5.843-.313-3.056.326-4.974.526-6.907.719-1.932.192-1.69.44-2.906.562-1.315.132-1.763-.164-5.53.282-3.54.418-8.979 1.292-10.25 1.969-1.599-.282-3.86-.42-5.845-.188-3.052.358-4.945.568-6.875.781-.656.073-1.04.173-1.344.25-.426.127-.684.267-1.375.344-1.313.146-1.767-.174-5.53.313-3.55.458-8.98 1.419-10.22 2.125-1.593-.245-3.834-.382-5.812-.125-3.048.394-4.95.648-6.875.906-1.925.258-1.726.493-2.938.656-1.31.176-1.747-.104-5.5.469-3.524.538-8.923 1.699-10.188 2.437-1.587-.203-3.845-.254-5.812.094-3.026.536-4.9.862-6.813 1.187-.65.111-1.013.271-1.312.375-.42.165-.664.332-1.344.47-1.295.26-1.727-.007-5.438.812-3.498.772-8.846 2.383-10.062 3.219-1.562-.078-3.757.085-5.687.593-2.972.783-4.818 1.232-6.688 1.75s-1.666.768-2.843 1.094c-1.273.353-1.697.107-5.344 1.188-3.425 1.014-8.65 2.933-9.875 3.843-1.539.013-3.72.273-5.625.875-2.931.928-4.75 1.459-6.594
794 y="-0.18433961" 7942.063-.627.205-.992.392-1.281.531-.408.214-.653.409-1.313.625-1.254.412-1.686.19-5.28 1.438-3.39 1.177-8.596 3.213-9.782 4.156-1.524.06-3.65.395-5.531 1.062-2.898 1.029-4.7 1.676-6.531 2.313-1.833.637-1.628.848-2.782 1.25-1.246.434-1.663.2-5.218 1.562-3.34 1.28-8.488 3.483-9.688 4.47-1.507.107-3.636.498-5.5 1.218a1044.752 1044.752 0 0 1-6.437 2.469c-.617.233-.997.442-1.282.593v1.094c.112-.222.386-.817.907-1.094.698-.37 4.813-1.993 6.812-2.718 1.657-.602 4.154-1.329 5.969-1.313.302.003.588.051.844.094 1.842.308 7.468 1.562 7.468 1.562s-6.233-1.646-7.03-1.843c-.191-.048-.536-.07-.97-.063 1.146-.87 4.762-2.393 7.344-3.437 2.839-1.148 3.117-1.252 5.063-1.657 2.008-.417 3.156-.5 3.156-.5s-.082-.6.969-1.125c.705-.351 4.887-1.892 6.906-2.562 1.952-.648 5.057-1.359 6.875-1 1.863.367 7.531 1.812 7.531 1.812s-6.287-1.87-7.094-2.093c-.193-.054-.53-.086-.968-.094 1.158-.833 4.794-2.195 7.406-3.156
795 height="1.3686792"> 7952.87-1.056 3.167-1.162 5.125-1.532 1.853-.35 2.859-.425 3.031-.437.114-.217.377-.81.906-1.063.71-.338 4.926-1.712 6.97-2.312 1.692-.497 4.24-1.037 6.093-.906.308.021.613.097.875.156 1.881.424 7.594 2.031 7.594 2.031s-6.342-2.065-7.157-2.312c-.194-.06-.557-.104-1-.125 1.17-.798 4.863-2.057 7.5-2.938 2.898-.968 3.233-1.003 5.22-1.281 2.049-.287 3.187-.313 3.187-.313s-.073-.607 1-1.062c.72-.306 4.99-1.5 7.062-2 2.003-.483 5.199-.928 7.063-.406 1.91.535 7.719 2.5 7.719 2.5s-6.423-2.424-7.25-2.72c-.198-.07-.583-.14-1.032-.187 1.188-.728 4.916-1.774 7.594-2.5 2.944-.797 3.292-.77 5.313-.906 1.913-.128 2.947-.07 3.125-.062.117-.204.391-.78.937-.97.732-.253 5.079-1.047 7.188-1.374 1.748-.271 4.4-.485 6.312-.094.318.065.605.186.875.281 1.94.69 7.844 3.094 7.844 3.094s-6.535-2.95-7.375-3.312c-.201-.087-.575-.167-1.031-.25 1.206-.633 5.03-1.396 7.75-1.906 2.99-.562 3.3-.53 5.344-.532 2.109-.002
796 <feGaussianBlur 7963.312.125 3.312.125s-.073-.63 1.031-.937c.74-.206 5.126-.834 7.25-1.063 2.053-.22 5.319-.252 7.22.47 1.947.738 7.843 3.374 7.843 3.374s-6.563-3.179-7.406-3.562c-.202-.092-.543-.187-1-.282 1.21-.602 4.984-1.248 7.718-1.656 3.005-.448 3.326-.452 5.375-.406 1.94.043 3.007.194 3.188.219.119-.194.384-.766.937-.907.743-.188 5.155-.734 7.282-.937 1.763-.169 4.42-.234 6.343.25.32.08.604.203.875.312 1.953.784 7.907 3.47 7.907 3.47s-6.592-3.254-7.438-3.657c-.202-.096-.572-.207-1.031-.313 1.214-.574 5.044-1.122 7.781-1.5 3.009-.415 3.323-.442 5.375-.375 2.118.07 3.313.25 3.313.25s-.078-.637 1.03-.906c.745-.18 5.153-.663 7.282-.844 2.059-.174 5.343-.124 7.25.657 1.955.8 7.875 3.53 7.875 3.53s-6.56-3.308-7.406-3.718c-.202-.098-.572-.203-1.031-.312 1.215-.564 5.01-1.115 7.75-1.47 3.01-.389 3.321-.397 5.375-.312 1.944.08 3.006.254 3.187.282.12-.191.383-.746.938-.875.744-.174 5.15-.65 7.28-.813
797 inkscape:collect="always" 7971.767-.134 4.45-.126 6.376.375.32.083.603.201.875.313 1.954.8 7.906 3.562 7.906 3.562s-6.591-3.34-7.437-3.75c-.203-.098-.572-.203-1.032-.312 1.215-.564 5.042-1.084 7.782-1.438 3.01-.39 3.352-.429 5.406-.344 2.12.088 3.312.313 3.312.313s-.078-.65 1.032-.906c.744-.173 5.15-.624 7.28-.782 2.061-.152 5.344-.096 7.25.688 1.956.804 7.876 3.5 7.876 3.5s-6.56-3.276-7.406-3.688c-.203-.098-.572-.202-1.032-.312 1.216-.562 5.012-1.128 7.75-1.5 3.01-.41 3.323-.416 5.375-.344 1.943.068 3.008.165 3.188.188.119-.195.384-.73.937-.875.742-.197 5.131-.83 7.25-1.094 1.757-.22 4.406-.333 6.313.031.317.06.606.19.875.281 1.936.661 7.844 2.938 7.844 2.938s-6.537-2.807-7.375-3.156c-.2-.084-.577-.174-1.032-.25 1.204-.651 5.02-1.372 7.72-2 2.966-.69 3.288-.756 5.312-.875 2.088-.124 3.28-.032 3.28-.032s-.086-.632 1-1.03c.73-.269 5.048-1.339 7.126-1.813 2.008-.46 5.168-1.03 7-.625 1.878.414 13.578 3.015 13.578
798 stdDeviation="34.542167" 7983.015s-12.328-3.022-13.141-3.265c-.195-.058-.559-.107-1-.125 1.167-.804 3.514-1.688 6.11-2.703 1.68-.659.923-.377 2.775-1.004 1.754-.594 2.486-1.01 2.63-1.113.347-.207-.355-.122-.544-.042z" enable-background="new" filter="url(#jk)"/>
799 id="feGaussianBlur8820" /> 799 <path d="m1082.6-275.12c1.873 0.393 4.496 1.146 6.031 1.969s2.822 1.056 5.375 2.5c2.527 1.43 4.796 2.007 6.969 2.531 2.348 0.566 5.435 0.715 8.844 1.188-1.09-0.84-6.608-1.173-8.406-1.563-1.8-0.39-3.895-1.016-6.594-2.313-2.7-1.296-3.495-1.799-5.813-2.687-2.318-0.889-4.004-1.383-6.406-1.625z" enable-background="new" filter="url(#jj)"/>
800 </filter> 800 <path d="M1051.5-270c1.905.578 4.528 1.616 6.094 2.594 1.565.978 2.88 1.36 5.5 3.125 2.593 1.747 4.986 2.71 7.25 3.594 2.446.955 5.682 1.657 9.406 3.062-1.19-1.138-7.063-2.687-8.938-3.375-1.874-.688-4.081-1.566-6.874-3.281-2.794-1.715-3.574-2.284-5.938-3.406-2.364-1.123-4.057-1.835-6.5-2.313z" enable-background="new" filter="url(#ji)"/>
801 <filter 801 <path d="m1020.2-266.84c1.912 0.638 4.581 1.755 6.156 2.813 1.575 1.057 2.896 1.508 5.531 3.406 2.61 1.878 5.029 3.03 7.313 4.062 2.468 1.116 5.764 2.174 9.531 3.844-1.203-1.222-7.203-3.314-9.094-4.125-1.89-0.81-4.064-1.894-6.874-3.75s-3.622-2.477-6-3.719c-2.379-1.242-4.111-1.975-6.563-2.531z" enable-background="new" filter="url(#jh)"/>
802 inkscape:collect="always" 802 <path d="M1110.2-266.89c.15.049.688.631.11 1.484-.81 1.195-5.705 3.325-8.563 4.125-2.845.798-6.29.978-10.562-.375-4.302-1.362-5.47-2.468-10.656-4.312 4.664 2.115 6.195 3.952 10.125 5.344 1.62.574 3.367.94 5.062 1.03-.445.327-1.53.984-3.562 1.595-2.796.84-6.65 1.534-8.25 1.625-1.515.086-3.142-.513-3.438-.625.167.103.374.377-.25 1.03-.899.945-6.147 1.924-9.125 2.25-2.964.326-6.521-.015-10.906-1.905-3.978-1.715-5.339-2.916-9.406-4.75v.156c3.643 2.095 5.284 3.883 8.875 5.562 1.73.81 3.592 1.41 5.406 1.72-.534.286-1.557.71-3.437 1.03-2.87.488-6.81.817-8.438.75-.85-.034-1.728-.184-2.406-.406-.685-.215-1.19-.444-1.312-.5.169.107.43.403-.22 1.031-.909.88-6.245 1.337-9.25 1.47-2.99.131-6.588-.451-11-2.563-4.44-2.127-5.64-3.402-10.905-5.782 4.734 2.597 6.286 4.63 10.344 6.72 1.673.861 3.485 1.493 5.25 1.937-.463.233-1.59.688-3.688.937-2.886.343-6.834.493-8.468.375-1.547-.111-3.232-.857-3.532-1
803 id="filter8822" 803.17.12.414.41-.218 1-.913.851-6.244 1.262-9.25 1.375-2.993.113-6.59-.49-11-2.594-4.002-1.908-5.388-3.137-9.47-5.093v.156c3.656 2.204 5.295 4.053 8.907 5.906 1.74.893 3.637 1.528 5.469 1.969-.54.248-1.578.615-3.469.844-2.886.348-6.866.52-8.5.406a9.446 9.446 0 0 1-2.406-.5 12.532 12.532 0 0 1-1.313-.531c.17.112.465.422-.187 1.03-.913.853-6.275 1.294-9.281 1.407-2.993.112-6.594-.528-11-2.594-4.437-2.08-5.647-3.331-10.906-5.656 4.729 2.548 6.29 4.578 10.344 6.625 1.671.844 3.485 1.467 5.25 1.906-.464.235-1.59.684-3.688.938-2.886.348-6.836.57-8.469.469-1.544-.096-3.2-.83-3.5-.97.17.12.382.405-.25 1-.912.861-6.246 1.331-9.25 1.47-2.99.138-6.567-.451-10.969-2.47-3.993-1.83-5.365-3.028-9.437-4.905v.156c3.647 2.133 5.27 3.935 8.875 5.719 1.737.86 3.607 1.45 5.437 1.875-.54.253-1.55.64-3.437.906-2.88.404-6.838.646-8.469.562a9.36 9.36 0 0 1-2.406-.437 12.971 12.971 0 0
804 x="-0.2742857" 8041-1.313-.5c.17.109.432.41-.218 1.031-.911.87-6.25 1.392-9.25 1.563-2.987.17-6.574-.316-10.97-2.282-4.424-1.978-5.605-3.228-10.843-5.375 4.71 2.388 6.27 4.39 10.312 6.344a23.73 23.73 0 0 0 5.218 1.781c-.461.25-1.597.713-3.687 1.032-2.876.438-6.78.733-8.406.687-1.539-.043-3.233-.745-3.532-.875.169.113.411.414-.218 1.031-.908.891-6.203 1.529-9.188 1.813-2.971.283-6.573-.176-10.938-1.938-3.96-1.598-5.329-2.795-9.344-4.312v.156c3.596 1.811 5.239 3.582 8.813 5.156 1.722.759 3.587 1.29 5.406 1.625-.536.28-1.566.688-3.437 1.063-2.856.572-6.79 1.02-8.407 1.031-.844.006-1.706-.08-2.375-.25-.676-.162-1.16-.33-1.28-.375.166.094.422.383-.22 1.062-.897.951-6.186 1.918-9.125 2.438-2.925.518-6.432.374-10.719-1.031-4.315-1.415-5.472-2.53-10.562-3.969 4.577 1.751 6.09 3.56 10.031 5 1.627.594 3.37.956 5.094 1.156-.453.297-1.555.884-3.594 1.469-2.804.805-6.638 1.576-8.218
805 width="1.5485713" 8051.75-1.495.165-3.117-.317-3.407-.406.164.09.393.36-.218 1.062-.883 1.014-6.045 2.372-8.938 3.063-2.88.687-6.335.76-10.562-.438-3.835-1.086-5.172-2.072-9.062-3.125v.156c3.484 1.395 5.07 2.92 8.53 4.032 1.669.535 3.457.786 5.22.875-.52.352-1.5.914-3.313 1.53-2.765.942-6.59 1.936-8.156 2.157-.818.115-1.633.123-2.281.031-.655-.083-1.133-.218-1.25-.25.162.075.434.34-.188 1.094-.87 1.055-6.01 2.66-8.875 3.438-2.852.774-6.259.958-10.438-.094-4.206-1.06-5.356-2.042-10.344-3.156 4.485 1.46 5.97 3.135 9.813 4.25 1.585.46 3.287.638 4.969.687-.442.337-1.513 1.028-3.5 1.781-2.734 1.037-6.452 2.163-8 2.438-1.465.26-3.06-.117-3.344-.188.16.08.38.321-.219 1.063-.865 1.07-5.916 2.818-8.75 3.687-2.82.866-6.207 1.157-10.344.22-3.753-.852-5.048-1.717-8.875-2.595v.157c3.428 1.237 4.987 2.632 8.375 3.53 1.632.434 3.367.584 5.094.563-.51.384-1.477 1.022-3.25 1.75-2.706 1.112-6.436 2.308-7.969
806 y="-0.21333334" 8062.625-.8.166-1.612.219-2.25.157v1.406c.227-.145.449-.273.719-.375 1.08-.41 2.171-.216 6-1.688 3.828-1.471 5.224-2.005 5.906-2.406.68-.4 1.612-.88 2.219-1.531 1.827-.138 3.57-.493 4.937-1 2.968-1.1 4.876-1.806 6.782-2.469 1.905-.663 2.354-1.415 3.406-1.781 1.091-.38 2.195-.166 6.062-1.531 3.868-1.366 5.283-1.827 5.969-2.22.701-.4 1.7-.932 2.313-1.593 1.97-.055 3.816-.385 5.28-.875 3.002-1.005 4.927-1.622 6.845-2.25 1.538-.504 2.174-1.047 2.906-1.437.23-.135.475-.254.75-.344 1.098-.36 2.181-.082 6.094-1.313 3.912-1.23 5.366-1.673 6.062-2.03.694-.358 1.63-.794 2.25-1.407 1.865-.023 3.636-.267 5.031-.688 3.03-.913 4.993-1.43 6.938-1.968 1.945-.54 2.426-1.265 3.5-1.563 1.114-.31 2.22.007 6.187-1.031 3.968-1.039 5.418-1.433 6.125-1.75.735-.33 1.814-.754 2.438-1.375 1.997.116 3.857-.02 5.344-.375 3.078-.735 5.083-1.101 7.062-1.5 1.588-.32 2.244-.79 3-1.094.238-.107.467-.193.75-.25 1.134-.23
807 height="1.4266667"> 8072.305.209 6.344-.5s5.5-.927 6.219-1.187c.715-.26 1.704-.568 2.343-1.094 1.925.24 3.748.224 5.188 0 3.126-.488 5.155-.7 7.156-.969 2.002-.268 2.489-.945 3.594-1.094 1.146-.154 2.276.302 6.344-.219 4.068-.52 5.56-.695 6.28-.937.738-.247 1.799-.586 2.438-1.125 2.05.335 3.974.398 5.5.219 3.143-.37 5.18-.56 7.188-.782 1.61-.178 2.265-.608 3.031-.843a3.43 3.43 0 0 1 .781-.188c1.15-.128 2.302.347 6.375-.125s5.56-.61 6.282-.844c.719-.232 1.7-.473 2.343-.968 1.937.333 3.77.404 5.22.25 3.145-.335 5.177-.519 7.187-.719 2.01-.2 2.484-.826 3.593-.938 1.152-.115 2.297.366 6.375-.062s5.59-.562 6.313-.781c.74-.224 1.796-.514 2.437-1.031 2.058.398 4.002.493 5.532.343 3.148-.308 5.175-.473 7.187-.656 1.614-.147 2.263-.56 3.031-.781.242-.081.494-.13.782-.156 1.152-.106 2.293.392 6.375 0 4.082-.393 5.589-.531 6.312-.75.721-.219 1.7-.448 2.344-.938 1.938.35 3.769.454 5.219.313 3.148-.309 5.175-.474
808 <feGaussianBlur 8087.187-.657 2.012-.183 2.514-.838 3.625-.937 1.152-.103 2.292.385 6.375 0s5.589-.501 6.313-.719c.739-.222 1.795-.514 2.437-1.031 2.057.402 4.003.503 5.531.344 3.147-.329 5.178-.523 7.188-.72 1.613-.156 2.266-.63 3.031-.874.24-.088.463-.122.75-.156 1.148-.14 2.317.34 6.375-.25 4.058-.59 5.562-.778 6.281-1.032.717-.253 1.675-.558 2.313-1.093 1.92.211 3.72.151 5.156-.094 3.12-.533 5.112-.929 7.094-1.313 1.982-.384 2.474-1.04 3.562-1.28 1.13-.252 2.27.115 6.25-.876s5.43-1.42 6.125-1.781c.723-.376 1.762-.87 2.375-1.531 1.963-.012 3.794-.291 5.22-.844 2.95-1.145 4.872-1.87 6.687-2.75 1.455-.707 2.334-1.686 2.547-1.984.212-.298.111-.746.137-.767.043-.035.32-.085.48-.429.858-1.847 2.32-5.644
809 inkscape:collect="always" 8092.435-6.329.113-.682.163-1.348.214-1.745.03-.23-.147-.865-.125-.924.031-.082.305-.265.36-.515.267-1.198.09-2.191-.125-3.609-.214-1.417-.983-4.622-1.637-5.476-.659-.862-1.223-1.011-1.748-1-.208.27.137.262.163.312.68.05.934.369 1.42.897s1.442 3.94 1.579 5.39.19 2.86-.088 3.468c-.278.609-.944.429-1.237.495.531.186.89.213.953 1.057.058.814-.134 1.64-.52 2.806-.391 1.18-1.845 4.35-2.286 4.599-.452.255-.952.182-1.288.05z" enable-background="new" filter="url(#jg)"/>
810 stdDeviation="11.313708" 810 <path d="m988.75-263.84c1.912 0.634 4.55 1.758 6.125 2.813 1.575 1.054 2.896 1.482 5.531 3.375 2.609 1.873 5.027 3.015 7.313 4.062 2.47 1.132 5.752 2.155 9.531 3.938-1.207-1.259-7.139-3.365-9.031-4.188s-4.128-1.93-6.938-3.781-3.622-2.482-6-3.719c-2.377-1.237-4.08-1.95-6.53-2.5z" enable-background="new" filter="url(#jf)"/>
811 id="feGaussianBlur8824" /> 811 <path d="M957.5-260.78c1.91.618 4.583 1.71 6.156 2.75 1.574 1.04 2.896 1.482 5.531 3.375 2.609 1.873 5.027 3.015 7.313 4.063 2.47 1.131 5.752 2.154 9.531 3.937-1.207-1.258-7.201-3.396-9.094-4.219-1.892-.823-4.096-1.93-6.906-3.781-2.81-1.85-3.593-2.44-5.969-3.656s-4.113-1.939-6.562-2.469z" enable-background="new" filter="url(#ib)"/>
812 </filter> 812 <path d="M926.09-257.38c1.908.597 4.553 1.664 6.125 2.688 1.571 1.023 2.87 1.44 5.5 3.28 2.603 1.823 5.029 2.973 7.313 4 2.467 1.111 5.755 2.094 9.53 3.845-1.205-1.249-7.171-3.319-9.062-4.125s-4.102-1.891-6.906-3.688c-2.804-1.796-3.627-2.402-6-3.594-2.373-1.191-4.054-1.903-6.5-2.406z" enable-background="new" filter="url(#ia)"/>
813 <filter 813 <path d="M894.91-253.56c1.902.554 4.587 1.589 6.156 2.594s2.874 1.408 5.5 3.219c2.6 1.791 5 2.871 7.281 3.875 2.465 1.083 5.76 2.04 9.532 3.75-1.205-1.236-7.175-3.245-9.063-4.032-1.888-.786-4.075-1.83-6.875-3.593s-3.6-2.369-5.969-3.532c-2.37-1.163-4.123-1.834-6.562-2.28z" enable-background="new" filter="url(#hz)"/>
814 inkscape:collect="always" 814 <path d="M863.72-248.66c1.88.43 4.504 1.38 6.063 2.313 1.558.932 2.852 1.257 5.468 3 2.59 1.724 4.981 2.708 7.25 3.625 2.452.99 5.74 1.877 9.5 3.5-1.201-1.208-7.152-3.067-9.03-3.782-1.88-.715-4.086-1.684-6.876-3.375s-3.585-2.228-5.937-3.28-4.026-1.713-6.438-2z" enable-background="new" filter="url(#hy)"/>
815 id="filter8826" 815 <path d="m833.16-241.38c1.848 0.296 4.47 0.976 6 1.781s2.814 1.056 5.375 2.531c2.535 1.46 4.89 2.326 7.125 3.063 2.414 0.797 5.657 1.467 9.375 2.844-1.188-1.129-7.088-2.59-8.938-3.156-1.85-0.567-4.003-1.374-6.75-2.844-2.746-1.47-3.5-1.92-5.812-2.781-2.311-0.861-4.005-1.32-6.375-1.438z" enable-background="new" filter="url(#hx)"/>
816 x="-0.25894088" 816 <path d="m802.91-232.31c1.822 0.211 4.366 0.8 5.875 1.531 1.51 0.73 2.756 0.93 5.281 2.281 2.5 1.338 4.832 2.049 7.031 2.657 2.377 0.656 5.565 1.073 9.22 2.187-1.168-1.045-6.93-2.103-8.75-2.562-1.822-0.46-3.953-1.127-6.657-2.438s-3.471-1.72-5.75-2.469-3.913-1.179-6.25-1.187z" enable-background="new" filter="url(#hw)"/>
817 width="1.5178818" 817 <path d="M773.19-222.19c1.811.179 4.32.665 5.813 1.344 1.491.678 2.753.798 5.25 2.062 2.47 1.252 4.79 1.896 6.968 2.438 2.354.585 5.492.897 9.094 1.844-1.15-.992-6.852-1.784-8.656-2.188s-3.916-1.021-6.594-2.25c-2.678-1.229-3.403-1.61-5.656-2.281-2.253-.67-3.896-1.002-6.219-.969z" enable-background="new" filter="url(#hv)"/>
818 y="-0.2236412" 818 <path d="M743.56-211.19c1.793.13 4.273.55 5.75 1.188s2.716.741 5.188 1.937c2.446 1.184 4.72 1.747 6.874 2.219 2.328.51 5.42.68 9 1.562-1.143-.97-6.747-1.59-8.53-1.937-1.784-.347-3.884-.888-6.532-2.031-2.648-1.144-3.395-1.517-5.625-2.125-2.23-.61-3.826-.91-6.125-.813z" enable-background="new" filter="url(#hu)"/>
819 height="1.4472824"> 819 <g fill="#fff" filter="url(#ht)">
820 <feGaussianBlur 820 <path d="M744.94-212.12s7.222-3.223 9.063-3.5 3.352-.003 6 .563c2.647.565 8.735 2.215 11.188 3.374s5.312 3.563 5.312 3.563-7.146-2.78-10.188-3.563-7.645-2.083-10.375-2.312-11 1.875-11 1.875z"/>
821 inkscape:collect="always" 821 <path d="m735.47-206.95s3.66-2.223 5.5-2.5 3.665 0.247 6.313 0.813 8.735 2.215 11.188 3.375 6.562 2.125 6.562 2.125-8.396-1.343-11.438-2.125-7.957-2.334-10.688-2.563-7.438 0.875-7.438 0.875zm24.38-10.66s8.544-3.299 10.398-3.458c1.854-0.16 3.642 0.48 6.248 1.212s8.577 2.766 10.95 4.08 6.414 2.537 6.414 2.537-8.294-1.873-11.279-2.848c-2.985-0.974-7.792-2.834-10.503-3.236s-12.228 1.713-12.228 1.713zm15.35-5.62s7.771-2.782 9.628-2.904c1.857-0.12 3.631 0.555 6.222 1.341 2.59 0.787 8.519 2.942 10.864 4.304 2.346 1.362 6.36 2.67 6.36 2.67s-8.253-2.045-11.217-3.08c-2.965-1.035-7.733-2.995-10.434-3.452-2.702-0.458-11.422 1.121-11.422 1.121zm14.44-4.72s8.683-3.52 10.542-3.605 3.62 0.624 6.195 1.46c2.575 0.837 8.46 3.107 10.779 4.514 2.318 1.408 6.307 2.793 6.307 2.793s-8.212-2.204-11.156-3.297-7.673-3.144-10.365-3.654-12.3 1.789-12.3 1.789zm14.86-5.38s7.808-2.583 9.666-2.668c1.86-0.085 3.62
822 stdDeviation="19.631544" 8220.625 6.195 1.461 2.575 0.837 8.46 3.107 10.78 4.514 2.318 1.407 6.307 2.792 6.307 2.792s-8.213-2.204-11.156-3.296-7.673-3.144-10.365-3.654-11.426 0.85-11.426 0.85zm15.06-4.25s8.558-2.583 10.417-2.668 3.62 0.625 6.195 1.461c2.575 0.837 8.46 3.107 10.779 4.514 2.318 1.407 6.307 2.792 6.307 2.792s-8.212-2.204-11.156-3.296-7.673-3.144-10.365-3.654-12.176 0.85-12.176 0.85zm16.67-5.02s6.967-1.987 8.828-1.968c1.86 0.02 3.579 0.827 6.102 1.807 2.524 0.98 8.272 3.578 10.508 5.113 2.236 1.536 6.14 3.143 6.14 3.143s-8.075-2.662-10.952-3.919c-2.878-1.256-7.484-3.57-10.143-4.231-2.66-0.66-10.482 0.055-10.482 0.055zm14.5-3.4s7.688-2.028 9.548-1.968 3.56 0.902 6.063 1.936c2.502 1.033 8.194 3.752 10.397 5.335 2.203 1.582 6.072 3.272 6.072 3.272s-8.017-2.833-10.868-4.15c-2.85-1.318-7.407-3.73-10.05-4.446s-11.162 0.021-11.162 0.021zm14.09-3.21s8.17-1.97 10.027-1.854c1.857 0.115 3.532 1.01 6.002
823 id="feGaussianBlur8828" /> 8232.118s8.077 3.997 10.23 5.645 5.972 3.454 5.972 3.454-7.928-3.074-10.738-4.476-7.291-3.95-9.913-4.746c-2.621-0.796-11.58-0.141-11.58-0.141zm16.56-2.39s8.085-1.908 9.938-1.737c1.853 0.172 3.5 1.117 5.935 2.3 2.436 1.182 7.952 4.24 10.055 5.953s5.864 3.633 5.864 3.633-7.832-3.312-10.597-4.8-7.168-4.169-9.764-5.044c-2.597-0.876-11.431-0.305-11.431-0.305zm15.2-2.75s7.642-1.428 9.495-1.265c1.854 0.162 3.505 1.1 5.946 2.27s7.973 4.203 10.084 5.905c2.112 1.703 5.881 3.605 5.881 3.605s-7.847-3.274-10.62-4.748c-2.772-1.474-7.187-4.135-9.788-4.998-2.6-0.863-10.998-0.77-10.998-0.77zm14.87-1.64s8.642-1.553 10.495-1.39c1.854 0.162 3.505 1.1 5.946 2.27s7.972 4.203 10.084 5.905c2.111 1.703 5.88 3.605 5.88 3.605s-7.846-3.274-10.62-4.748c-2.772-1.474-7.187-4.135-9.787-4.998-2.601-0.863-11.998-0.644-11.998-0.644zm16.25-2.31s7.642-0.865 9.495-0.703c1.854 0.163 3.505 1.1 5.946 2.27s7.973 4.203 10.084
824 </filter> 8245.906c2.112 1.702 5.881 3.605 5.881 3.605s-7.847-3.275-10.62-4.749c-2.772-1.474-7.187-4.135-9.788-4.998-2.6-0.862-10.998-1.331-10.998-1.331zm15.13-1.19s8.58-1.49 10.433-1.328c1.854 0.163 3.505 1.1 5.946 2.27s7.972 4.203 10.084 5.906c2.111 1.702 5.88 3.605 5.88 3.605s-7.846-3.275-10.62-4.749c-2.772-1.474-7.187-4.135-9.787-4.998-2.601-0.862-11.935-0.706-11.935-0.706zm16.25-2.06s7.83-0.803 9.683-0.64c1.854 0.162 3.505 1.1 5.946 2.27s7.972 4.203 10.084 5.905c2.111 1.703 5.88 3.605 5.88 3.605s-7.846-3.274-10.62-4.748c-2.772-1.474-7.187-4.135-9.787-4.998-2.601-0.863-11.185-1.394-11.185-1.394zm15.37-1.25s8.392-1.178 10.245-1.015c1.854 0.162 3.505 1.1 5.946 2.27s7.972 4.203 10.084 5.905c2.111 1.703 5.88 3.605 5.88 3.605s-7.847-3.274-10.62-4.748c-2.772-1.474-7.187-4.135-9.788-4.998-2.6-0.863-11.748-1.02-11.748-1.02zm16.19-2.06s6.892-0.99 8.745-0.828c1.854 0.163 3.505 1.1 5.946 2.27s7.973 4.203
825 <filter 82510.084 5.906c2.112 1.702 5.881 3.605 5.881 3.605s-7.847-3.275-10.62-4.749-7.188-4.135-9.788-4.998c-2.6-0.862-10.248-1.206-10.248-1.206zm17.16-0.94s6.83-1.178 8.683-1.015c1.854 0.162 3.505 1.1 5.946 2.27 2.44 1.171 7.972 4.203 10.084 5.905 2.111 1.703 5.88 3.605 5.88 3.605s-7.847-3.274-10.62-4.748c-2.772-1.474-7.187-4.135-9.788-4.998-2.6-0.863-10.185-1.02-10.185-1.02zm16.1-2s6.08-0.428 7.933-0.265c1.854 0.162 3.505 1.1 5.946 2.27 2.44 1.171 7.972 4.203 10.084 5.905 2.111 1.703 5.88 3.605 5.88 3.605s-7.847-3.274-10.62-4.748c-2.772-1.474-7.187-4.135-9.788-4.998-2.6-0.863-9.435-1.77-9.435-1.77zm15.8-1.37s6.454-0.678 8.308-0.515c1.854 0.162 3.505 1.1 5.946 2.27 2.44 1.171 7.972 4.203 10.084 5.905 2.111 1.703 5.88 3.605 5.88 3.605s-7.847-3.274-10.62-4.748c-2.772-1.474-7.187-4.135-9.788-4.998-2.6-0.863-9.81-1.52-9.81-1.52zm15.6-1.86s5.498-0.91 7.358-0.853c1.86 0.056 3.562 0.896 6.066 1.925
826 inkscape:collect="always" 8262.504 1.03 8.2 3.739 10.406 5.318 2.205 1.578 6.078 3.261 6.078 3.261s-8.022-2.819-10.875-4.131c-2.853-1.313-7.413-3.716-10.06-4.429-2.645-0.712-8.973-1.091-8.973-1.091zm17.4-2.46s4.547-1.156 6.408-1.186c1.86-0.03 3.6 0.73 6.149 1.642 2.55 0.912 8.365 3.354 10.64 4.829 2.277 1.474 6.224 2.976 6.224 2.976s-8.145-2.444-11.055-3.623c-2.91-1.178-7.578-3.368-10.253-3.957-2.676-0.588-8.113-0.68-8.113-0.68zm14.5-3.03s5.96-1.774 7.82-1.83c1.86-0.057 3.61 0.68 6.172 1.555 2.562 0.876 2.522 0.857 5.333 1.49 2.797 0.63 7.077 1.513 7.077 1.513s-3.616-0.016-6.792-0.466c-3.116-0.441-7.375-1.698-10.058-2.249-2.684-0.55-9.552-0.013-9.552-0.013z" enable-background="new"/>
827 id="filter8856" 827 <path d="M1099.2-279.93c.161.269 11.208-4.6 12.188-4.688.98-.087 2 3.125 2 3.125s-.775-1.504-2.875-1.062-11.301 2.671-11.312 2.625z"/>
828 x="-0.3253231" 828 </g>
829 width="1.6506462" 829 <path d="M1107.5-284.09c-.419.213-.156.094-.647.306-.486.21-1.724.574-4.08 1.459-3.33 1.25-5.83 2.153-7.026 3.066-1.536.021-3.72.233-5.656.719a227.709 227.709 0 0 1-6.75 1.593c-1.895.42-1.676.643-2.875.875-1.297.252-1.721-.009-5.438.782-3.49.742-8.894 1.93-10.156 2.687-1.583-.18-3.867-.322-5.843-.031-3.04.447-4.917.673-6.844.906-.655.08-1.041.201-1.344.282-.426.131-.686.26-1.375.343-1.311.16-1.762-.157-5.531.282-3.554.413-9.005 1.272-10.25 1.937-1.599-.297-3.858-.534-5.844-.344-3.059.294-4.972.484-6.906.657-1.934.172-1.689.422-2.906.53-1.317.118-1.76-.163-5.532.25-3.541.39-9.007 1.21-10.28 1.876-1.6-.295-3.888-.507-5.876-.313-3.058.3-4.94.48-6.875.657-.657.06-1.04.178-1.343.25-.428.118-.684.218-1.375.28-1.316.121-1.76-.194-5.532.22-3.556.39-9.005 1.239-10.25
830 y="-0.19013336" 8301.906-1.598-.294-3.86-.524-5.843-.313-3.056.326-4.974.526-6.907.719-1.932.192-1.69.44-2.906.562-1.315.132-1.763-.164-5.53.282-3.54.418-8.979 1.292-10.25 1.969-1.599-.282-3.86-.42-5.845-.188-3.052.358-4.945.568-6.875.781-.656.073-1.04.173-1.344.25-.426.127-.684.267-1.375.344-1.313.146-1.767-.174-5.53.313-3.55.458-8.98 1.419-10.22 2.125-1.593-.245-3.834-.382-5.812-.125-3.048.394-4.95.648-6.875.906-1.925.258-1.726.493-2.938.656-1.31.176-1.747-.104-5.5.469-3.524.538-8.923 1.699-10.188 2.437-1.587-.203-3.845-.254-5.812.094-3.026.536-4.9.862-6.813 1.187-.65.111-1.013.271-1.312.375-.42.165-.664.332-1.344.47-1.295.26-1.727-.007-5.438.812-3.498.772-8.846 2.383-10.062 3.219-1.562-.078-3.757.085-5.687.593-2.972.783-4.818 1.232-6.688 1.75s-1.666.768-2.843 1.094c-1.273.353-1.697.107-5.344 1.188-3.425 1.014-8.65 2.933-9.875 3.843-1.539.013-3.72.273-5.625.875-2.931.928-4.75 1.459-6.594
831 height="1.3802667"> 8312.063-.627.205-.992.392-1.281.531-.408.214-.653.409-1.313.625-1.254.412-1.686.19-5.28 1.438-3.39 1.177-8.596 3.213-9.782 4.156-1.524.06-3.65.395-5.531 1.062-2.898 1.029-4.7 1.676-6.531 2.313-1.833.637-1.628.848-2.782 1.25-1.246.434-1.663.2-5.218 1.562-3.34 1.28-8.488 3.483-9.688 4.47-1.507.107-3.636.498-5.5 1.218a1044.752 1044.752 0 0 1-6.437 2.469c-.617.233-.997.442-1.282.593v1.094c.112-.222.386-.817.907-1.094.698-.37 4.813-1.993 6.812-2.718 1.657-.602 4.154-1.329 5.969-1.313.302.003.588.051.844.094 1.842.308 7.468 1.562 7.468 1.562s-6.233-1.646-7.03-1.843c-.191-.048-.536-.07-.97-.063 1.146-.87 4.762-2.393 7.344-3.437 2.839-1.148 3.117-1.252 5.063-1.657 2.008-.417 3.156-.5 3.156-.5s-.082-.6.969-1.125c.705-.351 4.887-1.892 6.906-2.562 1.952-.648 5.057-1.359 6.875-1 1.863.367 7.531 1.812 7.531 1.812s-6.287-1.87-7.094-2.093c-.193-.054-.53-.086-.968-.094 1.158-.833 4.794-2.195 7.406-3.156
832 <feGaussianBlur 8322.87-1.056 3.167-1.162 5.125-1.532 1.853-.35 2.859-.425 3.031-.437.114-.217.377-.81.906-1.063.71-.338 4.926-1.712 6.97-2.312 1.692-.497 4.24-1.037 6.093-.906.308.021.613.097.875.156 1.881.424 7.594 2.031 7.594 2.031s-6.342-2.065-7.157-2.312c-.194-.06-.557-.104-1-.125 1.17-.798 4.863-2.057 7.5-2.938 2.898-.968 3.233-1.003 5.22-1.281 2.049-.287 3.187-.313 3.187-.313s-.073-.607 1-1.062c.72-.306 4.99-1.5 7.062-2 2.003-.483 5.199-.928 7.063-.406 1.91.535 7.719 2.5 7.719 2.5s-6.423-2.424-7.25-2.72c-.198-.07-.583-.14-1.032-.187 1.188-.728 4.916-1.774 7.594-2.5 2.944-.797 3.292-.77 5.313-.906 1.913-.128 2.947-.07 3.125-.062.117-.204.391-.78.937-.97.732-.253 5.079-1.047 7.188-1.374 1.748-.271 4.4-.485 6.312-.094.318.065.605.186.875.281 1.94.69 7.844 3.094 7.844 3.094s-6.535-2.95-7.375-3.312c-.201-.087-.575-.167-1.031-.25 1.206-.633 5.03-1.396 7.75-1.906 2.99-.562 3.3-.53 5.344-.532 2.109-.002
833 inkscape:collect="always" 8333.312.125 3.312.125s-.073-.63 1.031-.937c.74-.206 5.126-.834 7.25-1.063 2.053-.22 5.319-.252 7.22.47 1.947.738 7.843 3.374 7.843 3.374s-6.563-3.179-7.406-3.562c-.202-.092-.543-.187-1-.282 1.21-.602 4.984-1.248 7.718-1.656 3.005-.448 3.326-.452 5.375-.406 1.94.043 3.007.194 3.188.219.119-.194.384-.766.937-.907.743-.188 5.155-.734 7.282-.937 1.763-.169 4.42-.234 6.343.25.32.08.604.203.875.312 1.953.784 7.907 3.47 7.907 3.47s-6.592-3.254-7.438-3.657c-.202-.096-.572-.207-1.031-.313 1.214-.574 5.044-1.122 7.781-1.5 3.009-.415 3.323-.442 5.375-.375 2.118.07 3.313.25 3.313.25s-.078-.637 1.03-.906c.745-.18 5.153-.663 7.282-.844 2.059-.174 5.343-.124 7.25.657 1.955.8 7.875 3.53 7.875 3.53s-6.56-3.308-7.406-3.718c-.202-.098-.572-.203-1.031-.312 1.215-.564 5.01-1.115 7.75-1.47 3.01-.389 3.321-.397 5.375-.312 1.944.08 3.006.254 3.187.282.12-.191.383-.746.938-.875.744-.174 5.15-.65 7.28-.813
834 stdDeviation="28.712591" 8341.767-.134 4.45-.126 6.376.375.32.083.603.201.875.313 1.954.8 7.906 3.562 7.906 3.562s-6.591-3.34-7.437-3.75c-.203-.098-.572-.203-1.032-.312 1.215-.564 5.042-1.084 7.782-1.438 3.01-.39 3.352-.429 5.406-.344 2.12.088 3.312.313 3.312.313s-.078-.65 1.032-.906c.744-.173 5.15-.624 7.28-.782 2.061-.152 5.344-.096 7.25.688 1.956.804 7.876 3.5 7.876 3.5s-6.56-3.276-7.406-3.688c-.203-.098-.572-.202-1.032-.312 1.216-.562 5.012-1.128 7.75-1.5 3.01-.41 3.323-.416 5.375-.344 1.943.068 3.008.165 3.188.188.119-.195.384-.73.937-.875.742-.197 5.131-.83 7.25-1.094 1.757-.22 4.406-.333 6.313.031.317.06.606.19.875.281 1.936.661 7.844 2.938 7.844 2.938s-6.537-2.807-7.375-3.156c-.2-.084-.577-.174-1.032-.25 1.204-.651 5.02-1.372 7.72-2 2.966-.69 3.288-.756 5.312-.875 2.088-.124 3.28-.032 3.28-.032s-.086-.632 1-1.03c.73-.269 5.048-1.339 7.126-1.813 2.008-.46 5.168-1.03 7-.625 1.878.414 13.578 3.015 13.578
835 id="feGaussianBlur8858" /> 8353.015s-12.328-3.022-13.141-3.265c-.195-.058-.559-.107-1-.125 1.167-.804 3.514-1.688 6.11-2.703 1.68-.659.923-.377 2.775-1.004 1.754-.594 2.486-1.01 2.63-1.113.347-.207-.355-.122-.544-.042z" enable-background="new" filter="url(#hs)" opacity=".25"/>
836 </filter> 836 <path d="m1082.6-275.12c1.873 0.393 4.496 1.146 6.031 1.969s2.822 1.056 5.375 2.5c2.527 1.43 4.796 2.007 6.969 2.531 2.348 0.566 5.435 0.715 8.844 1.188-1.09-0.84-6.608-1.173-8.406-1.563-1.8-0.39-3.895-1.016-6.594-2.313-2.7-1.296-3.495-1.799-5.813-2.687-2.318-0.889-4.004-1.383-6.406-1.625z" enable-background="new" filter="url(#hr)" opacity=".25"/>
837 <filter 837 <path d="M1051.5-270c1.905.578 4.528 1.616 6.094 2.594 1.565.978 2.88 1.36 5.5 3.125 2.593 1.747 4.986 2.71 7.25 3.594 2.446.955 5.682 1.657 9.406 3.062-1.19-1.138-7.063-2.687-8.938-3.375-1.874-.688-4.081-1.566-6.874-3.281-2.794-1.715-3.574-2.284-5.938-3.406-2.364-1.123-4.057-1.835-6.5-2.313z" enable-background="new" filter="url(#hq)" opacity=".25"/>
838 inkscape:collect="always" 838 <path d="m1020.2-266.84c1.912 0.638 4.581 1.755 6.156 2.813 1.575 1.057 2.896 1.508 5.531 3.406 2.61 1.878 5.029 3.03 7.313 4.062 2.468 1.116 5.764 2.174 9.531 3.844-1.203-1.222-7.203-3.314-9.094-4.125-1.89-0.81-4.064-1.894-6.874-3.75s-3.622-2.477-6-3.719c-2.379-1.242-4.111-1.975-6.563-2.531z" enable-background="new" filter="url(#hp)" opacity=".25"/>
839 id="filter8860" 839 <path d="M1110.2-266.89c.15.049.688.631.11 1.484-.81 1.195-5.705 3.325-8.563 4.125-2.845.798-6.29.978-10.562-.375-4.302-1.362-5.47-2.468-10.656-4.312 4.664 2.115 6.195 3.952 10.125 5.344 1.62.574 3.367.94 5.062 1.03-.445.327-1.53.984-3.562 1.595-2.796.84-6.65 1.534-8.25 1.625-1.515.086-3.142-.513-3.438-.625.167.103.374.377-.25 1.03-.899.945-6.147 1.924-9.125 2.25-2.964.326-6.521-.015-10.906-1.905-3.978-1.715-5.339-2.916-9.406-4.75v.156c3.643 2.095 5.284 3.883 8.875 5.562 1.73.81 3.592 1.41 5.406 1.72-.534.286-1.557.71-3.437 1.03-2.87.488-6.81.817-8.438.75-.85-.034-1.728-.184-2.406-.406-.685-.215-1.19-.444-1.312-.5.169.107.43.403-.22 1.031-.909.88-6.245 1.337-9.25 1.47-2.99.131-6.588-.451-11-2.563-4.44-2.127-5.64-3.402-10.905-5.782 4.734 2.597 6.286 4.63 10.344 6.72 1.673.861 3.485 1.493 5.25 1.937-.463.233-1.59.688-3.688.937-2.886.343-6.834.493-8.468.375-1.547-.111-3.232-.857-3.532-1
840 x="-0.38093024" 840.17.12.414.41-.218 1-.913.851-6.244 1.262-9.25 1.375-2.993.113-6.59-.49-11-2.594-4.002-1.908-5.388-3.137-9.47-5.093v.156c3.656 2.204 5.295 4.053 8.907 5.906 1.74.893 3.637 1.528 5.469 1.969-.54.248-1.578.615-3.469.844-2.886.348-6.866.52-8.5.406a9.446 9.446 0 0 1-2.406-.5 12.532 12.532 0 0 1-1.313-.531c.17.112.465.422-.187 1.03-.913.853-6.275 1.294-9.281 1.407-2.993.112-6.594-.528-11-2.594-4.437-2.08-5.647-3.331-10.906-5.656 4.729 2.548 6.29 4.578 10.344 6.625 1.671.844 3.485 1.467 5.25 1.906-.464.235-1.59.684-3.688.938-2.886.348-6.836.57-8.469.469-1.544-.096-3.2-.83-3.5-.97.17.12.382.405-.25 1-.912.861-6.246 1.331-9.25 1.47-2.99.138-6.567-.451-10.969-2.47-3.993-1.83-5.365-3.028-9.437-4.905v.156c3.647 2.133 5.27 3.935 8.875 5.719 1.737.86 3.607 1.45 5.437 1.875-.54.253-1.55.64-3.437.906-2.88.404-6.838.646-8.469.562a9.36 9.36 0 0 1-2.406-.437 12.971 12.971 0 0
841 width="1.7618605" 8411-1.313-.5c.17.109.432.41-.218 1.031-.911.87-6.25 1.392-9.25 1.563-2.987.17-6.574-.316-10.97-2.282-4.424-1.978-5.605-3.228-10.843-5.375 4.71 2.388 6.27 4.39 10.312 6.344a23.73 23.73 0 0 0 5.218 1.781c-.461.25-1.597.713-3.687 1.032-2.876.438-6.78.733-8.406.687-1.539-.043-3.233-.745-3.532-.875.169.113.411.414-.218 1.031-.908.891-6.203 1.529-9.188 1.813-2.971.283-6.573-.176-10.938-1.938-3.96-1.598-5.329-2.795-9.344-4.312v.156c3.596 1.811 5.239 3.582 8.813 5.156 1.722.759 3.587 1.29 5.406 1.625-.536.28-1.566.688-3.437 1.063-2.856.572-6.79 1.02-8.407 1.031-.844.006-1.706-.08-2.375-.25-.676-.162-1.16-.33-1.28-.375.166.094.422.383-.22 1.062-.897.951-6.186 1.918-9.125 2.438-2.925.518-6.432.374-10.719-1.031-4.315-1.415-5.472-2.53-10.562-3.969 4.577 1.751 6.09 3.56 10.031 5 1.627.594 3.37.956 5.094 1.156-.453.297-1.555.884-3.594 1.469-2.804.805-6.638 1.576-8.218
842 y="-0.17518716" 8421.75-1.495.165-3.117-.317-3.407-.406.164.09.393.36-.218 1.062-.883 1.014-6.045 2.372-8.938 3.063-2.88.687-6.335.76-10.562-.438-3.835-1.086-5.172-2.072-9.062-3.125v.156c3.484 1.395 5.07 2.92 8.53 4.032 1.669.535 3.457.786 5.22.875-.52.352-1.5.914-3.313 1.53-2.765.942-6.59 1.936-8.156 2.157-.818.115-1.633.123-2.281.031-.655-.083-1.133-.218-1.25-.25.162.075.434.34-.188 1.094-.87 1.055-6.01 2.66-8.875 3.438-2.852.774-6.259.958-10.438-.094-4.206-1.06-5.356-2.042-10.344-3.156 4.485 1.46 5.97 3.135 9.813 4.25 1.585.46 3.287.638 4.969.687-.442.337-1.513 1.028-3.5 1.781-2.734 1.037-6.452 2.163-8 2.438-1.465.26-3.06-.117-3.344-.188.16.08.38.321-.219 1.063-.865 1.07-5.916 2.818-8.75 3.687-2.82.866-6.207 1.157-10.344.22-3.753-.852-5.048-1.717-8.875-2.595v.157c3.428 1.237 4.987 2.632 8.375 3.53 1.632.434 3.367.584 5.094.563-.51.384-1.477 1.022-3.25 1.75-2.706 1.112-6.436 2.308-7.969
843 height="1.3503743"> 8432.625-.8.166-1.612.219-2.25.157v1.406c.227-.145.449-.273.719-.375 1.08-.41 2.171-.216 6-1.688 3.828-1.471 5.224-2.005 5.906-2.406.68-.4 1.612-.88 2.219-1.531 1.827-.138 3.57-.493 4.937-1 2.968-1.1 4.876-1.806 6.782-2.469 1.905-.663 2.354-1.415 3.406-1.781 1.091-.38 2.195-.166 6.062-1.531 3.868-1.366 5.283-1.827 5.969-2.22.701-.4 1.7-.932 2.313-1.593 1.97-.055 3.816-.385 5.28-.875 3.002-1.005 4.927-1.622 6.845-2.25 1.538-.504 2.174-1.047 2.906-1.437.23-.135.475-.254.75-.344 1.098-.36 2.181-.082 6.094-1.313 3.912-1.23 5.366-1.673 6.062-2.03.694-.358 1.63-.794 2.25-1.407 1.865-.023 3.636-.267 5.031-.688 3.03-.913 4.993-1.43 6.938-1.968 1.945-.54 2.426-1.265 3.5-1.563 1.114-.31 2.22.007 6.187-1.031 3.968-1.039 5.418-1.433 6.125-1.75.735-.33 1.814-.754 2.438-1.375 1.997.116 3.857-.02 5.344-.375 3.078-.735 5.083-1.101 7.062-1.5 1.588-.32 2.244-.79 3-1.094.238-.107.467-.193.75-.25 1.134-.23
844 <feGaussianBlur 8442.305.209 6.344-.5s5.5-.927 6.219-1.187c.715-.26 1.704-.568 2.343-1.094 1.925.24 3.748.224 5.188 0 3.126-.488 5.155-.7 7.156-.969 2.002-.268 2.489-.945 3.594-1.094 1.146-.154 2.276.302 6.344-.219 4.068-.52 5.56-.695 6.28-.937.738-.247 1.799-.586 2.438-1.125 2.05.335 3.974.398 5.5.219 3.143-.37 5.18-.56 7.188-.782 1.61-.178 2.265-.608 3.031-.843a3.43 3.43 0 0 1 .781-.188c1.15-.128 2.302.347 6.375-.125s5.56-.61 6.282-.844c.719-.232 1.7-.473 2.343-.968 1.937.333 3.77.404 5.22.25 3.145-.335 5.177-.519 7.187-.719 2.01-.2 2.484-.826 3.593-.938 1.152-.115 2.297.366 6.375-.062s5.59-.562 6.313-.781c.74-.224 1.796-.514 2.437-1.031 2.058.398 4.002.493 5.532.343 3.148-.308 5.175-.473 7.187-.656 1.614-.147 2.263-.56 3.031-.781.242-.081.494-.13.782-.156 1.152-.106 2.293.392 6.375 0 4.082-.393 5.589-.531 6.312-.75.721-.219 1.7-.448 2.344-.938 1.938.35 3.769.454 5.219.313 3.148-.309 5.175-.474
845 inkscape:collect="always" 8457.187-.657 2.012-.183 2.514-.838 3.625-.937 1.152-.103 2.292.385 6.375 0s5.589-.501 6.313-.719c.739-.222 1.795-.514 2.437-1.031 2.057.402 4.003.503 5.531.344 3.147-.329 5.178-.523 7.188-.72 1.613-.156 2.266-.63 3.031-.874.24-.088.463-.122.75-.156 1.148-.14 2.317.34 6.375-.25 4.058-.59 5.562-.778 6.281-1.032.717-.253 1.675-.558 2.313-1.093 1.92.211 3.72.151 5.156-.094 3.12-.533 5.112-.929 7.094-1.313 1.982-.384 2.474-1.04 3.562-1.28 1.13-.252 2.27.115 6.25-.876s5.43-1.42 6.125-1.781c.723-.376 1.762-.87 2.375-1.531 1.963-.012 3.794-.291 5.22-.844 2.95-1.145 4.872-1.87 6.687-2.75 1.455-.707 2.334-1.686 2.547-1.984.212-.298.111-.746.137-.767.043-.035.32-.085.48-.429.858-1.847 2.32-5.644
846 stdDeviation="19.304015" 8462.435-6.329.113-.682.163-1.348.214-1.745.03-.23-.147-.865-.125-.924.031-.082.305-.265.36-.515.267-1.198.09-2.191-.125-3.609-.214-1.417-.983-4.622-1.637-5.476-.659-.862-1.223-1.011-1.748-1-.208.27.137.262.163.312.68.05.934.369 1.42.897s1.221 3.85 1.358 5.301.19 2.86-.088 3.469c-.278.608-.723.517-1.016.583.531.186.67.125.732.969.058.813-.134 1.64-.52 2.806-.392 1.18-1.846 4.35-2.286 4.598-.452.256-.731.27-1.067.14z" enable-background="new" filter="url(#ho)" opacity=".25"/>
847 id="feGaussianBlur8862" /> 847 <path d="m988.75-263.84c1.912 0.634 4.55 1.758 6.125 2.813 1.575 1.054 2.896 1.482 5.531 3.375 2.609 1.873 5.027 3.015 7.313 4.062 2.47 1.132 5.752 2.155 9.531 3.938-1.207-1.259-7.139-3.365-9.031-4.188s-4.128-1.93-6.938-3.781-3.622-2.482-6-3.719c-2.377-1.237-4.08-1.95-6.53-2.5z" enable-background="new" filter="url(#hn)" opacity=".25"/>
848 </filter> 848 <path d="M957.5-260.78c1.91.618 4.583 1.71 6.156 2.75 1.574 1.04 2.896 1.482 5.531 3.375 2.609 1.873 5.027 3.015 7.313 4.063 2.47 1.131 5.752 2.154 9.531 3.937-1.207-1.258-7.201-3.396-9.094-4.219-1.892-.823-4.096-1.93-6.906-3.781-2.81-1.85-3.593-2.44-5.969-3.656s-4.113-1.939-6.562-2.469z" enable-background="new" filter="url(#hm)" opacity=".25"/>
849 <filter 849 <path d="M926.09-257.38c1.908.597 4.553 1.664 6.125 2.688 1.571 1.023 2.87 1.44 5.5 3.28 2.603 1.823 5.029 2.973 7.313 4 2.467 1.111 5.755 2.094 9.53 3.845-1.205-1.249-7.171-3.319-9.062-4.125s-4.102-1.891-6.906-3.688c-2.804-1.796-3.627-2.402-6-3.594-2.373-1.191-4.054-1.903-6.5-2.406z" enable-background="new" filter="url(#hl)" opacity=".25"/>
850 inkscape:collect="always" 850 <path d="M894.91-253.56c1.902.554 4.587 1.589 6.156 2.594s2.874 1.408 5.5 3.219c2.6 1.791 5 2.871 7.281 3.875 2.465 1.083 5.76 2.04 9.532 3.75-1.205-1.236-7.175-3.245-9.063-4.032-1.888-.786-4.075-1.83-6.875-3.593s-3.6-2.369-5.969-3.532c-2.37-1.163-4.123-1.834-6.562-2.28z" enable-background="new" filter="url(#hk)" opacity=".25"/>
851 id="filter8888" 851 <path d="M863.72-248.66c1.88.43 4.504 1.38 6.063 2.313 1.558.932 2.852 1.257 5.468 3 2.59 1.724 4.981 2.708 7.25 3.625 2.452.99 5.74 1.877 9.5 3.5-1.201-1.208-7.152-3.067-9.03-3.782-1.88-.715-4.086-1.684-6.876-3.375s-3.585-2.228-5.937-3.28-4.026-1.713-6.438-2z" enable-background="new" filter="url(#hj)" opacity=".25"/>
852 x="-0.2112188" 852 <path d="m833.16-241.38c1.848 0.296 4.47 0.976 6 1.781s2.814 1.056 5.375 2.531c2.535 1.46 4.89 2.326 7.125 3.063 2.414 0.797 5.657 1.467 9.375 2.844-1.188-1.129-7.088-2.59-8.938-3.156-1.85-0.567-4.003-1.374-6.75-2.844-2.746-1.47-3.5-1.92-5.812-2.781-2.311-0.861-4.005-1.32-6.375-1.438z" enable-background="new" filter="url(#hi)" opacity=".25"/>
853 width="1.4224375" 853 <path d="m802.91-232.31c1.822 0.211 4.366 0.8 5.875 1.531 1.51 0.73 2.756 0.93 5.281 2.281 2.5 1.338 4.832 2.049 7.031 2.657 2.377 0.656 5.565 1.073 9.22 2.187-1.168-1.045-6.93-2.103-8.75-2.562-1.822-0.46-3.953-1.127-6.657-2.438s-3.471-1.72-5.75-2.469-3.913-1.179-6.25-1.187z" enable-background="new" filter="url(#hh)" opacity=".25"/>
854 y="-0.16808605" 854 <path d="M773.19-222.19c1.811.179 4.32.665 5.813 1.344 1.491.678 2.753.798 5.25 2.062 2.47 1.252 4.79 1.896 6.968 2.438 2.354.585 5.492.897 9.094 1.844-1.15-.992-6.852-1.784-8.656-2.188s-3.916-1.021-6.594-2.25c-2.678-1.229-3.403-1.61-5.656-2.281-2.253-.67-3.896-1.002-6.219-.969z" enable-background="new" filter="url(#hg)" opacity=".25"/>
855 height="1.3361721"> 855 <path d="M743.56-211.19c1.793.13 4.273.55 5.75 1.188s2.716.741 5.188 1.937c2.446 1.184 4.72 1.747 6.874 2.219 2.328.51 5.42.68 9 1.562-1.143-.97-6.747-1.59-8.53-1.937-1.784-.347-3.884-.888-6.532-2.031-2.648-1.144-3.395-1.517-5.625-2.125-2.23-.61-3.826-.91-6.125-.813z" enable-background="new" filter="url(#hf)" opacity=".25"/>
856 <feGaussianBlur 856 </g>
857 inkscape:collect="always" 857 </g>
858 stdDeviation="8.3693583" 858 <path d="M912.45 671.2c1.642-3.218 3.518-5.735 4.861-9.849.8-3.658 3.312-2.03 7.26-8.397 1.403-2.24 5.477.391 8.966-2.399 1.27-.803 2.885-.404 4.483-.063 3.765 1.319 5.825 3.704 8.333 5.808 6.14 5.97 20.534 7.944 23.486 6.314 1.434-2.905 7.882-5.41 12.374-11.112.749-1.123 11.73-8.745 14.647-6.566" enable-background="new" fill="none" stroke="#000"/>
859 id="feGaussianBlur8890" /> 859 <path d="M937.07 660.78c7.363-3.233 13.811-8.908 20.708-13.385 3.31-1.97 6.87 3.216 10.796 3.599 2.298-.218 3.713 1.202 5.682 1.641 5.157 1.318 2.398 3.865 9.975 6.44 6.156 1.72 8.908-6.799 14.9-7.324 4.878-.503 8.1-.316 11.617-.252 3.927.139 4.079-3.498 6.061-5.304 2.98-2.805 7.156-1.85 10.145-4.74 1.018-1.385 1.955-3.011 2.735-5.109.882-2 3.04.306 4.798 1.263" enable-background="new" fill="none" stroke="#000"/>
860 </filter> 860 <g fill-rule="evenodd">
861 <filter 861 <path transform="translate(48.571 195.53)" d="m403.28 1056.3l56.569-42.426 72.125 14.142-46.669 52.326-53.74 7.071-28.284-31.113z" enable-background="accumulate" filter="url(#he)" opacity=".25"/>
862 inkscape:collect="always" 862 <path d="m590.84 1256.1c-1.407 18.801-1.145 32.751 2.082 49.303 3.226 16.552 16.406 45.907 20.334 63.184 3.926 17.267 2.694 38.31-12.46 51.148-15.317 12.977-42.05 21.599-67.831 15.734s-69.55-49.223-88.59-70.228c-19.112-21.083-63.761-93.851-77.94-124.28-14.177-30.425-12.66-36.719-8.119-45.53-9.367-24.52-12.414-50.067-33.712-75.577 30.325 3.114 43.88 26.956 60.126 47.14-5.53-48.076-18.055-64.416-28.374-90.724 29.994 6.082 50.579 31.872 63.98 72.712 9.554-3.918 18.238-9.373 30.187-9.061-11.298-41.696-17.949-69.916-36.687-101.07 53.442 5.67 83.657 80.639 78.971 87.96 9.978-2.243 19.006-6.53 30.437-5.65-11.249-38.348-21.048-76.869-3.66-118.65 0 0 48.287 65.436 54.39 85.805 6.103 20.37 1.52 38.701 1.52 38.701s16.96 31.085 20.293 51.094c3.373 20.241-3.533 59.103-4.946 77.983z" enable-background="new" fill="#ada469"/>
863 id="filter8892" 863 <path transform="matrix(-.90453 .25066 .25066 .90453 1043.9 219.06)" d="M719.5 738.7l18.312 15.432 44.411-15.388L805.5 713.2l11.464 19.221 30.672 12.784 25.097 5.728L892 723.2l16.023 23.826L947 752.2l10.245-6.198L964 754.7l25.5 11 2-40.5-35.551-14.538-32.493-21.527-40.452-11.466-21.307-15.533L840 685.2l-84.971-46.583-33.03 38.083-2.5 62z" clip-path="url(#e)" enable-background="accumulate" fill="#fff" filter="url(#o)"/>
864 x="-0.18692794" 864 <path transform="matrix(-.90453 .25066 .25066 .90453 870.86 206.47)" d="M584 696.5l-6.563 17.156s-7.811 20.365-15.688 43.656c-3.938 11.646-7.883 24.041-10.938 35.125s-5.335 20.38-5.5 28.281c-.398 19.162 5.747 34.888 8.938 41.75-.772 3.555-1.991 9.454-3.344 18.094-1.92 12.268-3.718 27.154-2.375 39.875 1.382 13.088 6.812 28.188 12.594 43.031s12.054 29.227 15.22 38.031c6.631 18.452 9.992 31.576 11.311 48.5.582 7.456-.242 20.336-1.25 33.375s-2.186 26.301-1.687 36.969c.989 21.14 9.328 46.835 33.375 57.937 22.775 10.515 55.327 11.702 83.438-3.437 16.16-8.704 30.076-27.098 43.375-46.906s24.969-41.053 31.938-54.906c15.353-30.521 39.394-115.46 45.625-152.72 3.018-18.047 3.921-29.066 2.625-38.031-.979-6.766-3.828-12.147-6.875-16.22 2.042-27.507-.732-51.368 11.969-79.405l10.562-23.281-23.812 9.312c-17.49 6.838-28.902 19.045-36.594 32.062-.323.546-.563 1.108-.875 1.656.222-22.515 4.408-37.638
865 width="1.3738559" 8656.594-58.688l1.968-19-17.03 8.656c-30.595 15.556-45.696 48.193-49.72 90.22-4.245-.626-8.831-1.02-13.812-.844-.291-39.18-.396-67.037 8.594-99.375l5.594-20.125-19.438 7.656c-30.91 12.204-47.86 41.931-56.625 68.375-4.383 13.222-6.746 25.801-7.594 35.938a92.19 92.19 0 0 0-.312 7.719c-3.242-.037-6.42.136-10.062.5.041-39.005-3.485-79.754-32.281-116.5L584 696.498zm5.813 43.812c16.807 30.644 17.475 63.967 16.938 99.75l-.22 15.062 12.036-6.54c8.662-3.132 19.56-.227 31.934-.835l14.675 9.357-6.331-25.794c-.09-.23-.22-.417-.25-.72-.2-2.039-.222-5.472.125-9.624.694-8.304 2.79-19.585 6.625-31.156 5.155-15.553 13.488-31.192 25.125-42.531-4.684 28.638-3.216 60.259-3.012 95.805l-2.766 13.262 15.496-7.598c9.03-2.758 17.19-.35 29.281 1.094l13.246 9.444L741.094 840c1.448-30.972 8.222-53.678 20.719-68.875-2.987 19.779-5.43 41.785.313 78.344l1.065 6.373-2.938 11.517 10.617-8.168 9.19 10.222-1.549-10.464
866 y="-0.23646873" 8663.427-6.95c5.7-13.21 10.173-26.212 16.344-36.655.96-1.624 2.031-3.065 3.062-4.563-3.68 21.155-2.427 40.208-4.093 57.781l-4.68 7.807 7.398.225c3.22 3.483 3.868 3.85 4.563 8.656s.318 14.4-2.563 31.625c-5.568 33.288-31.846 77.84-43.74 101.49-6.605 13.13-18.528 57.486-31.123 76.246s-28.53 39.767-37.172 44.42c-21.49 11.575-44.556 25.507-60.619 18.09-14.375-6.636-23.04-21.192-23.814-37.742-.383-8.188.613-21.31 1.625-34.406 1.013-13.097 11.29-22.571 15.423-36.563 5.373-18.181-1.447-36.594-12.5-53.937-6.486-10.178-23.977-24.258-29.548-38.562s-10.368-29.003-11.28-37.656c-.927-8.771.422-23.025 2.218-34.5 1.796-11.475 3.844-20.281 3.844-20.281l9.423-3.615-10.485-3.885s-8.5-15.31-8.094-34.812c.071-3.423 1.836-12.728 4.719-23.188s6.764-22.553 10.625-33.97c3.044-9.002 5.78-16.602 8.344-23.687z" clip-path="url(#am)" enable-background="new" filter="url(#ds)" opacity=".588"/>
867 height="1.4729375"> 867 <g transform="translate(324.57 331.53)" clip-path="url(#is)" enable-background="new" fill="#fff">
868 <feGaussianBlur 868 <path transform="matrix(-.90453 .25066 .25066 .90453 -52.2 74.097)" d="m-15.668 843.49l-49.497-15.556-26.87 52.326 41.012 45.255 49.497-38.184z" enable-background="accumulate" filter="url(#dr)"/>
869 inkscape:collect="always" 869 <path transform="matrix(-.90453 .25066 .25066 .90453 -46.928 75.511)" d="m118.71 859.93l-55.154-46.669-43.841 36.77 33.941 53.74-13.597 85.462-39.445 28.292-41.012 11.314-2.828 46.669 56.569 25.456 18.944-69.65 23.457-58.857 46.348-72.615 16.62-39.912z" enable-background="accumulate" filter="url(#dq)"/>
870 stdDeviation="31.21228" 870 </g>
871 id="feGaussianBlur8894" /> 871 <path transform="matrix(-.90453 .25066 .25066 .90453 277.64 407.04)" d="m-70.822 932.58l60.811-26.87 100.41 31.113-63.64 31.113-82.024-16.971-15.556-18.385z" enable-background="accumulate" filter="url(#cy)" opacity=".25"/>
872 </filter> 872 <path transform="matrix(-.90453 .25066 .25066 .90453 870.86 206.47)" d="M583.06 715.75c-12.106 34.45-26.714 68.533-31.75 104.84-.832 14.929 4.59 29.159 8.844 43.062-5.916 27.201-10.137 56.9 1.156 83.125 13.517 38.161 35.001 75.682 32.423 117.47-.948 29.294-9.014 60.994 5.39 88.282 10.199 19.335 33.14 27.312 53.968 27.668 27.862 1.174 56.463-11.622 72-35.261 22.596-29.372 41.802-61.497 55.24-96.06 16.89-45.506 29.672-92.561 37.934-140.4 1.824-12.941 3.1-27.47-4.58-38.823-3.43-7.336.043-15.56-.684-23.31.674-24.995 4.013-50.664 16.653-72.596-17.733 6.445-35.073 16.56-44.003 33.864-3.935 6.71-7.605 13.574-11.372 20.386-3.55-30.014 3.72-59.648 6.781-89.281-20.166 9.055-36.877 25.655-44.175 46.682-6.304 15.58-8.802 32.317-10.263 49.037-8.253-1.52-16.684-2.102-25.062-1.5-.963-38.698-.467-79.407 10.97-115.91-18.682 6.218-35.167 18.736-45.629 35.387-13.853 20.88-21.26 45.754-23.059 70.613.586
873 <clipPath 8734.325-.06 11.84-6.343 9.875-5.332.018-10.63.679-15.938 1.094 1.147-39.381-3.342-81.628-27.062-114.22-3.061-3.637-5.637-7.685-8.625-11.344l-2.813 7.312zm7.75 13.844c18.565 29.296 22.482 64.82 22.125 98.875.204 5.175-.517 11.829.125 16.062 12.319-6.103 26.739-2.44 39.781-2.187 2.317 1.223 3.192 1.652 1.906-1.407-4.164-13.953-1.848-28.613 1.805-42.408 6.367-26.29 20.628-51.088 42.82-67.03-8.617 37.237-5.716 76.562-6.094 113.97 12.253-6.91 27.28-3.446 40.031-.25 3.393 3.535 2.29-.73 2.188-3.812-.483-21.371 4.131-43.07 13.688-62.156 5.963-10.687 14.243-19.804 22.438-28.875-7.872 33.838-9.203 69.336-2.719 103.5 1.725-1.411 4.607-.454 5.656-.375 9.684-21.237 16.351-45.381 34.89-60.742 1.874-.371-1.448 8.525-1.484 11.898-3.535 21.846-7.175 44.142-8.784 66.219-8.784 2.342 2.849 2.323 3.469 4.062 7.923 10.566 4.663 24.405 3.632 36.353-7.064 45.034-22.142 87.362-35.954 130.68-12.075 32.95-27.374
874 clipPathUnits="userSpaceOnUse" 87458.852-47.888 87.202-10.953 13.551-23.245 27.851-40.844 32.5-20.156 6.242-44.207 10.877-62.6.046-17.29-12.34-21.024-35.709-19.262-55.686.048-15.826 4.938-28.512 4.41-43.492-.538-15.263-2.291-30.565-6.542-46.866-4.252-16.302-9.044-24.918-16.12-41.573-7.24-17.045-15.07-36.749-18.204-56.288-1.75-18.627 2.891-37.123 5.78-55.25 3.297-2.837-1.597-5.196-2.312-8.187-7.6-17.015-8.407-36.775-2.742-54.56 7.13-25.072 15.761-49.632 24.68-74.128l2.125 3.906z" clip-path="url(#cj)" enable-background="new" filter="url(#ir)" opacity=".588"/>
875 id="clipPath8906"> 875 <path transform="matrix(-.90453 .25066 .25066 .90453 1043.9 219.06)" d="m735.06 733.04l2.755 21.089 44.411-15.388 4.851-22.39-3.936-22.052-22.452-36.593-8.28 30.305-17.35 45.029z" clip-path="url(#e)" enable-background="accumulate" fill="#fff" filter="url(#bz)"/>
876 <path 876 <path transform="matrix(-.90453 .25066 .25066 .90453 1043.9 219.06)" d="m831.81 730.29l15.822 14.905 20.855 2.9-1.59-39.926 8.325-30.508-7.165-6.341-21.697 20.942-14.55 38.028z" clip-path="url(#e)" enable-background="accumulate" fill="#fff" filter="url(#by)"/>
877 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#262f2f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" 877 </g>
878 d="m 352.24553,211.99185 c -3.80443,-25.26423 -16.80972,-50.63802 -17.1568,-75.52523 -0.18626,-13.35552 3.27285,-26.57091 13.75553,-39.554046 36.34702,-65.295835 116.94091,-84.694685 185.93466,-91.465427 86.92239,-11.016801 184.91267,17.940072 233.37134,95.401283 54.12402,75.7333 56.67476,172.53912 80.61204,259.52795 29.43779,127.1276 54.77914,256.21414 60.39224,386.85035 -3.06348,78.18185 -8.42634,165.18415 -60.50321,228.13413 -48.02654,50.35744 -122.78647,50.05304 -187.06988,59.00234 -90.55539,4.655 -184.35153,-16.1458 -261.7839,-64.19824 -64.77564,-37.94001 -95.73019,-113.47863 -97.2794,-186.01958 -8.38917,-79.87516 26.39152,-153.80851 51.6204,-227.15961 7.47061,-82.76107 9.41286,-166.24775 9.65334,-249.38484 -0.83682,-32.19544 -7.08953,-63.81733 -11.54636,-95.60908 z" 878 <g transform="translate(324.57 331.53)" clip-path="url(#iq)" enable-background="new" filter="url(#ip)">
879 id="path8908" 879 <path d="M36.494 811.806l-14.799 11.372-17.47-31.162 14.663.65 17.606 19.14z" enable-background="accumulate" fill="#fff" fill-rule="evenodd"/>
880 sodipodi:nodetypes="cscccccccccccc" 880 <path d="M-55 757.2h182v177H-55z" enable-background="accumulate" fill="none"/>
881 inkscape:connector-curvature="0" /> 881 </g>
882 </clipPath> 882 <g transform="translate(324.57 331.53)" clip-path="url(#io)" enable-background="new" filter="url(#in)">
883 <filter 883 <path d="m83.111 790.72l-28.201 12.855-5.658-21.687-13.943-25.046 6.325-6.88 26.384 18.51 15.094 22.249z" enable-background="accumulate" fill="#fff" fill-rule="evenodd"/>
884 inkscape:collect="always" 884 <path d="M-22 696.2h165v176H-22z" enable-background="accumulate" fill="none"/>
885 id="filter8940" 885 </g>
886 x="-0.25152978" 886 <g fill-rule="evenodd">
887 width="1.5030596" 887 <path d="m1084.8 1267.3c6.794 18.903 10.494 33.3 11.89 51.212 1.397 17.912-3.783 51.801-2.9 70.656 0.881 18.845 8.133 40.099 27.345 48.969 19.419 8.966 49.319 10.211 74.12-3.146 24.8-13.357 57.4-70.326 70.973-97.309 13.624-27.084 38.761-114.5 44.661-149.77s2.551-41.3-4.617-49.055c2.64-27.84-1.5-54.935 13.11-87.186-30.249 11.826-37.382 40.161-48.319 65.505-8-50.933 0.21-71.273 3.319-101.22-29.065 14.778-42.862 47.114-45 92.857-10.924-1.304-21.391-4.434-33.571-0.714-0.264-46.023-1.464-76.889 8.91-114.21-53.254 21.027-62.946 106.59-56.053 112.78-10.883 0.535-21.371-1.297-32.857 2.857 0.638-42.57-0.26-84.909-30-122.86 0 0-30.958 80.922-31.43 103.57-0.47 22.65 9.452 40.166 9.452 40.166s-8.568 36.741-6.298 58.232c2.295 21.741 20.443 59.676 27.266 78.658z" enable-background="new" fill="#ada469"/>
888 y="-0.053035267" 888 <path transform="translate(324.57 331.53)" d="M719.5 738.7l18.312 15.432 44.411-15.388L805.5 713.2l11.464 19.221 30.672 12.784 25.097 5.728L892 723.2l16.023 23.826L947 752.2l10.245-6.198L964 754.7l25.5 11 2-40.5-35.551-14.538-32.493-21.527-40.452-11.466-21.307-15.533L840 685.2l-84.971-46.583-33.03 38.083-2.5 62z" clip-path="url(#e)" enable-background="accumulate" fill="#fff" filter="url(#o)"/>
889 height="1.1060705"> 889 <path transform="translate(498.6 269.37)" d="M584 696.5l-6.563 17.156s-7.811 20.365-15.688 43.656c-3.938 11.646-7.883 24.041-10.938 35.125s-5.335 20.38-5.5 28.281c-.398 19.162 5.747 34.888 8.938 41.75-.772 3.555-1.991 9.454-3.344 18.094-1.92 12.268-3.718 27.154-2.375 39.875 1.382 13.088 6.812 28.188 12.594 43.031s12.054 29.227 15.22 38.031c6.631 18.452 9.992 31.576 11.311 48.5.582 7.456-.242 20.336-1.25 33.375s-2.186 26.301-1.687 36.969c.989 21.14 9.328 46.835 33.375 57.937 22.775 10.515 55.327 11.702 83.438-3.437 16.16-8.704 30.076-27.098 43.375-46.906s24.969-41.053 31.938-54.906c15.353-30.521 39.394-115.46 45.625-152.72 3.018-18.047 3.921-29.066 2.625-38.031-.979-6.766-3.828-12.147-6.875-16.22 2.042-27.507-.732-51.368 11.969-79.405l10.562-23.281-23.812 9.312c-17.49 6.838-28.902 19.045-36.594 32.062-.323.546-.563 1.108-.875 1.656.222-22.515 4.408-37.638 6.594-58.688l1.968-19-17.03
890 <feGaussianBlur 8908.656c-30.595 15.556-45.696 48.193-49.72 90.22-4.245-.626-8.831-1.02-13.812-.844-.291-39.18-.396-67.037 8.594-99.375l5.594-20.125-19.438 7.656c-30.91 12.204-47.86 41.931-56.625 68.375-4.383 13.222-6.746 25.801-7.594 35.938a92.19 92.19 0 0 0-.312 7.719c-3.242-.037-6.42.136-10.062.5.041-39.005-3.485-79.754-32.281-116.5L584 696.498zm5.813 43.812c16.807 30.644 17.475 63.967 16.938 99.75l-.22 15.062 12.036-6.54c8.662-3.132 19.56-.227 31.934-.835l14.675 9.357-6.331-25.794c-.09-.23-.22-.417-.25-.72-.2-2.039-.222-5.472.125-9.624.694-8.304 2.79-19.585 6.625-31.156 5.155-15.553 13.488-31.192 25.125-42.531-4.684 28.638-3.216 60.259-3.012 95.805l-2.766 13.262 15.496-7.598c9.03-2.758 17.19-.35 29.281 1.094l13.246 9.444L741.094 840c1.448-30.972 8.222-53.678 20.719-68.875-2.987 19.779-5.43 41.785.313 78.344l1.065 6.373-2.938 11.517 10.617-8.168 9.19 10.222-1.549-10.464 3.427-6.95c5.7-13.21
891 inkscape:collect="always" 89110.173-26.212 16.344-36.655.96-1.624 2.031-3.065 3.062-4.563-3.68 21.155-2.427 40.208-4.093 57.781l-4.68 7.807 7.398.225c3.22 3.483 3.868 3.85 4.563 8.656s.318 14.4-2.563 31.625c-5.568 33.288-31.793 123.17-43.688 146.81-6.605 13.13-18.03 33.896-30.625 52.656s-27.359 35.534-36 40.187c-21.49 11.574-48.78 10.26-64.844 2.844-14.375-6.637-20.538-23.45-21.312-40-.383-8.188.613-21.31 1.625-34.406 1.013-13.097 11.29-22.571 15.423-36.563 5.373-18.181-1.447-36.594-12.5-53.937-6.486-10.178-23.977-24.258-29.548-38.562s-10.368-29.003-11.28-37.656c-.927-8.771.422-23.025 2.218-34.5 1.796-11.475 3.844-20.281 3.844-20.281l9.423-3.616-10.485-3.884s-8.5-15.31-8.094-34.812c.071-3.424 1.836-12.728 4.719-23.188s6.764-22.553 10.625-33.97c3.044-9.002 5.78-16.602 8.344-23.687z" clip-path="url(#am)" enable-background="new" filter="url(#ds)" opacity=".588"/>
892 stdDeviation="13.024603" 892 <g transform="translate(324.57 331.53)" clip-path="url(#im)" fill="#fff">
893 id="feGaussianBlur8942" /> 893 <path d="m824.49 818.48l-49.497-15.556-26.87 52.326 41.012 45.255 49.497-38.184z" enable-background="accumulate" filter="url(#dr)"/>
894 </filter> 894 <path d="m964.49 855.25l-55.154-46.669-43.841 36.77 33.941 53.74 7.071 66.468-50.912 35.355-41.012 11.314-2.828 46.669 56.569 25.456 63.64-76.368 24.042-94.752 8.485-57.983z" enable-background="accumulate" filter="url(#dq)"/>
895 <linearGradient 895 </g>
896 inkscape:collect="always" 896 <path transform="translate(48.571 195.53)" d="m1045.3 1043.6l60.811-26.87 100.41 31.113-63.64 31.113-82.024-16.971-15.556-18.385z" enable-background="accumulate" filter="url(#cy)" opacity=".25"/>
897 xlink:href="#linearGradient8952" 897 <path transform="translate(498.6 269.37)" d="M583.06 715.75c-12.106 34.45-26.714 68.533-31.75 104.84-.832 14.929 4.59 29.159 8.844 43.062-5.916 27.201-10.137 56.9 1.156 83.125 13.517 38.161 35.001 75.682 32.423 117.47-.948 29.294-9.014 60.994 5.39 88.282 10.199 19.335 33.14 27.312 53.968 27.668 27.862 1.174 56.463-11.622 72-35.261 22.596-29.372 41.802-61.497 55.24-96.06 16.89-45.506 29.672-92.561 37.934-140.4 1.824-12.941 3.1-27.47-4.58-38.823-3.43-7.336.043-15.56-.684-23.31.674-24.995 4.013-50.664 16.653-72.596-17.733 6.445-35.073 16.56-44.003 33.864-3.935 6.71-7.605 13.574-11.372 20.386-3.55-30.014 3.72-59.648 6.781-89.281-20.166 9.055-36.877 25.655-44.175 46.682-6.304 15.58-8.802 32.317-10.263 49.037-8.253-1.52-16.684-2.102-25.062-1.5-.963-38.698-.467-79.407 10.97-115.91-18.682 6.218-35.167 18.736-45.629 35.387-13.853 20.88-21.26 45.754-23.059 70.613.586 4.325-.06 11.84-6.343
898 id="linearGradient8958" 8989.875-5.332.018-10.63.679-15.938 1.094 1.147-39.381-3.342-81.628-27.062-114.22-3.061-3.637-5.637-7.685-8.625-11.344l-2.813 7.312zm7.75 13.844c18.565 29.296 22.482 64.82 22.125 98.875.204 5.175-.517 11.829.125 16.062 12.319-6.103 26.739-2.44 39.781-2.187 2.317 1.223 3.192 1.652 1.906-1.407-4.164-13.953-1.848-28.613 1.805-42.408 6.367-26.29 20.628-51.088 42.82-67.03-8.617 37.237-5.716 76.562-6.094 113.97 12.253-6.91 27.28-3.446 40.031-.25 3.393 3.535 2.29-.73 2.188-3.812-.483-21.371 4.131-43.07 13.688-62.156 5.963-10.687 14.243-19.804 22.438-28.875-7.872 33.838-9.203 69.336-2.719 103.5 1.725-1.411 4.607-.454 5.656-.375 9.684-21.237 16.351-45.381 34.89-60.742 1.874-.371-1.448 8.525-1.484 11.898-3.535 21.846-3.297 44.173-4.906 66.25-1.312 1.377 2.849 2.323 3.469 4.062 7.923 10.566 3.123 24.831 2.092 36.78-7.064 45.034-21.766 88.38-35.577 131.7-12.075 32.95-30.72 63.08-51.234 91.43-10.953
899 x1="609.31244" 89913.55-23.245 27.85-40.844 32.5-20.156 6.24-43.576 5.174-61.97-5.657-17.29-12.34-21.023-35.709-19.261-55.686.048-15.826 2.372-27.8 7.917-42.805s2.471-31.332-1.78-47.633-12.18-26.26-21.822-42.204-17.637-36.037-20.772-55.577c-1.75-18.627 2.892-37.123 5.781-55.25 3.296-2.837-1.598-5.196-2.312-8.187-7.602-17.015-8.408-36.775-2.743-54.56 7.13-25.072 15.761-49.632 24.68-74.128l2.125 3.906z" clip-path="url(#cj)" enable-background="new" filter="url(#il)" opacity=".588"/>
900 y1="239.46866" 900 <path transform="translate(324.57 331.53)" d="m735.06 733.04l2.755 21.089 44.411-15.388 4.851-22.39-3.936-22.052-22.452-36.593-8.28 30.305-17.35 45.029z" clip-path="url(#e)" enable-background="accumulate" fill="#fff" filter="url(#bz)"/>
901 x2="560.83142" 901 <path transform="translate(324.57 331.53)" d="m831.81 730.29l15.822 14.905 20.855 2.9-1.59-39.926 8.325-30.508-7.165-6.341-21.697 20.942-14.55 38.028z" clip-path="url(#e)" enable-background="accumulate" fill="#fff" filter="url(#by)"/>
902 y2="262.86206" 902 </g>
903 gradientUnits="userSpaceOnUse" 903 <g transform="translate(324.57 331.53)" clip-path="url(#ik)" filter="url(#ij)">
904 gradientTransform="translate(450.03125,73.843964)" /> 904 <path d="M910.14 746.31l32.613 5.174-.361-23.876 7.188-29.682-8.45-5.264-21.823 26.511-9.167 27.137z" enable-background="accumulate" fill="#fff" fill-rule="evenodd"/>
905 <linearGradient 905 <path d="M877.52 650.19h123.04v172.53H877.52z" enable-background="accumulate" fill="none"/>
906 inkscape:collect="always" 906 </g>
907 xlink:href="#linearGradient8964" 907 <g transform="translate(324.57 331.53)" clip-path="url(#ii)" filter="url(#ih)">
908 id="linearGradient8970" 908 <path d="M964 754.69l18.429 7.465 9.071-36.964-14.87 4.839L964 754.69z" enable-background="accumulate" fill="#fff" fill-rule="evenodd"/>
909 x1="603.84064" 909 <path d="M924.9 677.06h142.13v125.16H924.9z" enable-background="accumulate" fill="none"/>
910 y1="627.85303" 910 </g>
911 x2="616.24396" 911 <g stroke-miterlimit="1">
912 y2="585.42664" 912 <path d="m596.57 400.85h440v376h-440z" fill="none" stroke="#f8d615" stroke-width="18"/>
913 gradientUnits="userSpaceOnUse" 913 <path d="m104.57 248.85h1684v1292h-1684z" fill="none" stroke="#f83615" stroke-width="18"/>
914 gradientTransform="translate(450.03125,73.843964)" /> 914 <path d="M3407.4 296.46h522.57v1182.5H3407.4z" fill="url(#ig)" stroke="#f815bb" stroke-width="13.347"/>
915 <filter 915 </g>
916 inkscape:collect="always" 916 <g transform="matrix(1.0057 0 0 2.3995 3452.3 -18.515)" clip-path="url(#if)" enable-background="new">
917 id="filter9020" 917 <g filter="url(#aq)">
918 x="-0.32861114" 918 <g transform="translate(-174.03 62.156)" filter="url(#g)">
919 width="1.6572223" 919 <path d="m1268.3 663.77s-0.296 26.161 4.643 37.857 20.038 26.487 28.572 31.429 18.929 8.571 18.929 8.571l117.86-115 17.857-75.714-96.43 38.571-91.428 74.286z" enable-background="new" fill="#fff" fill-rule="evenodd"/>
920 y="-0.182" 920 <path d="M1197.8 486.14h333.75v309.71H1197.8z" enable-background="accumulate" fill="none"/>
921 height="1.364"> 921 </g>
922 <feGaussianBlur 922 </g>
923 inkscape:collect="always" 923 <g transform="translate(-174.03 62.156)" enable-background="new" filter="url(#g)" opacity=".18">
924 stdDeviation="20.912684" 924 <path d="m1268.3 663.77s-0.296 26.161 4.643 37.857 20.038 26.487 28.572 31.429 18.929 8.571 18.929 8.571l117.86-115 17.857-75.714-96.43 38.571-91.428 74.286z" enable-background="new" fill="#fff" fill-rule="evenodd"/>
925 id="feGaussianBlur9022" /> 925 <path d="M1197.8 486.14h333.75v309.71H1197.8z" enable-background="accumulate" fill="none"/>
926 </filter> 926 </g>
927 <filter 927 </g>
928 inkscape:collect="always" 928 <path d="M3492.3 296.46H3930v902.66h-437.7z" fill="#fff" stroke="#f8d615" stroke-miterlimit="1" stroke-width="18"/>
929 id="filter9024" 929 <g transform="matrix(1.0057 0 0 2.3995 3249.4 125.01)" clip-path="url(#ie)" enable-background="new" filter="url(#id)">
930 x="-0.55453134" 930 <path d="M36.494 811.806l-14.799 11.372-17.47-31.162 14.663.65 17.606 19.14z" enable-background="accumulate" fill="#fff" fill-rule="evenodd"/>
931 width="2.1090627" 931 <path d="M-55 757.2h182v177H-55z" enable-background="accumulate" fill="none"/>
932 y="-0.51434779" 932 </g>
933 height="2.0286956"> 933 <g transform="matrix(1.0057 0 0 2.3995 3249.4 125.01)" clip-path="url(#ic)" enable-background="new" filter="url(#gd)">
934 <feGaussianBlur 934 <path d="m83.111 790.72l-28.201 12.855-5.658-21.687-13.943-25.046 6.325-6.88 26.384 18.51 15.094 22.249z" enable-background="accumulate" fill="#fff" fill-rule="evenodd"/>
935 inkscape:collect="always" 935 <path d="M-22 696.2h165v176H-22z" enable-background="accumulate" fill="none"/>
936 stdDeviation="20.912684" 936 </g>
937 id="feGaussianBlur9026" /> 937 <path transform="matrix(1.0057 0 0 2.3995 3249.4 125.01)" d="m332.34 898.39l-32.732-61.3-37.617 45.106c2.177 1.317 5.774-20.856 45.6-64.417l24.749 80.61z" clip-path="url(#gc)" enable-background="accumulate" fill="#fff" fill-rule="evenodd" filter="url(#gb)" opacity=".5"/>
938 </filter> 938 <g clip-path="url(#ga)">
939 <filter 939 <g fill-rule="evenodd">
940 inkscape:collect="always" 940 <g enable-background="new">
941 id="filter9044" 941 <path transform="matrix(.71488 -.46488 .26446 2.3151 3478.4 126.16)" d="m245.12 100.05s-47.128-31.647-67.215-35.801c-20.038-4.144-38.473-3.318-51.934 13.607s-12.077 61.265-13.536 86.97 2.55 70.177 17.605 88.666c15.055 18.488 45.886 13.585 49.927 21.414 2.213 4.287 65.152-174.86 65.152-174.86z" enable-background="accumulate" fill="url(#r)"/>
942 x="-0.32631579" 942 <path transform="matrix(.71488 -.46488 .26446 2.3151 3478.4 126.16)" d="M135.38 82.018s26.344 1.939 37.633 13.903c11.415 12.097 13.735 21.332 15.296 37.735 1.563 16.425-.85 28.418-7.814 36.037s-1.004 19.583-25.916 12.071-27.032-27.783-26.515-46.305c.517-18.529 7.316-53.441 7.316-53.441z" enable-background="accumulate" fill="url(#q)"/>
943 width="1.6526316" 943 <path transform="matrix(.71488 -.46488 .26446 2.3151 3478.4 126.16)" d="M135.65 81.927s-4.645 16.365.588 28.563c5.488 12.793 27.224 44.26 27.224 54.656l22.656-5c2.542-6.966 3.21-15.752 2.188-26.5-1.562-16.403-3.867-25.621-15.281-37.719-9.655-10.232-31.593-13.375-37.375-14z" enable-background="new" fill="url(#p)"/>
944 y="-0.84545463" 944 </g>
945 height="2.6909094"> 945 <g enable-background="new">
946 <feGaussianBlur 946 <path d="M4043.297 824.626l-.09-.006c-1.489 1.728-6.783 2.02-7.718 20.884-.878 17.694 13.035 44.859 15.06 47.837 1.636 2.403 3.427 4.343 5.205 5.58l1.41.916c1.894 1.031 3.7 1.38 5.163 1.19 3.177-.414 5.214-.812 7.238-1.183 2.025-.372 2.592-1.8 3.707-2.078 1.156-.288 2.255.9 6.345-.372 4.09-1.271 5.587-1.894 6.324-2.566.765-.698 1.86-1.592 2.549-2.999 1.962.51 3.823.346 5.31-.58 3.08-1.92 5.084-3.12 6.998-4.722 1.536-1.285 2.513-3.421 2.759-4.073.246-.653.183-1.71.211-1.754.047-.072.351-.13.55-.906 1.07-4.167 2.968-12.778
947 inkscape:collect="always" 9473.16-14.38.193-1.594.324-3.178.42-4.11.056-.54-.046-2.136-.017-2.27.04-.187.317-.518.401-1.098.404-2.783.343-5.237.292-8.675-.05-3.438-.44-11.267-.995-13.482-.356-1.423-.708-2.109-1.051-2.478-.065-.06-.119-.145-.18-.2-.02-.015-.043-.004-.062-.017-.303-.265-.59-.545-1.13-.839-.972-.527-2.393-1.283-3.937-1.684-.514-.134-1.041-.17-1.572-.205-3.591-.231-9.115-.108-10.396 1.072-1.593-1.244-3.874-2.542-5.879-2.746-3.086-.313-5.002-.546-6.953-.776-1.952-.23-1.73.464-2.958.32-1.328-.155-1.76-1.022-5.568-1.302-3.577-.262-9.087-.095-10.397 1.072-1.593-1.245-3.872-2.542-5.878-2.746-3.087-.313-5.006-.472-6.958-.702-.663-.078-1.055.01-1.364.079z" enable-background="new" fill="#bcb786"/>
948 stdDeviation="21.92031" 948 <g transform="matrix(1.0047 .1075 -.04506 2.3971 3818.4 1782.9)" clip-path="url(#fz)" enable-background="new" filter="url(#fy)">
949 id="feGaussianBlur9046" /> 949 <path d="M229.94-409.12c-3.558.05-9.024.36-10.303.904-1.606-.447-3.903-.881-5.9-.877a979.03 979.03 0 0 1-6.907 0c-.66-.003-1.048.068-1.353.11v1.096c.12-.18.393-.69.95-.767.747-.103 5.17-.151 7.31-.11 1.775.035 4.455.274 6.39.96.32.113.618.273.891.41 1.964.987 7.944 4.302 7.944 4.302s-6.633-3.948-7.483-4.439c-.203-.117-.575-.258-1.036-.41 1.22-.449 5.076-.62 7.828-.713 3.024-.102 3.348-.09 5.41.192 2.13.29 3.34.602 3.34.602s-.08-.64 1.035-.794c.748-.103 5.17-.152 7.31-.11 2.07.04 5.366.407 7.282 1.37 1.003.504 3.035 1.569 4.795 2.536l.096-.02s-3.58-2.162-4.43-2.653c-.204-.117-.575-.258-1.037-.411 1.22-.448 5.047-.62 7.8-.712 3.024-.102 3.347-.09 5.41.191 1.954.267 3.013.53 3.195.576l-.027-.312a8.503 8.503 0 0 0-1.4-.357c-1.301-.235-3.4-.602-5.51-.564-3.571.064-9.052.356-10.302.904-1.606-.447-3.877-.881-5.871-.877-3.072.007-4.994.01-6.936
950 </filter> 9500-1.943-.009-1.713.28-2.936.274-1.322-.005-1.766-.354-5.555-.301M206.2-407.48c1.92.817 4.577 2.193 6.159 3.397s2.908 1.774 5.555 3.918c.885.718 1.748 1.35 2.591 1.922l.541-.19a57.511 57.511 0 0 1-2.269-1.622c-2.822-2.12-3.627-2.81-6.015-4.274s-4.1-2.366-6.562-3.15" enable-background="new"/>
951 <filter 951 <path d="M237.8-407.48c1.92.817 4.606 2.193 6.188 3.397.813.62 1.558 1.07 2.45 1.654l.65-.116a40.414 40.414 0 0 0-2.697-1.784c-2.389-1.465-4.128-2.366-6.59-3.151" enable-background="new"/>
952 inkscape:collect="always"
953 id="filter9048"
954 x="-0.40879121"
955 width="1.8175824"
956 y="-0.71538466"
957 height="2.4307692">
958 <feGaussianBlur
959 inkscape:collect="always"
960 stdDeviation="21.92031"
961 id="feGaussianBlur9050" />
962 </filter>
963 <filter
964 inkscape:collect="always"
965 id="filter3587"
966 x="-0.1">
967 <feGaussianBlur
968 inkscape:collect="always"
969 stdDeviation="8.881432"
970 id="feGaussianBlur3589" />
971 </filter>
972 <clipPath
973 clipPathUnits="userSpaceOnUse"
974 id="clipPath3602">
975 <path
976 sodipodi:nodetypes="czzzzzzczczczczzzc"
977 id="path3604"
978 d="m 647.61204,540.04601 c 0,0 22.61947,-6.50681 35.74275,-5.87273 13.12328,0.63409 30.64158,1.93862 43.70885,12.18619 13.06727,10.24756 25.06774,27.14007 34.11239,58.36965 9.04465,31.22958 1.69832,99.25201 -6.17603,143.34735 -7.87435,44.09534 -28.2651,106.11298 -45,140 -16.7349,33.88702 -49.79771,77.4952 -60.56943,89.87616 -11.36422,13.06197 -56.20589,36.42617 -79.43057,42.26667 5.3033,-10.6066 48.89976,-50.58884 35,-60.71426 -14.01897,-10.21226 -45.76009,45.98236 -84.29315,29.03317 21.38231,-13.13212 41.7794,-51.18606 34.04061,-66.59445 -7.84025,-15.61039 -30.70493,48.75757 -93.53554,37.01288 30.05204,-27.52666 55.40706,-70.90401 41.2627,-82.9797 -14.41516,-12.30687 -60.46175,54.29315 -60.46175,54.29315 0,0 -2.8219,-41.70118 13.7732,-68.60732 16.63935,-26.97787 79.65297,-81.61527 99.55313,-111.70342 19.90015,-30.08814 33.61256,-66.00902 42.13542,-92.51794 8.52286,-26.50892 15.80094,-77.09954 15.80094,-77.09954"
979 style="display:inline;opacity:1;fill:#202020;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
980 inkscape:connector-curvature="0" />
981 </clipPath>
982 <filter
983 inkscape:collect="always"
984 id="filter4120"
985 x="-0.2770822"
986 width="1.5541644"
987 y="-0.32482043"
988 height="1.6496409">
989 <feGaussianBlur
990 inkscape:collect="always"
991 stdDeviation="19.956289"
992 id="feGaussianBlur4122" />
993 </filter>
994 <clipPath
995 clipPathUnits="userSpaceOnUse"
996 id="clipPath3631">
997 <path
998 style="display:inline;opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
999 d="m 760.16396,935.83377 c 6.7941,18.90279 10.49369,33.29969 11.8903,51.21189 1.39662,17.91234 -3.78268,51.80084 -2.90046,70.65614 0.88175,18.8452 8.13369,40.099 27.34463,48.9689 19.41887,8.9658 49.31924,10.2113 74.11984,-3.1456 24.8006,-13.357 57.40102,-70.3255 70.97426,-97.3087 13.62385,-27.08394 38.76107,-114.49737 44.6608,-149.76859 5.89973,-35.27121 2.55054,-41.30077 -4.61748,-49.05549 2.6403,-27.84015 -1.49972,-54.93543 13.10969,-87.18618 -30.24901,11.8257 -37.38229,40.1607 -48.31889,65.50508 -8.00091,-50.93293 0.20916,-71.27319 3.31889,-101.21936 -29.06476,14.77791 -42.86151,47.11402 -45,92.85714 -10.92395,-1.3042 -21.39144,-4.43423 -33.57143,-0.71429 -0.26404,-46.02334 -1.46356,-76.88941 8.91063,-114.20649 -53.25547,21.02686 -62.94728,106.5941 -56.05349,112.77792 -10.88282,0.535 -21.37108,-1.2973 -32.85714,2.85715 0.63892,-42.57135 -0.26046,-84.90861 -30,-122.85715 0,0 -30.95806,80.92234 -31.42857,103.57143 -0.47051,22.64909 9.45159,40.16588 9.45159,40.16588 0,0 -8.56807,36.74051 -6.29859,58.23223 2.29585,21.74146 20.4429,59.67617 27.26542,78.65809 z"
1000 id="path3633"
1001 sodipodi:nodetypes="czzzzzzcccccccccczczz"
1002 inkscape:connector-curvature="0" />
1003 </clipPath>
1004 <clipPath
1005 clipPathUnits="userSpaceOnUse"
1006 id="clipPath3665">
1007 <path
1008 sodipodi:nodetypes="czzcczcc"
1009 id="path3667"
1010 d="m 366.88839,504.13471 c 0,0 -29.55406,40.57305 -47.85714,74.28571 -18.30309,33.71267 -58.62109,126.35694 -70.35714,171.07143 -11.7594,44.80344 -62.5,123.57144 -62.5,123.57144 l 76.07143,18.21428 c 0,0 11.80712,-12.82335 31.07142,-46.07143 19.2643,-33.24808 60.35715,-138.57143 60.35715,-138.57143 l 13.21428,-202.5 z"
1011 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#0f0f0f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
1012 inkscape:connector-curvature="0" />
1013 </clipPath>
1014 <clipPath
1015 clipPathUnits="userSpaceOnUse"
1016 id="clipPath3677">
1017 <path
1018 style="display:inline;opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
1019 d="m 586.13271,997.98981 c 6.7941,18.90279 10.49369,33.29969 11.8903,51.21189 1.39662,17.9123 -3.78268,51.8008 -2.90046,70.6561 0.88175,18.8452 8.13369,40.099 27.34463,48.9689 19.41887,8.9658 49.31924,10.2113 74.11984,-3.1456 24.8006,-13.357 57.40102,-70.3255 70.97426,-97.3087 13.62385,-27.0839 38.76107,-114.49733 44.6608,-149.76855 5.89973,-35.27121 2.55054,-41.30077 -4.61748,-49.05549 2.6403,-27.84015 -1.49972,-54.93543 13.10969,-87.18618 -30.24901,11.8257 -37.38229,40.1607 -48.31889,65.50508 -8.00091,-50.93293 0.20916,-71.27319 3.31889,-101.21936 -29.06476,14.77791 -42.86151,47.11402 -45,92.85714 -10.92395,-1.3042 -21.39144,-4.43423 -33.57143,-0.71429 -0.26404,-46.02334 -1.46356,-76.88941 8.91063,-114.20649 -53.25547,21.02686 -62.94728,106.5941 -56.05349,112.77792 -10.88282,0.535 -21.37108,-1.2973 -32.85714,2.85715 0.63892,-42.57135 -0.26046,-84.90861 -30,-122.85715 0,0 -30.95806,80.92234 -31.42857,103.57143 -0.47051,22.64909 9.45159,40.16588 9.45159,40.16588 0,0 -8.56807,36.74051 -6.29859,58.23223 2.29585,21.74146 20.4429,59.67617 27.26542,78.65809 z"
1020 id="path3679"
1021 sodipodi:nodetypes="czzzzzzcccccccccczczz"
1022 inkscape:connector-curvature="0" />
1023 </clipPath>
1024 <filter
1025 inkscape:collect="always"
1026 id="filter3898">
1027 <feGaussianBlur
1028 inkscape:collect="always"
1029 stdDeviation="10.892985"
1030 id="feGaussianBlur3900" />
1031 </filter>
1032 <filter
1033 inkscape:collect="always"
1034 id="filter4130"
1035 x="-0.49509686"
1036 width="1.9901937"
1037 y="-0.26708817"
1038 height="1.5341763">
1039 <feGaussianBlur
1040 inkscape:collect="always"
1041 stdDeviation="10.730622"
1042 id="feGaussianBlur4132" />
1043 </filter>
1044 <filter
1045 inkscape:collect="always"
1046 id="filter4141"
1047 x="-0.40611032"
1048 width="1.8122206"
1049 y="-0.30260596"
1050 height="1.6052119">
1051 <feGaussianBlur
1052 inkscape:collect="always"
1053 stdDeviation="9.8586086"
1054 id="feGaussianBlur4143" />
1055 </filter>
1056 <clipPath
1057 clipPathUnits="userSpaceOnUse"
1058 id="clipPath4177">
1059 <path
1060 sodipodi:nodetypes="czzzzzzcccccccccczczz"
1061 id="path4179"
1062 d="m 586.13271,997.98981 c 6.7941,18.90279 10.49369,33.29969 11.8903,51.21189 1.39662,17.9123 -3.78268,51.8008 -2.90046,70.6561 0.88175,18.8452 8.13369,40.099 27.34463,48.9689 19.41887,8.9658 49.31924,10.2113 74.11984,-3.1456 24.8006,-13.357 57.40102,-70.3255 70.97426,-97.3087 13.62385,-27.0839 38.76107,-114.49733 44.6608,-149.76855 5.89973,-35.27121 2.55054,-41.30077 -4.61748,-49.05549 2.6403,-27.84015 -1.49972,-54.93543 13.10969,-87.18618 -30.24901,11.8257 -37.38229,40.1607 -48.31889,65.50508 -8.00091,-50.93293 0.20916,-71.27319 3.31889,-101.21936 -29.06476,14.77791 -42.86151,47.11402 -45,92.85714 -10.92395,-1.3042 -21.39144,-4.43423 -33.57143,-0.71429 -0.26404,-46.02334 -1.46356,-76.88941 8.91063,-114.20649 -53.25547,21.02686 -62.94728,106.5941 -56.05349,112.77792 -10.88282,0.535 -21.37108,-1.2973 -32.85714,2.85715 0.63892,-42.57135 -0.26046,-84.90861 -30,-122.85715 0,0 -30.95806,80.92234 -31.42857,103.57143 -0.47051,22.64909 9.45159,40.16588 9.45159,40.16588 0,0 -8.56807,36.74051 -6.29859,58.23223 2.29585,21.74146 20.4429,59.67617 27.26542,78.65809 z"
1063 style="display:inline;opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
1064 inkscape:connector-curvature="0" />
1065 </clipPath>
1066 <filter
1067 inkscape:collect="always"
1068 id="filter4185">
1069 <feGaussianBlur
1070 inkscape:collect="always"
1071 stdDeviation="3.6164709"
1072 id="feGaussianBlur4187" />
1073 </filter>
1074 <filter
1075 inkscape:collect="always"
1076 id="filter4105">
1077 <feGaussianBlur
1078 inkscape:collect="always"
1079 stdDeviation="3.8640966"
1080 id="feGaussianBlur4107" />
1081 </filter>
1082 <clipPath
1083 clipPathUnits="userSpaceOnUse"
1084 id="clipPath2833">
1085 <path
1086 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#292929;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
1087 d="m 569.03125,1018.7776 c -4.28571,0.7143 -27.62815,3.6181 -57.85714,10 -30.22899,6.3819 -57.31395,4.9661 -135.78608,17.3296 -79.85178,12.5808 -94.06436,42.5423 -108.12225,47.0643 -14.70014,4.7286 -145.37739,-65.8225 -145.37739,-65.8225 l 4.28572,-94.28571 c 0,0 85.88551,-16.20094 112.14285,-33.57143 26.25735,-17.37049 45.58238,-49.66598 59.28572,-71.42857 13.70334,-21.76259 32.85714,-71.42858 32.85714,-71.42858 l 238.57143,262.14289 z"
1088 id="path2835"
1089 sodipodi:nodetypes="czzzcczzcc"
1090 inkscape:connector-curvature="0" />
1091 </clipPath>
1092 <linearGradient
1093 inkscape:collect="always"
1094 xlink:href="#linearGradient2843"
1095 id="linearGradient2841"
1096 gradientUnits="userSpaceOnUse"
1097 x1="347.89655"
1098 y1="1070.2124"
1099 x2="275.58191"
1100 y2="867.97992" />
1101 <linearGradient
1102 inkscape:collect="always"
1103 xlink:href="#linearGradient3627"
1104 id="linearGradient3688"
1105 gradientUnits="userSpaceOnUse"
1106 x1="699.32867"
1107 y1="269.76755"
1108 x2="698.97504"
1109 y2="346.1351" />
1110 <mask
1111 maskUnits="userSpaceOnUse"
1112 id="mask3684">
1113 <ellipse
1114 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient3688);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.43724918px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
1115 id="path3686"
1116 transform="translate(-174.03125,62.156036)"
1117 cx="579.474"
1118 cy="260.57516"
1119 rx="192.6866"
1120 ry="164.04877" />
1121 </mask>
1122 <clipPath
1123 clipPathUnits="userSpaceOnUse"
1124 id="clipPath3622">
1125 <path
1126 style="display:inline;opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
1127 d="m 266.27183,924.57186 c -1.40727,18.80121 -1.1449,32.75103 2.08174,49.30328 3.22665,16.55234 16.40608,45.90736 20.3344,63.18376 3.92622,17.2671 2.69413,38.3096 -12.45944,51.1482 -15.31761,12.9774 -42.05127,21.5989 -67.8323,15.7338 -25.78106,-5.8653 -69.54907,-49.2234 -88.59019,-70.2283 C 100.6939,1012.6293 56.045183,939.86194 41.867508,909.43681 27.689836,879.01169 29.207903,872.71824 33.747793,863.90708 24.381071,839.38658 21.334081,813.84027 0.03533552,788.33044 30.360815,791.44488 43.915625,815.28677 60.161025,835.47019 54.631129,787.39416 42.10631,771.05369 31.787073,744.74589 c 29.994295,6.08166 50.57936,31.8724 63.979783,72.7125 9.554154,-3.91791 18.237764,-9.37294 30.187414,-9.0612 -11.2975,-41.6958 -17.94946,-69.91584 -36.687255,-101.06994 53.441965,5.67033 83.657025,80.63932 78.971425,87.9608 9.97797,-2.24399 19.00565,-6.53038 30.43653,-5.65167 -11.24896,-38.34702 -21.04781,-76.8679 -3.65971,-118.64818 0,0 48.28678,65.43687 54.38966,85.80577 6.10287,20.36891 1.51881,38.70052 1.51881,38.70052 0,0 16.95957,31.08529 20.29392,51.09413 3.3731,20.24135 -3.53269,59.10332 -4.94582,77.98324 z"
1128 id="path3624"
1129 sodipodi:nodetypes="czzzzzzcccccccccczczz"
1130 inkscape:connector-curvature="0" />
1131 </clipPath>
1132 <clipPath
1133 clipPathUnits="userSpaceOnUse"
1134 id="clipPath3636">
1135 <path
1136 style="display:inline;opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
1137 d="m 760.16396,935.83377 c 6.7941,18.90279 10.49369,33.29969 11.8903,51.21189 1.39662,17.91234 -3.78268,51.80084 -2.90046,70.65614 0.88175,18.8452 8.13369,40.099 27.34463,48.9689 19.41887,8.9658 49.31924,10.2113 74.11984,-3.1456 24.8006,-13.357 57.40102,-70.3255 70.97426,-97.3087 13.62385,-27.08394 38.76107,-114.49737 44.6608,-149.76859 5.89973,-35.27121 2.55054,-41.30077 -4.61748,-49.05549 2.6403,-27.84015 -1.49972,-54.93543 13.10969,-87.18618 -30.24901,11.8257 -37.38229,40.1607 -48.31889,65.50508 -8.00091,-50.93293 0.20916,-71.27319 3.31889,-101.21936 -29.06476,14.77791 -42.86151,47.11402 -45,92.85714 -10.92395,-1.3042 -21.39144,-4.43423 -33.57143,-0.71429 -0.26404,-46.02334 -1.46356,-76.88941 8.91063,-114.20649 -53.25547,21.02686 -62.94728,106.5941 -56.05349,112.77792 -10.88282,0.535 -21.37108,-1.2973 -32.85714,2.85715 0.63892,-42.57135 -0.26046,-84.90861 -30,-122.85715 0,0 -30.95806,80.92234 -31.42857,103.57143 -0.47051,22.64909 9.45159,40.16588 9.45159,40.16588 0,0 -8.56807,36.74051 -6.29859,58.23223 2.29585,21.74146 20.4429,59.67617 27.26542,78.65809 z"
1138 id="path3638"
1139 sodipodi:nodetypes="czzzzzzcccccccccczczz"
1140 inkscape:connector-curvature="0" />
1141 </clipPath>
1142 <linearGradient
1143 inkscape:collect="always"
1144 xlink:href="#linearGradient3660"
1145 id="linearGradient3666"
1146 x1="1255.7386"
1147 y1="667.09216"
1148 x2="893.69995"
1149 y2="858.01099"
1150 gradientUnits="userSpaceOnUse" />
1151 <filter
1152 inkscape:collect="always"
1153 id="filter3779"
1154 x="-0.087980822"
1155 width="1.1759616"
1156 y="-0.17728332"
1157 height="1.3545666">
1158 <feGaussianBlur
1159 inkscape:collect="always"
1160 stdDeviation="16.340344"
1161 id="feGaussianBlur3781" />
1162 </filter>
1163 <filter
1164 id="filter3785"
1165 inkscape:label="White Fur">
1166 <feTurbulence
1167 id="feTurbulence3787"
1168 type="fractalNoise"
1169 baseFrequency="0.24044943820224721"
1170 numOctaves="10"
1171 seed="655"
1172 result="result0" />
1173 <feDisplacementMap
1174 id="feDisplacementMap3789"
1175 in="SourceGraphic"
1176 in2="result0"
1177 scale="62"
1178 xChannelSelector="B"
1179 yChannelSelector="G" />
1180 </filter>
1181 <filter
1182 inkscape:collect="always"
1183 id="filter3677">
1184 <feGaussianBlur
1185 inkscape:collect="always"
1186 stdDeviation="2.0397518"
1187 id="feGaussianBlur3679" />
1188 </filter>
1189 <clipPath
1190 clipPathUnits="userSpaceOnUse"
1191 id="clipPath3722">
1192 <path
1193 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#121212;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
1194 d="m 709.28572,844.50504 c 54.28571,-1.42857 126.035,-15.05199 170,-26.78572 44.05271,-11.75714 125.88628,-36.34724 175.35708,-57.85714 49.3393,-21.45272 113.6037,-59.2816 154.2858,-92.14285 40.5081,-32.72069 52.3899,-55.81981 60.7143,-33.57143 8.3691,22.36779 -16.407,56.32562 -37.8572,81.07143 -21.6041,24.9234 -52.7313,52.70533 -98.9286,89.28571 C 1086.6598,841.08542 976.77458,906.08967 920,933.07647 c -57.06606,27.12536 -128.20334,58.23842 -172.14286,72.50003 -43.93952,14.2616 -131.42857,31.0714 -131.42857,31.0714 l 92.85715,-192.14286 z"
1195 id="path3724"
1196 sodipodi:nodetypes="czzzzzzzzcc"
1197 inkscape:connector-curvature="0" />
1198 </clipPath>
1199 <clipPath
1200 clipPathUnits="userSpaceOnUse"
1201 id="clipPath3986">
1202 <path
1203 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#121212;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
1204 d="m 709.28572,844.50504 c 54.28571,-1.42857 126.035,-15.05199 170,-26.78572 44.05271,-11.75714 125.88628,-36.34724 175.35708,-57.85714 49.3393,-21.45272 113.6037,-59.2816 154.2858,-92.14285 40.5081,-32.72069 52.3899,-55.81981 60.7143,-33.57143 8.3691,22.36779 -16.407,56.32562 -37.8572,81.07143 -21.6041,24.9234 -52.7313,52.70533 -98.9286,89.28571 C 1086.6598,841.08542 976.77458,906.08967 920,933.07647 c -57.06606,27.12536 -128.20334,58.23842 -172.14286,72.50003 -43.93952,14.2616 -131.42857,31.0714 -131.42857,31.0714 l 92.85715,-192.14286 z"
1205 id="path3988"
1206 sodipodi:nodetypes="czzzzzzzzcc"
1207 inkscape:connector-curvature="0" />
1208 </clipPath>
1209 <clipPath
1210 clipPathUnits="userSpaceOnUse"
1211 id="clipPath3992">
1212 <path
1213 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#121212;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
1214 d="m 709.28572,844.50504 c 54.28571,-1.42857 126.035,-15.05199 170,-26.78572 44.05271,-11.75714 125.88628,-36.34724 175.35708,-57.85714 49.3393,-21.45272 113.6037,-59.2816 154.2858,-92.14285 40.5081,-32.72069 52.3899,-55.81981 60.7143,-33.57143 8.3691,22.36779 -16.407,56.32562 -37.8572,81.07143 -21.6041,24.9234 -52.7313,52.70533 -98.9286,89.28571 C 1086.6598,841.08542 976.77458,906.08967 920,933.07647 c -57.06606,27.12536 -128.20334,58.23842 -172.14286,72.50003 -43.93952,14.2616 -131.42857,31.0714 -131.42857,31.0714 l 92.85715,-192.14286 z"
1215 id="path3994"
1216 sodipodi:nodetypes="czzzzzzzzcc"
1217 inkscape:connector-curvature="0" />
1218 </clipPath>
1219 <clipPath
1220 clipPathUnits="userSpaceOnUse"
1221 id="clipPath3998">
1222 <path
1223 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#262f2f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
1224 d="m 178.21428,274.14789 c -3.80443,-25.26423 -16.80972,-50.63802 -17.1568,-75.52523 -0.18626,-13.35552 3.27285,-26.57091 13.75553,-39.55405 36.34702,-65.295835 116.94091,-84.694685 185.93466,-91.465427 86.92239,-11.016801 184.91267,17.940072 233.37134,95.401287 54.12402,75.7333 56.67476,172.53912 80.61204,259.52795 29.43779,127.1276 54.77914,256.21414 60.39224,386.85035 -3.06348,78.18185 -8.42634,165.18415 -60.50321,228.13413 -48.02654,50.3574 -122.78647,50.053 -187.06988,59.0023 -90.55539,4.655 -184.35153,-16.1458 -261.7839,-64.1982 -64.77564,-37.94001 -95.73019,-113.47863 -97.2794,-186.01958 -8.38917,-79.87516 26.39152,-153.80851 51.6204,-227.15961 7.47061,-82.76107 9.41286,-166.24775 9.65334,-249.38484 -0.83682,-32.19544 -7.08953,-63.81733 -11.54636,-95.60908 z"
1225 id="path4000"
1226 sodipodi:nodetypes="cscccccccccccc"
1227 inkscape:connector-curvature="0" />
1228 </clipPath>
1229 <filter
1230 inkscape:collect="always"
1231 id="filter4002"
1232 x="-0.24334238"
1233 width="1.4866848"
1234 y="-0.39104807"
1235 height="1.7820961">
1236 <feGaussianBlur
1237 inkscape:collect="always"
1238 stdDeviation="14.589518"
1239 id="feGaussianBlur4004" />
1240 </filter>
1241 <filter
1242 inkscape:collect="always"
1243 id="filter4010"
1244 x="-0.14577261"
1245 width="1.2915452"
1246 y="-0.23523259"
1247 height="1.4704652">
1248 <feGaussianBlur
1249 inkscape:collect="always"
1250 stdDeviation="4.4442907"
1251 id="feGaussianBlur4012" />
1252 </filter>
1253 <filter
1254 inkscape:collect="always"
1255 id="filter4053">
1256 <feGaussianBlur
1257 inkscape:collect="always"
1258 stdDeviation="0.6062947"
1259 id="feGaussianBlur4055" />
1260 </filter>
1261 <filter
1262 inkscape:collect="always"
1263 id="filter4079">
1264 <feGaussianBlur
1265 inkscape:collect="always"
1266 stdDeviation="6.5887624"
1267 id="feGaussianBlur4081" />
1268 </filter>
1269 <filter
1270 inkscape:collect="always"
1271 id="filter4083">
1272 <feGaussianBlur
1273 inkscape:collect="always"
1274 stdDeviation="1.5052066"
1275 id="feGaussianBlur4085" />
1276 </filter>
1277 <radialGradient
1278 inkscape:collect="always"
1279 xlink:href="#linearGradient4113"
1280 id="radialGradient4119"
1281 cx="296.33783"
1282 cy="427.17749"
1283 fx="296.33783"
1284 fy="427.17749"
1285 r="19.704132"
1286 gradientUnits="userSpaceOnUse"
1287 gradientTransform="matrix(2.9797125,0,0,2.9797125,-599.28727,-827.0855)" />
1288 <filter
1289 inkscape:collect="always"
1290 id="filter6949"
1291 x="-0.10294895"
1292 width="1.2058979"
1293 y="-0.34224695"
1294 height="1.6844939">
1295 <feGaussianBlur
1296 inkscape:collect="always"
1297 stdDeviation="1.1675612"
1298 id="feGaussianBlur6951" />
1299 </filter>
1300 <filter
1301 inkscape:collect="always"
1302 id="filter6953"
1303 x="-0.098320946"
1304 width="1.1966419"
1305 y="-0.19750816"
1306 height="1.3950163">
1307 <feGaussianBlur
1308 inkscape:collect="always"
1309 stdDeviation="1.1675612"
1310 id="feGaussianBlur6955" />
1311 </filter>
1312 <filter
1313 inkscape:collect="always"
1314 id="filter6957"
1315 x="-0.098213427"
1316 width="1.1964267"
1317 y="-0.19838208"
1318 height="1.3967642">
1319 <feGaussianBlur
1320 inkscape:collect="always"
1321 stdDeviation="1.1675612"
1322 id="feGaussianBlur6959" />
1323 </filter>
1324 <filter
1325 inkscape:collect="always"
1326 id="filter6961"
1327 x="-0.09919104"
1328 width="1.1983821"
1329 y="-0.22643611"
1330 height="1.4528722">
1331 <feGaussianBlur
1332 inkscape:collect="always"
1333 stdDeviation="1.1675612"
1334 id="feGaussianBlur6963" />
1335 </filter>
1336 <filter
1337 inkscape:collect="always"
1338 id="filter6965"
1339 x="-0.099081434"
1340 width="1.1981629"
1341 y="-0.22529824"
1342 height="1.4505965">
1343 <feGaussianBlur
1344 inkscape:collect="always"
1345 stdDeviation="1.1675612"
1346 id="feGaussianBlur6967" />
1347 </filter>
1348 <filter
1349 inkscape:collect="always"
1350 id="filter6969"
1351 x="-0.10450897"
1352 width="1.2090179"
1353 y="-0.40468886"
1354 height="1.8093777">
1355 <feGaussianBlur
1356 inkscape:collect="always"
1357 stdDeviation="1.1675612"
1358 id="feGaussianBlur6971" />
1359 </filter>
1360 <filter
1361 inkscape:collect="always"
1362 id="filter6973"
1363 x="-0.10330495"
1364 width="1.2066098"
1365 y="-0.36439717"
1366 height="1.7287945">
1367 <feGaussianBlur
1368 inkscape:collect="always"
1369 stdDeviation="1.1675612"
1370 id="feGaussianBlur6975" />
1371 </filter>
1372 <filter
1373 inkscape:collect="always"
1374 id="filter6977"
1375 x="-0.10224481"
1376 width="1.2044896"
1377 y="-0.32371372"
1378 height="1.6474274">
1379 <feGaussianBlur
1380 inkscape:collect="always"
1381 stdDeviation="1.1675612"
1382 id="feGaussianBlur6979" />
1383 </filter>
1384 <filter
1385 inkscape:collect="always"
1386 id="filter6981"
1387 x="-0.10052545"
1388 width="1.2010509"
1389 y="-0.2742162"
1390 height="1.5484324">
1391 <feGaussianBlur
1392 inkscape:collect="always"
1393 stdDeviation="1.1675612"
1394 id="feGaussianBlur6983" />
1395 </filter>
1396 <filter
1397 inkscape:collect="always"
1398 id="filter6985"
1399 x="-0.098428868"
1400 width="1.1968577"
1401 y="-0.20853186"
1402 height="1.4170637">
1403 <feGaussianBlur
1404 inkscape:collect="always"
1405 stdDeviation="1.1675612"
1406 id="feGaussianBlur6987" />
1407 </filter>
1408 <filter
1409 inkscape:collect="always"
1410 id="filter6989"
1411 x="-0.098428868"
1412 width="1.1968577"
1413 y="-0.20287035"
1414 height="1.4057407">
1415 <feGaussianBlur
1416 inkscape:collect="always"
1417 stdDeviation="1.1675612"
1418 id="feGaussianBlur6991" />
1419 </filter>
1420 <filter
1421 inkscape:collect="always"
1422 id="filter6993"
1423 x="-0.098213255"
1424 width="1.1964265"
1425 y="-0.19838208"
1426 height="1.3967642">
1427 <feGaussianBlur
1428 inkscape:collect="always"
1429 stdDeviation="1.1675612"
1430 id="feGaussianBlur6995" />
1431 </filter>
1432 <filter
1433 inkscape:collect="always"
1434 id="filter6997">
1435 <feGaussianBlur
1436 inkscape:collect="always"
1437 stdDeviation="1.1675612"
1438 id="feGaussianBlur6999" />
1439 </filter>
1440 <filter
1441 inkscape:collect="always"
1442 id="filter7001">
1443 <feGaussianBlur
1444 inkscape:collect="always"
1445 stdDeviation="1.1675612"
1446 id="feGaussianBlur7003" />
1447 </filter>
1448 <filter
1449 inkscape:collect="always"
1450 id="filter7285"
1451 x="-0.030884685"
1452 width="1.0617694"
1453 y="-0.10267408"
1454 height="1.2053483">
1455 <feGaussianBlur
1456 inkscape:collect="always"
1457 stdDeviation="0.35026836"
1458 id="feGaussianBlur7287" />
1459 </filter>
1460 <filter
1461 inkscape:collect="always"
1462 id="filter7289">
1463 <feGaussianBlur
1464 inkscape:collect="always"
1465 stdDeviation="0.35026836"
1466 id="feGaussianBlur7291" />
1467 </filter>
1468 <filter
1469 inkscape:collect="always"
1470 id="filter7293">
1471 <feGaussianBlur
1472 inkscape:collect="always"
1473 stdDeviation="0.35026836"
1474 id="feGaussianBlur7295" />
1475 </filter>
1476 <filter
1477 inkscape:collect="always"
1478 id="filter7297">
1479 <feGaussianBlur
1480 inkscape:collect="always"
1481 stdDeviation="0.35026836"
1482 id="feGaussianBlur7299" />
1483 </filter>
1484 <filter
1485 inkscape:collect="always"
1486 id="filter7301">
1487 <feGaussianBlur
1488 inkscape:collect="always"
1489 stdDeviation="0.35026836"
1490 id="feGaussianBlur7303" />
1491 </filter>
1492 <filter
1493 inkscape:collect="always"
1494 id="filter7305">
1495 <feGaussianBlur
1496 inkscape:collect="always"
1497 stdDeviation="0.35026836"
1498 id="feGaussianBlur7307" />
1499 </filter>
1500 <filter
1501 inkscape:collect="always"
1502 id="filter7309">
1503 <feGaussianBlur
1504 inkscape:collect="always"
1505 stdDeviation="0.35026836"
1506 id="feGaussianBlur7311" />
1507 </filter>
1508 <filter
1509 inkscape:collect="always"
1510 id="filter7313">
1511 <feGaussianBlur
1512 inkscape:collect="always"
1513 stdDeviation="0.35026836"
1514 id="feGaussianBlur7315" />
1515 </filter>
1516 <filter
1517 inkscape:collect="always"
1518 id="filter7317">
1519 <feGaussianBlur
1520 inkscape:collect="always"
1521 stdDeviation="0.35026836"
1522 id="feGaussianBlur7319" />
1523 </filter>
1524 <filter
1525 inkscape:collect="always"
1526 id="filter7321">
1527 <feGaussianBlur
1528 inkscape:collect="always"
1529 stdDeviation="0.35026836"
1530 id="feGaussianBlur7323" />
1531 </filter>
1532 <filter
1533 inkscape:collect="always"
1534 id="filter7325"
1535 x="-0.031352691"
1536 width="1.0627054"
1537 y="-0.12140666"
1538 height="1.2428133">
1539 <feGaussianBlur
1540 inkscape:collect="always"
1541 stdDeviation="0.35026836"
1542 id="feGaussianBlur7327" />
1543 </filter>
1544 <filter
1545 inkscape:collect="always"
1546 id="filter7329"
1547 x="-0.030991485"
1548 width="1.061983"
1549 y="-0.10931916"
1550 height="1.2186383">
1551 <feGaussianBlur
1552 inkscape:collect="always"
1553 stdDeviation="0.35026836"
1554 id="feGaussianBlur7331" />
1555 </filter>
1556 <filter
1557 inkscape:collect="always"
1558 id="filter7333">
1559 <feGaussianBlur
1560 inkscape:collect="always"
1561 stdDeviation="0.35026836"
1562 id="feGaussianBlur7335" />
1563 </filter>
1564 <filter
1565 inkscape:collect="always"
1566 id="filter7337">
1567 <feGaussianBlur
1568 inkscape:collect="always"
1569 stdDeviation="0.35026836"
1570 id="feGaussianBlur7339" />
1571 </filter>
1572 <filter
1573 inkscape:collect="always"
1574 id="filter7345">
1575 <feGaussianBlur
1576 inkscape:collect="always"
1577 stdDeviation="1.7233839"
1578 id="feGaussianBlur7347" />
1579 </filter>
1580 <clipPath
1581 clipPathUnits="userSpaceOnUse"
1582 id="clipPath7421">
1583 <path
1584 sodipodi:type="inkscape:offset"
1585 inkscape:radius="0"
1586 inkscape:original="M 1111.4062 -285.9375 L 1107.4688 -284.0625 C 1107.4283 -284.05228 1107.3692 -284.04201 1107.3438 -284.03125 C 1106.925 -283.8184 1107.1791 -283.93067 1106.6875 -283.71875 C 1106.2014 -283.50919 1104.9499 -283.13456 1102.5938 -282.25 C 1099.2626 -280.99942 1096.7895 -280.10016 1095.5938 -279.1875 C 1094.0576 -279.16623 1091.8733 -278.95419 1089.9375 -278.46875 C 1086.956 -277.72108 1085.0823 -277.29474 1083.1875 -276.875 C 1081.2927 -276.45527 1081.512 -276.23281 1080.3125 -276 C 1079.0159 -275.74833 1078.5911 -276.00899 1074.875 -275.21875 C 1071.3851 -274.4766 1065.9802 -273.28768 1064.7188 -272.53125 C 1063.1348 -272.71203 1060.8513 -272.85303 1058.875 -272.5625 C 1055.8346 -272.11554 1053.9588 -271.88974 1052.0312 -271.65625 C 1051.3758 -271.57687 1050.9902 -271.45547 1050.6875 -271.375 C 1050.2613 -271.24334 1050.0017 -271.11498 1049.3125 -271.03125 C 1048.0009 -270.87188 1047.5503 -271.18808 1043.7812 -270.75 C 1040.2273 -270.33691 1034.7758 -269.47718 1033.5312 -268.8125 C 1031.9322 -269.10979 1029.6735 -269.34669 1027.6875 -269.15625 C 1024.6287 -268.86293 1022.7155 -268.67226 1020.7812 -268.5 C 1018.847 -268.32773 1019.0926 -268.07763 1017.875 -267.96875 C 1016.5588 -267.85105 1016.1152 -268.13238 1012.3438 -267.71875 C 1008.8017 -267.3303 1003.3359 -266.50948 1002.0625 -265.84375 C 1000.4636 -266.13844 998.1753 -266.35076 996.1875 -266.15625 C 993.12921 -265.857 991.2463 -265.67601 989.3125 -265.5 C 988.65501 -265.44015 988.27245 -265.32144 987.96875 -265.25 C 987.54105 -265.13104 987.28525 -265.03193 986.59375 -264.96875 C 985.27775 -264.84849 984.834 -265.16363 981.0625 -264.75 C 977.50631 -264.35998 972.0569 -263.51084 970.8125 -262.84375 C 969.21381 -263.13793 966.95265 -263.36747 964.96875 -263.15625 C 961.91305 -262.83092 959.9947 -262.63001 958.0625 -262.4375 C 956.13031 -262.24499 956.37275 -261.99662 955.15625 -261.875 C 953.84137 -261.74353 953.3932 -262.03954 949.625 -261.59375 C 946.08611 -261.17509 940.6473 -260.30158 939.375 -259.625 C 937.77741 -259.90604 935.51505 -260.04543 933.53125 -259.8125 C 930.47927 -259.45413 928.58625 -259.24464 926.65625 -259.03125 C 926.00007 -258.95869 925.6156 -258.85856 925.3125 -258.78125 C 924.88571 -258.65402 924.6276 -258.51405 923.9375 -258.4375 C 922.62411 -258.29181 922.17015 -258.61152 918.40625 -258.125 C 914.85737 -257.66624 909.4276 -256.70598 908.1875 -256 C 906.59441 -256.24424 904.3537 -256.38135 902.375 -256.125 C 899.32741 -255.73018 897.4243 -255.47655 895.5 -255.21875 C 893.57571 -254.96096 893.7739 -254.72522 892.5625 -254.5625 C 891.25301 -254.3866 890.8153 -254.66688 887.0625 -254.09375 C 883.53821 -253.55551 878.1393 -252.39458 876.875 -251.65625 C 875.28751 -251.85979 873.0295 -251.91098 871.0625 -251.5625 C 868.03631 -251.02638 866.1636 -250.70081 864.25 -250.375 C 863.59941 -250.26423 863.2363 -250.10406 862.9375 -250 C 862.51681 -249.83512 862.27405 -249.6687 861.59375 -249.53125 C 860.29905 -249.26966 859.86665 -249.53745 856.15625 -248.71875 C 852.65777 -247.9468 847.31035 -246.33582 846.09375 -245.5 C 844.53085 -245.57745 842.33625 -245.41472 840.40625 -244.90625 C 837.43387 -244.12312 835.58855 -243.67416 833.71875 -243.15625 C 831.84875 -242.63835 832.0521 -242.38897 830.875 -242.0625 C 829.60251 -241.7096 829.17795 -241.95541 825.53125 -240.875 C 822.10657 -239.86037 816.88185 -237.94183 815.65625 -237.03125 C 814.11747 -237.01851 811.93645 -236.75903 810.03125 -236.15625 C 807.10027 -235.22891 805.2809 -234.69783 803.4375 -234.09375 C 802.81071 -233.88837 802.44585 -233.70117 802.15625 -233.5625 C 801.74867 -233.34889 801.50295 -233.15375 800.84375 -232.9375 C 799.58925 -232.52596 799.1576 -232.74846 795.5625 -231.5 C 792.17261 -230.32283 786.96755 -228.2863 785.78125 -227.34375 C 784.25737 -227.28408 782.1312 -226.94888 780.25 -226.28125 C 777.35261 -225.25296 775.55095 -224.60577 773.71875 -223.96875 C 771.88655 -223.33174 772.0909 -223.12021 770.9375 -222.71875 C 769.69071 -222.28479 769.27395 -222.51903 765.71875 -221.15625 C 762.38005 -219.87645 757.23165 -217.6737 756.03125 -216.6875 C 754.52407 -216.57981 752.39555 -216.1887 750.53125 -215.46875 C 747.66307 -214.36115 745.90735 -213.68719 744.09375 -213 C 743.47705 -212.76637 743.0973 -212.55797 742.8125 -212.40625 C 742.81251 -212.40625 742.8125 -212.37673 742.8125 -212.375 L 734.8125 -209.1875 L 736.625 -194.46875 C 736.36701 -194.52956 742.8125 -191.15625 742.8125 -191.15625 C 743.03891 -191.30093 743.26145 -191.42886 743.53125 -191.53125 C 744.61177 -191.94123 745.70285 -191.74702 749.53125 -193.21875 C 753.35977 -194.69049 754.7553 -195.22373 755.4375 -195.625 C 756.11711 -196.02478 757.04925 -196.50437 757.65625 -197.15625 C 759.48317 -197.294 761.22705 -197.64948 762.59375 -198.15625 C 765.56175 -199.25677 767.4691 -199.96244 769.375 -200.625 C 771.28081 -201.28754 771.72915 -202.03987 772.78125 -202.40625 C 773.87287 -202.78636 774.97635 -202.57163 778.84375 -203.9375 C 782.71115 -205.30336 784.1269 -205.76458 784.8125 -206.15625 C 785.51361 -206.55677 786.5133 -207.08923 787.125 -207.75 C 789.09581 -207.80466 790.94195 -208.13463 792.40625 -208.625 C 795.40777 -209.63008 797.3324 -210.24671 799.25 -210.875 C 800.78861 -211.3791 801.42415 -211.92177 802.15625 -212.3125 C 802.38647 -212.44681 802.63215 -212.56623 802.90625 -212.65625 C 804.00457 -213.01673 805.0877 -212.73762 809 -213.96875 C 812.91231 -215.19988 814.366 -215.6417 815.0625 -216 C 815.75641 -216.35697 816.6926 -216.79261 817.3125 -217.40625 C 819.17771 -217.42891 820.94835 -217.67308 822.34375 -218.09375 C 825.37415 -219.00729 827.33615 -219.52385 829.28125 -220.0625 C 831.22637 -220.60114 831.70745 -221.32702 832.78125 -221.625 C 833.89527 -221.93415 835.00125 -221.61761 838.96875 -222.65625 C 842.93625 -223.69488 844.38625 -224.08898 845.09375 -224.40625 C 845.82855 -224.73584 846.90765 -225.15997 847.53125 -225.78125 C 849.52907 -225.66525 851.3887 -225.80134 852.875 -226.15625 C 855.95311 -226.89125 857.9584 -227.25719 859.9375 -227.65625 C 861.52541 -227.97643 862.1818 -228.4468 862.9375 -228.75 C 863.17501 -228.8568 863.4044 -228.94276 863.6875 -229 C 864.82091 -229.22919 865.99215 -228.79107 870.03125 -229.5 C 874.07067 -230.20893 875.5315 -230.42709 876.25 -230.6875 C 876.96581 -230.94694 877.95435 -231.25474 878.59375 -231.78125 C 880.51795 -231.54176 882.34165 -231.55672 883.78125 -231.78125 C 886.90767 -232.26887 888.9358 -232.48192 890.9375 -232.75 C 892.93921 -233.01807 893.42625 -233.69514 894.53125 -233.84375 C 895.67767 -233.99793 896.8071 -233.54218 900.875 -234.0625 C 904.94281 -234.58282 906.43525 -234.75823 907.15625 -235 C 907.89337 -235.24714 908.95435 -235.58623 909.59375 -236.125 C 911.64375 -235.78947 913.56745 -235.72704 915.09375 -235.90625 C 918.23595 -236.27521 920.27375 -236.46561 922.28125 -236.6875 C 923.89207 -236.86552 924.5459 -237.2957 925.3125 -237.53125 C 925.55341 -237.61677 925.80655 -237.68685 926.09375 -237.71875 C 927.24345 -237.84647 928.39505 -237.3721 932.46875 -237.84375 C 936.54245 -238.3154 938.0278 -238.45435 938.75 -238.6875 C 939.46941 -238.91977 940.45025 -239.16096 941.09375 -239.65625 C 943.03005 -239.32279 944.8638 -239.25201 946.3125 -239.40625 C 949.45851 -239.7412 951.49 -239.92484 953.5 -240.125 C 955.50991 -240.32514 955.98415 -240.95139 957.09375 -241.0625 C 958.24485 -241.17778 959.39025 -240.69744 963.46875 -241.125 C 967.54725 -241.55256 969.05765 -241.68709 969.78125 -241.90625 C 970.52047 -242.13011 971.57685 -242.4195 972.21875 -242.9375 C 974.27575 -242.53883 976.2206 -242.4441 977.75 -242.59375 C 980.89871 -242.90185 982.9258 -243.067 984.9375 -243.25 C 986.55151 -243.39682 987.20055 -243.81055 987.96875 -244.03125 C 988.21005 -244.11211 988.4623 -244.16116 988.75 -244.1875 C 989.90211 -244.29295 991.0429 -243.79475 995.125 -244.1875 C 999.20711 -244.58025 1000.7139 -244.71834 1001.4375 -244.9375 C 1002.1584 -245.15583 1003.1371 -245.3852 1003.7812 -245.875 C 1005.7193 -245.52501 1007.5501 -245.42062 1009 -245.5625 C 1012.1487 -245.8706 1014.1758 -246.03575 1016.1875 -246.21875 C 1018.1991 -246.40174 1018.7017 -247.05677 1019.8125 -247.15625 C 1020.9648 -247.25948 1022.1047 -246.77142 1026.1875 -247.15625 C 1030.2704 -247.54107 1031.7762 -247.65725 1032.5 -247.875 C 1033.2393 -248.09743 1034.2956 -248.38949 1034.9375 -248.90625 C 1036.9949 -248.50448 1038.9404 -248.40292 1040.4688 -248.5625 C 1043.6153 -248.89102 1045.6458 -249.0852 1047.6562 -249.28125 C 1049.2692 -249.43854 1049.9219 -249.91273 1050.6875 -250.15625 C 1050.9282 -250.24429 1051.1507 -250.27762 1051.4375 -250.3125 C 1052.5858 -250.4522 1053.7542 -249.97259 1057.8125 -250.5625 C 1061.8708 -251.15242 1063.3743 -251.33964 1064.0938 -251.59375 C 1064.8104 -251.84691 1065.7684 -252.15182 1066.4062 -252.6875 C 1068.3259 -252.47556 1070.1262 -252.53609 1071.5625 -252.78125 C 1074.6816 -253.31365 1076.6741 -253.70986 1078.6562 -254.09375 C 1080.6383 -254.47762 1081.1305 -255.1334 1082.2188 -255.375 C 1083.3475 -255.62566 1084.489 -255.25871 1088.4688 -256.25 C 1092.4483 -257.24127 1093.8983 -257.6693 1094.5938 -258.03125 C 1095.316 -258.40725 1096.3555 -258.90183 1096.9688 -259.5625 C 1098.9317 -259.57454 1100.7625 -259.85355 1102.1875 -260.40625 C 1105.1387 -261.55085 1107.0607 -262.27567 1108.875 -263.15625 C 1110.3307 -263.86277 1111.1941 -264.85828 1111.4062 -265.15625 C 1111.6185 -265.4542 1111.5051 -265.8848 1111.5312 -265.90625 C 1111.5742 -265.94148 1111.8716 -266.00028 1112.0312 -266.34375 C 1112.8902 -268.19082 1114.3544 -271.97139 1114.4688 -272.65625 C 1114.5825 -273.33839 1114.6368 -274.00902 1114.6875 -274.40625 C 1114.7169 -274.63575 1114.5404 -275.28515 1114.5625 -275.34375 C 1114.5934 -275.42579 1114.8508 -275.59432 1114.9062 -275.84375 C 1115.1725 -277.04206 1114.9953 -278.05111 1114.7812 -279.46875 C 1114.5673 -280.88638 1113.8096 -284.08338 1113.1562 -284.9375 C 1112.4973 -285.79922 1111.9314 -285.94801 1111.4062 -285.9375 z "
1587 style="display:inline;fill:#bcb786;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
1588 id="path7423"
1589 d="m 1111.4062,-285.9375 -3.9374,1.875 c -0.041,0.0102 -0.1,0.0205 -0.125,0.0312 -0.4188,0.21285 -0.1647,0.10058 -0.6563,0.3125 -0.4861,0.20956 -1.7376,0.58419 -4.0937,1.46875 -3.3312,1.25058 -5.8043,2.14984 -7,3.0625 -1.5362,0.0213 -3.7205,0.23331 -5.6563,0.71875 -2.9815,0.74767 -4.8552,1.17401 -6.75,1.59375 -1.8948,0.41973 -1.6755,0.64219 -2.875,0.875 -1.2966,0.25167 -1.7214,-0.009 -5.4375,0.78125 -3.4899,0.74215 -8.8948,1.93107 -10.1562,2.6875 -1.584,-0.18078 -3.8675,-0.32178 -5.8438,-0.0312 -3.0404,0.44696 -4.9162,0.67276 -6.8438,0.90625 -0.6554,0.0794 -1.041,0.20078 -1.3437,0.28125 -0.4262,0.13166 -0.6858,0.26002 -1.375,0.34375 -1.3116,0.15937 -1.7622,-0.15683 -5.5313,0.28125 -3.5539,0.41309 -9.0054,1.27282 -10.25,1.9375 -1.599,-0.29729 -3.8577,-0.53419 -5.8437,-0.34375 -3.0588,0.29332 -4.972,0.48399 -6.9063,0.65625 -1.9342,0.17227 -1.6886,0.42237 -2.9062,0.53125 -1.3162,0.1177 -1.7598,-0.16363 -5.5312,0.25 -3.5421,0.38845 -9.0079,1.20927 -10.2813,1.875 -1.5989,-0.29469 -3.8872,-0.50701 -5.875,-0.3125 -3.05829,0.29925 -4.9412,0.48024 -6.875,0.65625 -0.65749,0.0598 -1.04005,0.17856 -1.34375,0.25 -0.4277,0.11896 -0.6835,0.21807 -1.375,0.28125 -1.316,0.12026 -1.75975,-0.19488 -5.53125,0.21875 -3.55619,0.39002 -9.0056,1.23916 -10.25,1.90625 -1.59869,-0.29418 -3.85985,-0.52372 -5.84375,-0.3125 -3.0557,0.32533 -4.97405,0.52624 -6.90625,0.71875 -1.93219,0.19251 -1.68975,0.44088 -2.90625,0.5625 -1.31488,0.13147 -1.76305,-0.16454 -5.53125,0.28125 -3.53889,0.41866 -8.9777,1.29217 -10.25,1.96875 -1.59759,-0.28104 -3.85995,-0.42043 -5.84375,-0.1875 -3.05198,0.35837 -4.945,0.56786 -6.875,0.78125 -0.65618,0.0726 -1.04065,0.17269 -1.34375,0.25 -0.42679,0.12723 -0.6849,0.2672 -1.375,0.34375 -1.31339,0.14569 -1.76735,-0.17402 -5.53125,0.3125 -3.54888,0.45876 -8.97865,1.41902 -10.21875,2.125 -1.59309,-0.24424 -3.8338,-0.38135 -5.8125,-0.125 -3.04759,0.39482 -4.9507,0.64845 -6.875,0.90625 -1.92429,0.25779 -1.7261,0.49353 -2.9375,0.65625 -1.30949,0.1759 -1.7472,-0.10438 -5.5,0.46875 -3.52429,0.53824 -8.9232,1.69917 -10.1875,2.4375 -1.58749,-0.20354 -3.8455,-0.25473 -5.8125,0.0937 -3.02619,0.53612 -4.8989,0.86169 -6.8125,1.1875 -0.65059,0.11077 -1.0137,0.27094 -1.3125,0.375 -0.42069,0.16488 -0.66345,0.3313 -1.34375,0.46875 -1.2947,0.26159 -1.7271,-0.006 -5.4375,0.8125 -3.49848,0.77195 -8.8459,2.38293 -10.0625,3.21875 -1.5629,-0.0774 -3.7575,0.0853 -5.6875,0.59375 -2.97238,0.78313 -4.8177,1.23209 -6.6875,1.75 -1.87,0.5179 -1.66665,0.76728 -2.84375,1.09375 -1.27249,0.3529 -1.69705,0.10709 -5.34375,1.1875 -3.42468,1.01463 -8.6494,2.93317 -9.875,3.84375 -1.53878,0.0127 -3.7198,0.27222 -5.625,0.875 -2.93098,0.92734 -4.75035,1.45842 -6.59375,2.0625 -0.62679,0.20538 -0.99165,0.39258 -1.28125,0.53125 -0.40758,0.21361 -0.6533,0.40875 -1.3125,0.625 -1.2545,0.41154 -1.68615,0.18904 -5.28125,1.4375 -3.38989,1.17717 -8.59495,3.2137 -9.78125,4.15625 -1.52388,0.0597 -3.65005,0.39487 -5.53125,1.0625 -2.89739,1.02829 -4.69905,1.67548 -6.53125,2.3125 -1.8322,0.63701 -1.62785,0.84854 -2.78125,1.25 -1.24679,0.43396 -1.66355,0.19972 -5.21875,1.5625 -3.3387,1.2798 -8.4871,3.48255 -9.6875,4.46875 -1.50718,0.10769 -3.6357,0.4988 -5.5,1.21875 -2.86818,1.1076 -4.6239,1.78156 -6.4375,2.46875 -0.6167,0.23363 -0.99645,0.44203 -1.28125,0.59375 10e-6,0 0,0.0295 0,0.0312 l -8,3.1875 1.8125,14.71875 c -0.25799,-0.0608 6.1875,3.3125 6.1875,3.3125 0.22641,-0.14468 0.44895,-0.27261 0.71875,-0.375 1.08052,-0.40998 2.1716,-0.21577 6,-1.6875 3.82852,-1.47174 5.22405,-2.00498 5.90625,-2.40625 0.67961,-0.39978 1.61175,-0.87937 2.21875,-1.53125 1.82692,-0.13775 3.5708,-0.49323 4.9375,-1 2.968,-1.10052 4.87535,-1.80619 6.78125,-2.46875 1.90581,-0.66254 2.35415,-1.41487 3.40625,-1.78125 1.09162,-0.38011 2.1951,-0.16538 6.0625,-1.53125 3.8674,-1.36586 5.28315,-1.82708 5.96875,-2.21875 0.70111,-0.40052 1.7008,-0.93298 2.3125,-1.59375 1.97081,-0.0547 3.81695,-0.38463 5.28125,-0.875 3.00152,-1.00508 4.92615,-1.62171 6.84375,-2.25 1.53861,-0.5041 2.17415,-1.04677 2.90625,-1.4375 0.23022,-0.13431 0.4759,-0.25373 0.75,-0.34375 1.09832,-0.36048 2.18145,-0.0814 6.09375,-1.3125 3.91231,-1.23113 5.366,-1.67295 6.0625,-2.03125 0.69391,-0.35697 1.6301,-0.79261 2.25,-1.40625 1.86521,-0.0227 3.63585,-0.26683 5.03125,-0.6875 3.0304,-0.91354 4.9924,-1.4301 6.9375,-1.96875 1.94512,-0.53864 2.4262,-1.26452 3.5,-1.5625 1.11402,-0.30915 2.22,0.007 6.1875,-1.03125 3.9675,-1.03863 5.4175,-1.43273 6.125,-1.75 0.7348,-0.32959 1.8139,-0.75372 2.4375,-1.375 1.99782,0.116 3.85745,-0.0201 5.34375,-0.375 3.07811,-0.735 5.0834,-1.10094 7.0625,-1.5 1.58791,-0.32018 2.2443,-0.79055 3,-1.09375 0.23751,-0.1068 0.4669,-0.19276 0.75,-0.25 1.13341,-0.22919 2.30465,0.20893 6.34375,-0.5 4.03942,-0.70893 5.50025,-0.92709 6.21875,-1.1875 0.71581,-0.25944 1.70435,-0.56724 2.34375,-1.09375 1.9242,0.23949 3.7479,0.22453 5.1875,0 3.12642,-0.48762 5.15455,-0.70067 7.15625,-0.96875 2.00171,-0.26807 2.48875,-0.94514 3.59375,-1.09375 1.14642,-0.15418 2.27585,0.30157 6.34375,-0.21875 4.06781,-0.52032 5.56025,-0.69573 6.28125,-0.9375 0.73712,-0.24714 1.7981,-0.58623 2.4375,-1.125 2.05,0.33553 3.9737,0.39796 5.5,0.21875 3.1422,-0.36896 5.18,-0.55936 7.1875,-0.78125 1.61082,-0.17802 2.26465,-0.6082 3.03125,-0.84375 0.24091,-0.0855 0.49405,-0.1556 0.78125,-0.1875 1.1497,-0.12772 2.3013,0.34665 6.375,-0.125 4.0737,-0.47165 5.55905,-0.6106 6.28125,-0.84375 0.71941,-0.23227 1.70025,-0.47346 2.34375,-0.96875 1.9363,0.33346 3.77005,0.40424 5.21875,0.25 3.14601,-0.33495 5.1775,-0.51859 7.1875,-0.71875 2.00991,-0.20014 2.48415,-0.82639 3.59375,-0.9375 1.1511,-0.11528 2.2965,0.36506 6.375,-0.0625 4.0785,-0.42756 5.5889,-0.56209 6.3125,-0.78125 0.73922,-0.22386 1.7956,-0.51325 2.4375,-1.03125 2.057,0.39867 4.00185,0.4934 5.53125,0.34375 3.14871,-0.3081 5.1758,-0.47325 7.1875,-0.65625 1.61401,-0.14682 2.26305,-0.56055 3.03125,-0.78125 0.2413,-0.0809 0.49355,-0.12991 0.78125,-0.15625 1.15211,-0.10545 2.2929,0.39275 6.375,0 4.08211,-0.39275 5.5889,-0.53084 6.3125,-0.75 0.7209,-0.21833 1.6996,-0.4477 2.3437,-0.9375 1.9381,0.34999 3.7689,0.45438 5.2188,0.3125 3.1487,-0.3081 5.1758,-0.47325 7.1875,-0.65625 2.0116,-0.18299 2.5142,-0.83802 3.625,-0.9375 1.1523,-0.10323 2.2922,0.38483 6.375,0 4.0829,-0.38482 5.5887,-0.501 6.3125,-0.71875 0.7393,-0.22243 1.7956,-0.51449 2.4375,-1.03125 2.0574,0.40177 4.0029,0.50333 5.5313,0.34375 3.1465,-0.32852 5.177,-0.5227 7.1874,-0.71875 1.613,-0.15729 2.2657,-0.63148 3.0313,-0.875 0.2407,-0.088 0.4632,-0.12137 0.75,-0.15625 1.1483,-0.1397 2.3167,0.33991 6.375,-0.25 4.0583,-0.58992 5.5618,-0.77714 6.2813,-1.03125 0.7166,-0.25316 1.6746,-0.55807 2.3124,-1.09375 1.9197,0.21194 3.72,0.15141 5.1563,-0.0937 3.1191,-0.5324 5.1116,-0.92861 7.0937,-1.3125 1.9821,-0.38387 2.4743,-1.03965 3.5626,-1.28125 1.1287,-0.25066 2.2702,0.11629 6.25,-0.875 3.9795,-0.99127 5.4295,-1.4193 6.125,-1.78125 0.7222,-0.376 1.7617,-0.87058 2.375,-1.53125 1.9629,-0.012 3.7937,-0.29105 5.2187,-0.84375 2.9512,-1.1446 4.8732,-1.86942 6.6875,-2.75 1.4557,-0.70652 2.3191,-1.70203 2.5312,-2 0.2123,-0.29795 0.099,-0.72855 0.125,-0.75 0.043,-0.0352 0.3404,-0.094 0.5,-0.4375 0.859,-1.84707 2.3232,-5.62764 2.4376,-6.3125 0.1137,-0.68214 0.168,-1.35277 0.2187,-1.75 0.029,-0.2295 -0.1471,-0.8789 -0.125,-0.9375 0.031,-0.082 0.2883,-0.25057 0.3437,-0.5 0.2663,-1.19831 0.089,-2.20736 -0.125,-3.625 -0.2139,-1.41763 -0.9716,-4.61463 -1.625,-5.46875 -0.6589,-0.86172 -1.2248,-1.01051 -1.75,-1 z"
1590 transform="translate(0.08004571,-0.03125)" />
1591 </clipPath>
1592 <filter
1593 inkscape:collect="always"
1594 id="filter7578"
1595 x="-0.08160872"
1596 width="1.1632174"
1597 y="-0.22659944"
1598 height="1.4531989">
1599 <feGaussianBlur
1600 inkscape:collect="always"
1601 stdDeviation="2.437399"
1602 id="feGaussianBlur7580" />
1603 </filter>
1604 <filter
1605 inkscape:collect="always"
1606 id="filter7594"
1607 x="-0.040804356"
1608 width="1.0816087"
1609 y="-0.11329972"
1610 height="1.2265995">
1611 <feGaussianBlur
1612 inkscape:collect="always"
1613 stdDeviation="1.2186995"
1614 id="feGaussianBlur7596" />
1615 </filter>
1616 <clipPath
1617 clipPathUnits="userSpaceOnUse"
1618 id="clipPath7606">
1619 <path
1620 id="path7608"
1621 d="m 1049.205,-282.26672 -0.09,0.008 c -1.3874,0.88445 -6.6033,1.6072 -6.629,9.52344 -0.024,7.42525 15.0129,17.09146 17.1563,18.09375 1.7302,0.80909 3.5916,1.40876 5.4063,1.71875 l 1.4374,0.21875 c 1.9197,0.21194 3.72,0.15141 5.1563,-0.0937 3.1191,-0.5324 5.1116,-0.92861 7.0937,-1.3125 1.9821,-0.38387 2.4743,-1.03965 3.5626,-1.28125 1.1287,-0.25066 2.2702,0.11629 6.25,-0.875 3.9795,-0.99128 5.4294,-1.4193 6.125,-1.78125 0.7222,-0.37601 1.7617,-0.87058 2.375,-1.53125 1.9629,-0.012 3.7937,-0.29105 5.2187,-0.84375 2.9512,-1.14461 4.8732,-1.86942 6.6875,-2.75 1.4557,-0.70653 2.3191,-1.70203 2.5312,-2 0.2123,-0.29796 0.099,-0.72855 0.125,-0.75 0.043,-0.0352 0.3405,-0.094 0.5,-0.4375 0.859,-1.84708 2.3232,-5.62764 2.4376,-6.3125 0.1137,-0.68215 0.168,-1.35277 0.2187,-1.75 0.029,-0.22951 -0.1471,-0.8789 -0.125,-0.9375 0.031,-0.082 0.2883,-0.25057 0.3437,-0.5 0.2663,-1.19832 0.089,-2.20736 -0.125,-3.625 -0.2139,-1.41764 -0.9716,-4.61463 -1.625,-5.46875 -0.4194,-0.54857 -0.7993,-0.7925 -1.1562,-0.90625 -0.067,-0.0173 -0.1239,-0.0467 -0.1875,-0.0625 -0.021,-0.004 -0.042,0.003 -0.062,0 -0.3116,-0.0755 -0.6085,-0.15867 -1.1562,-0.21875 -0.9855,-0.10812 -2.4247,-0.2594 -3.9688,-0.25 -0.5147,0.003 -1.0371,0.0476 -1.5625,0.0937 -3.5589,0.31228 -9.0098,0.99108 -10.2187,1.625 -1.6331,-0.33402 -3.9482,-0.61223 -5.9376,-0.46875 -3.064,0.22097 -4.9677,0.34219 -6.9062,0.46875 -1.9384,0.12655 -1.6861,0.38864 -2.9062,0.46875 -1.3191,0.0866 -1.7869,-0.22325 -5.5626,0.0937 -3.5457,0.29772 -8.9806,0.99317 -10.2187,1.625 -1.6334,-0.33451 -3.9459,-0.61239 -5.9375,-0.46875 -3.0642,0.22098 -4.9678,0.37344 -6.9062,0.5 -0.6592,0.043 -1.0424,0.12393 -1.3438,0.1875 z"
1622 style="display:inline;opacity:0.82448976;fill:#bcb786;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
1623 inkscape:connector-curvature="0" />
1624 </clipPath>
1625 <filter
1626 inkscape:collect="always"
1627 id="filter7610"
1628 x="-0.021942979"
1629 width="1.0438859"
1630 y="-0.10017137"
1631 height="1.2003427">
1632 <feGaussianBlur
1633 inkscape:collect="always"
1634 stdDeviation="0.57530213"
1635 id="feGaussianBlur7612" />
1636 </filter>
1637 <clipPath
1638 clipPathUnits="userSpaceOnUse"
1639 id="clipPath7616">
1640 <path
1641 id="path7618"
1642 d="m 205.47016,-408.97318 -0.0901,0.002 c -1.44563,0.78566 -6.69921,1.14335 -7.27625,9.03857 -0.54134,7.40553 13.78595,18.09566 15.85433,19.24481 1.66964,0.92764 3.48475,1.65551 5.27345,2.09115 l 1.41867,0.31834 c 1.90027,0.34514 3.70042,0.41015 5.15031,0.26563 3.1486,-0.31384 5.16386,-0.57031 7.16789,-0.8152 2.00402,-0.24488 2.5407,-0.86478 3.64319,-1.02999 1.14342,-0.17143 2.25659,0.27414 6.29577,-0.43753 4.03888,-0.71169 5.51507,-1.03768 6.23419,-1.3503 0.74664,-0.32479 1.81806,-0.74575 2.47589,-1.3621 1.95897,0.12471 3.80476,-0.0261 5.2648,-0.47819 3.02376,-0.93627 4.99157,-1.52544 6.8628,-2.27751 1.50138,-0.60342 2.43202,-1.53636 2.66436,-1.81883 0.23254,-0.28245 0.14951,-0.71989 0.17694,-0.73948 0.0453,-0.0322 0.34622,-0.0701 0.52926,-0.40161 0.98557,-1.78276 2.70955,-5.45215 2.87137,-6.12738 0.16094,-0.67257 0.26182,-1.33778 0.34007,-1.73051 0.0453,-0.22691 -0.0855,-0.88701 -0.0594,-0.94393 0.0365,-0.0797 0.30505,-0.22988 0.37769,-0.47485 0.34913,-1.17686 0.24274,-2.19578 0.1278,-3.6249 -0.11463,-1.42909 -0.64781,-4.6711 -1.24013,-5.56865 -0.38017,-0.57646 -0.74215,-0.84625 -1.09026,-0.98459 -0.0657,-0.0219 -0.12035,-0.0553 -0.1827,-0.0754 -0.0207,-0.005 -0.0418,2.3e-4 -0.0623,-0.004 -0.30559,-0.097 -0.59597,-0.20067 -1.13816,-0.29875 -0.97557,-0.1765 -2.40074,-0.42766 -3.94175,-0.52584 -0.51366,-0.0327 -1.0379,-0.0247 -1.56523,-0.0153 -3.57201,0.0636 -9.05695,0.3611 -10.30707,0.90928 -1.60587,-0.44697 -3.89597,-0.88576 -5.89053,-0.8812 -3.07195,0.007 -4.97947,-0.005 -6.92207,-0.0134 -1.94251,-0.009 -1.70908,0.27025 -2.9318,0.26518 -1.32192,-0.005 -1.76701,-0.34717 -5.55562,-0.29393 -3.55782,0.05 -9.02796,0.36522 -10.30706,0.90927 -1.60614,-0.44747 -3.89367,-0.88575 -5.89043,-0.88118 -3.07215,0.007 -4.98175,0.0265 -6.92426,0.0177 -0.66059,-0.003 -1.0485,0.051 -1.35359,0.0934 z"
1643 style="display:inline;opacity:0.82448976;fill:#bcb786;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
1644 inkscape:connector-curvature="0" />
1645 </clipPath>
1646 <linearGradient
1647 inkscape:collect="always"
1648 xlink:href="#linearGradient7622"
1649 id="linearGradient7708"
1650 gradientUnits="userSpaceOnUse"
1651 gradientTransform="translate(-19.091883,4.2426407)"
1652 x1="774.97668"
1653 y1="-211.87105"
1654 x2="755.11584"
1655 y2="-202.67865" />
1656 <mask
1657 maskUnits="userSpaceOnUse"
1658 id="mask7704">
1659 <path
1660 style="fill:url(#linearGradient7708);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
1661 d="m 718.40812,-224.31217 33.25,56 275.99998,-24 159.5,-48.25 -66.5,-82.75 -402.24998,99 z"
1662 id="path7706"
1663 inkscape:connector-curvature="0" />
1664 </mask>
1665 <radialGradient
1666 inkscape:collect="always"
1667 xlink:href="#linearGradient8430"
1668 id="radialGradient7904"
1669 gradientUnits="userSpaceOnUse"
1670 gradientTransform="matrix(-0.3324832,0.9022288,-0.9582407,-0.3531242,305.29227,19.909497)"
1671 cx="142.95833"
1672 cy="107.09234"
1673 fx="142.95833"
1674 fy="107.09234"
1675 r="66.981766" />
1676 <radialGradient
1677 inkscape:collect="always"
1678 xlink:href="#linearGradient3317"
1679 id="radialGradient7906"
1680 gradientUnits="userSpaceOnUse"
1681 gradientTransform="matrix(1.0036478,-1.0345492e-7,1.7124628e-7,1.6613125,-160.53487,-96.205369)"
1682 cx="317.78754"
1683 cy="129.65378"
1684 fx="317.78754"
1685 fy="129.65378"
1686 r="47.863216" />
1687 <radialGradient
1688 inkscape:collect="always"
1689 xlink:href="#linearGradient8398"
1690 id="radialGradient7908"
1691 gradientUnits="userSpaceOnUse"
1692 gradientTransform="matrix(2.0747661,-0.1577957,0.2382425,3.1325183,-550.77432,-65.728909)"
1693 cx="325.30847"
1694 cy="80.909554"
1695 fx="325.30847"
1696 fy="80.909554"
1697 r="26.937988" />
1698 <clipPath
1699 clipPathUnits="userSpaceOnUse"
1700 id="clipPath8209">
1701 <path
1702 sodipodi:nodetypes="czcc"
1703 id="path8211"
1704 d="m 734.03125,519.49186 c 0,0 16.75513,37.01806 28.70141,53.95395 11.94629,16.93589 52.72716,56.04605 52.72716,56.04605 l 0.59717,-138.58975"
1705 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#1a1a1a;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
1706 inkscape:connector-curvature="0" />
1707 </clipPath>
1708 <filter
1709 inkscape:collect="always"
1710 id="filter8225">
1711 <feGaussianBlur
1712 inkscape:collect="always"
1713 stdDeviation="10.661912"
1714 id="feGaussianBlur8227" />
1715 </filter>
1716 <filter
1717 inkscape:collect="always"
1718 id="filter8333">
1719 <feGaussianBlur
1720 inkscape:collect="always"
1721 stdDeviation="7.18"
1722 id="feGaussianBlur8335" />
1723 </filter>
1724 <clipPath
1725 clipPathUnits="userSpaceOnUse"
1726 id="clipPath8338">
1727 <path
1728 sodipodi:nodetypes="czzzzzzcccccccccczczz"
1729 id="path8340"
1730 d="m 266.27183,924.57185 c -1.40727,18.80122 -1.1449,32.75104 2.08174,49.30328 3.22666,16.55238 16.40609,45.90737 20.33441,63.18377 3.92621,17.2671 2.69413,38.3097 -12.45944,51.1482 -15.31761,12.9775 -42.05127,21.599 -67.8323,15.7338 -25.78106,-5.8653 -69.54908,-49.2234 -88.59019,-70.2283 C 100.6939,1012.6293 56.045182,939.86193 41.867507,909.4368 27.689835,879.01168 29.207902,872.71823 33.747792,863.90708 24.38107,839.38658 21.33408,813.84026 0.03533448,788.33044 30.360814,791.44487 43.915624,815.28676 60.161024,835.47019 54.631128,787.39416 42.106309,771.05368 31.787072,744.74589 c 29.994295,6.08165 50.57936,31.87239 63.979783,72.7125 9.554155,-3.91792 18.237765,-9.37294 30.187415,-9.0612 -11.2975,-41.6958 -17.94947,-69.91585 -36.687256,-101.06994 53.441966,5.67032 83.657026,80.63932 78.971426,87.9608 9.97797,-2.24399 19.00565,-6.53038 30.43653,-5.65167 -11.24897,-38.34703 -21.04782,-76.8679 -3.65971,-118.64819 0,0 48.28678,65.43688 54.38965,85.80578 6.10288,20.3689 1.51882,38.70051 1.51882,38.70051 0,0 16.95957,31.0853 20.29392,51.09414 3.3731,20.24134 -3.53269,59.10331 -4.94582,77.98323 z"
1731 style="display:inline;opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
1732 inkscape:connector-curvature="0" />
1733 </clipPath>
1734 <filter
1735 inkscape:collect="always"
1736 id="filter8354">
1737 <feGaussianBlur
1738 inkscape:collect="always"
1739 stdDeviation="6.82"
1740 id="feGaussianBlur8356" />
1741 </filter>
1742 <clipPath
1743 clipPathUnits="userSpaceOnUse"
1744 id="clipPath8359">
1745 <path
1746 sodipodi:nodetypes="czzzzzzcccccccccczczz"
1747 id="path8361"
1748 d="m 266.27183,924.57185 c -1.40727,18.80122 -1.1449,32.75104 2.08174,49.30328 3.22666,16.55238 16.40609,45.90737 20.33441,63.18377 3.92621,17.2671 2.69413,38.3097 -12.45944,51.1482 -15.31761,12.9775 -42.05127,21.599 -67.8323,15.7338 -25.78106,-5.8653 -69.54908,-49.2234 -88.59019,-70.2283 C 100.6939,1012.6293 56.045182,939.86193 41.867507,909.4368 27.689835,879.01168 29.207902,872.71823 33.747792,863.90708 24.38107,839.38658 21.33408,813.84026 0.03533448,788.33044 30.360814,791.44487 43.915624,815.28676 60.161024,835.47019 54.631128,787.39416 42.106309,771.05368 31.787072,744.74589 c 29.994295,6.08165 50.57936,31.87239 63.979783,72.7125 9.554155,-3.91792 18.237765,-9.37294 30.187415,-9.0612 -11.2975,-41.6958 -17.94947,-69.91585 -36.687256,-101.06994 53.441966,5.67032 83.657026,80.63932 78.971426,87.9608 9.97797,-2.24399 19.00565,-6.53038 30.43653,-5.65167 -11.24897,-38.34703 -21.04782,-76.8679 -3.65971,-118.64819 0,0 48.28678,65.43688 54.38965,85.80578 6.10288,20.3689 1.51882,38.70051 1.51882,38.70051 0,0 16.95957,31.0853 20.29392,51.09414 3.3731,20.24134 -3.53269,59.10331 -4.94582,77.98323 z"
1749 style="display:inline;opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
1750 inkscape:connector-curvature="0" />
1751 </clipPath>
1752 <filter
1753 inkscape:collect="always"
1754 id="filter8379"
1755 x="-0.14413793"
1756 width="1.288276"
1757 y="-0.10278689"
1758 height="1.2055738">
1759 <feGaussianBlur
1760 inkscape:collect="always"
1761 stdDeviation="7.389266"
1762 id="feGaussianBlur8381" />
1763 </filter>
1764 <clipPath
1765 clipPathUnits="userSpaceOnUse"
1766 id="clipPath8392">
1767 <path
1768 sodipodi:nodetypes="czzzzzzcccccccccczczz"
1769 id="path8394"
1770 d="m 760.16396,935.83377 c 6.7941,18.90279 10.49369,33.29969 11.8903,51.21189 1.39662,17.91234 -3.78268,51.80084 -2.90046,70.65614 0.88175,18.8452 8.13369,40.099 27.34463,48.9689 19.41887,8.9658 49.31924,10.2113 74.11984,-3.1456 24.8006,-13.357 57.40102,-70.3255 70.97426,-97.3087 13.62385,-27.08394 38.76107,-114.49737 44.6608,-149.76859 5.89973,-35.27121 2.55054,-41.30077 -4.61748,-49.05549 2.6403,-27.84015 -1.49972,-54.93543 13.10969,-87.18618 -30.24901,11.8257 -37.38229,40.1607 -48.31889,65.50508 -8.00091,-50.93293 0.20916,-71.27319 3.31889,-101.21936 -29.06476,14.77791 -42.86151,47.11402 -45,92.85714 -10.92395,-1.3042 -21.39144,-4.43423 -33.57143,-0.71429 -0.26404,-46.02334 -1.46356,-76.88941 8.91063,-114.20649 -53.25547,21.02686 -62.94728,106.5941 -56.05349,112.77792 -10.88282,0.535 -21.37108,-1.2973 -32.85714,2.85715 0.63892,-42.57135 -0.26046,-84.90861 -30,-122.85715 0,0 -30.95806,80.92234 -31.42857,103.57143 -0.47051,22.64909 9.45159,40.16588 9.45159,40.16588 0,0 -8.56807,36.74051 -6.29859,58.23223 2.29585,21.74146 20.4429,59.67617 27.26542,78.65809 z"
1771 style="display:inline;opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
1772 inkscape:connector-curvature="0" />
1773 </clipPath>
1774 <filter
1775 inkscape:collect="always"
1776 id="filter8404"
1777 x="-0.090268657"
1778 width="1.1805373"
1779 y="-0.10250848"
1780 height="1.205017">
1781 <feGaussianBlur
1782 inkscape:collect="always"
1783 stdDeviation="5.3457272"
1784 id="feGaussianBlur8406" />
1785 </filter>
1786 <clipPath
1787 clipPathUnits="userSpaceOnUse"
1788 id="clipPath8417">
1789 <path
1790 sodipodi:nodetypes="czzzzzzcccccccccczczz"
1791 id="path8419"
1792 d="m 760.16396,935.83377 c 6.7941,18.90279 10.49369,33.29969 11.8903,51.21189 1.39662,17.91234 -3.78268,51.80084 -2.90046,70.65614 0.88175,18.8452 8.13369,40.099 27.34463,48.9689 19.41887,8.9658 49.31924,10.2113 74.11984,-3.1456 24.8006,-13.357 57.40102,-70.3255 70.97426,-97.3087 13.62385,-27.08394 38.76107,-114.49737 44.6608,-149.76859 5.89973,-35.27121 2.55054,-41.30077 -4.61748,-49.05549 2.6403,-27.84015 -1.49972,-54.93543 13.10969,-87.18618 -30.24901,11.8257 -37.38229,40.1607 -48.31889,65.50508 -8.00091,-50.93293 0.20916,-71.27319 3.31889,-101.21936 -29.06476,14.77791 -42.86151,47.11402 -45,92.85714 -10.92395,-1.3042 -21.39144,-4.43423 -33.57143,-0.71429 -0.26404,-46.02334 -1.46356,-76.88941 8.91063,-114.20649 -53.25547,21.02686 -62.94728,106.5941 -56.05349,112.77792 -10.88282,0.535 -21.37108,-1.2973 -32.85714,2.85715 0.63892,-42.57135 -0.26046,-84.90861 -30,-122.85715 0,0 -30.95806,80.92234 -31.42857,103.57143 -0.47051,22.64909 9.45159,40.16588 9.45159,40.16588 0,0 -8.56807,36.74051 -6.29859,58.23223 2.29585,21.74146 20.4429,59.67617 27.26542,78.65809 z"
1793 style="display:inline;opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
1794 inkscape:connector-curvature="0" />
1795 </clipPath>
1796 <filter
1797 inkscape:collect="always"
1798 x="-0.084654994"
1799 width="1.16931"
1800 y="-0.36592469"
1801 height="1.7318494"
1802 id="filter11361-3">
1803 <feGaussianBlur
1804 inkscape:collect="always"
1805 stdDeviation="4.5740586"
1806 id="feGaussianBlur11363-6" />
1807 </filter>
1808 <radialGradient
1809 inkscape:collect="always"
1810 xlink:href="#linearGradient8430"
1811 id="radialGradient7904-7"
1812 gradientUnits="userSpaceOnUse"
1813 gradientTransform="matrix(-0.3324832,0.9022288,-0.9582407,-0.3531242,305.29227,19.909497)"
1814 cx="142.95833"
1815 cy="107.09234"
1816 fx="142.95833"
1817 fy="107.09234"
1818 r="66.981766" />
1819 <radialGradient
1820 inkscape:collect="always"
1821 xlink:href="#linearGradient3317"
1822 id="radialGradient7906-6"
1823 gradientUnits="userSpaceOnUse"
1824 gradientTransform="matrix(1.0036478,-1.0345492e-7,1.7124628e-7,1.6613125,-160.53487,-96.205369)"
1825 cx="317.78754"
1826 cy="129.65378"
1827 fx="317.78754"
1828 fy="129.65378"
1829 r="47.863216" />
1830 <radialGradient
1831 inkscape:collect="always"
1832 xlink:href="#linearGradient8398"
1833 id="radialGradient7908-0"
1834 gradientUnits="userSpaceOnUse"
1835 gradientTransform="matrix(2.0747661,-0.1577957,0.2382425,3.1325183,-550.77432,-65.728909)"
1836 cx="325.30847"
1837 cy="80.909554"
1838 fx="325.30847"
1839 fy="80.909554"
1840 r="26.937988" />
1841 <clipPath
1842 clipPathUnits="userSpaceOnUse"
1843 id="clipPath8658-06">
1844 <path
1845 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#0b0b0b;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
1846 d="m 569.03125,1018.7776 c -4.28571,0.7143 -27.62815,3.6181 -57.85714,10 -30.22899,6.3819 -99.77493,25.9619 -142.85715,35.7143 -43.08222,9.7524 -117.26443,34.816 -156.91262,27.2654 -39.64818,-7.5506 -89.51595,-64.4083 -89.51595,-64.4083 l 4.28572,-94.28571 c 0,0 85.88551,-16.20094 112.14285,-33.57143 26.25735,-17.37049 45.58238,-49.66598 59.28572,-71.42857 13.70334,-21.76259 32.85714,-71.42858 32.85714,-71.42858 l 238.57143,262.14289 z"
1847 id="path8660-2"
1848 sodipodi:nodetypes="czzzcczzcc"
1849 inkscape:connector-curvature="0" />
1850 </clipPath>
1851 <filter
1852 inkscape:collect="always"
1853 id="filter8888-6"
1854 x="-0.2112188"
1855 width="1.4224375"
1856 y="-0.16808605"
1857 height="1.3361721">
1858 <feGaussianBlur
1859 inkscape:collect="always"
1860 stdDeviation="8.3693583"
1861 id="feGaussianBlur8890-1" />
1862 </filter>
1863 <clipPath
1864 clipPathUnits="userSpaceOnUse"
1865 id="clipPath2833-2">
1866 <path
1867 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#292929;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
1868 d="m 569.03125,1018.7776 c -4.28571,0.7143 -27.62815,3.6181 -57.85714,10 -30.22899,6.3819 -57.31395,4.9661 -135.78608,17.3296 -79.85178,12.5808 -94.06436,42.5423 -108.12225,47.0643 -14.70014,4.7286 -145.37739,-65.8225 -145.37739,-65.8225 l 4.28572,-94.28571 c 0,0 85.88551,-16.20094 112.14285,-33.57143 26.25735,-17.37049 45.58238,-49.66598 59.28572,-71.42857 13.70334,-21.76259 32.85714,-71.42858 32.85714,-71.42858 l 238.57143,262.14289 z"
1869 id="path2835-3"
1870 sodipodi:nodetypes="czzzcczzcc"
1871 inkscape:connector-curvature="0" />
1872 </clipPath>
1873 <filter
1874 inkscape:collect="always"
1875 id="filter8892-7"
1876 x="-0.18692794"
1877 width="1.3738559"
1878 y="-0.23646873"
1879 height="1.4729375">
1880 <feGaussianBlur
1881 inkscape:collect="always"
1882 stdDeviation="31.21228"
1883 id="feGaussianBlur8894-5" />
1884 </filter>
1885 <clipPath
1886 clipPathUnits="userSpaceOnUse"
1887 id="clipPath3665-9">
1888 <path
1889 sodipodi:nodetypes="czzcczcc"
1890 id="path3667-2"
1891 d="m 366.88839,504.13471 c 0,0 -29.55406,40.57305 -47.85714,74.28571 -18.30309,33.71267 -58.62109,126.35694 -70.35714,171.07143 -11.7594,44.80344 -62.5,123.57144 -62.5,123.57144 l 76.07143,18.21428 c 0,0 11.80712,-12.82335 31.07142,-46.07143 19.2643,-33.24808 60.35715,-138.57143 60.35715,-138.57143 l 13.21428,-202.5 z"
1892 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#0f0f0f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
1893 inkscape:connector-curvature="0" />
1894 </clipPath>
1895 <filter
1896 inkscape:collect="always"
1897 id="filter8856-2"
1898 x="-0.3253231"
1899 width="1.6506462"
1900 y="-0.19013336"
1901 height="1.3802667">
1902 <feGaussianBlur
1903 inkscape:collect="always"
1904 stdDeviation="28.712591"
1905 id="feGaussianBlur8858-8" />
1906 </filter>
1907 <clipPath
1908 clipPathUnits="userSpaceOnUse"
1909 id="clipPath8642-9">
1910 <path
1911 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#0f0f0f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
1912 d="m 366.88839,504.13471 c 0,0 -29.55406,40.57305 -47.85714,74.28571 -18.30309,33.71267 -58.62109,126.35694 -70.35714,171.07143 -11.7594,44.80344 -62.5,123.57144 -62.5,123.57144 l 76.07143,18.21428 c 0,0 11.80712,-12.82335 31.07142,-46.07143 19.2643,-33.24808 60.35715,-138.57143 60.35715,-138.57143 l 13.21428,-202.5 z"
1913 id="path8644-7"
1914 sodipodi:nodetypes="czzcczcc"
1915 inkscape:connector-curvature="0" />
1916 </clipPath>
1917 <filter
1918 inkscape:collect="always"
1919 id="filter8860-3"
1920 x="-0.38093024"
1921 width="1.7618605"
1922 y="-0.17518716"
1923 height="1.3503743">
1924 <feGaussianBlur
1925 inkscape:collect="always"
1926 stdDeviation="19.304015"
1927 id="feGaussianBlur8862-6" />
1928 </filter>
1929 <clipPath
1930 clipPathUnits="userSpaceOnUse"
1931 id="clipPath7616-1">
1932 <path
1933 id="path7618-2"
1934 d="m 205.47016,-408.97318 -0.0901,0.002 c -1.44563,0.78566 -6.69921,1.14335 -7.27625,9.03857 -0.54134,7.40553 13.78595,18.09566 15.85433,19.24481 1.66964,0.92764 3.48475,1.65551 5.27345,2.09115 l 1.41867,0.31834 c 1.90027,0.34514 3.70042,0.41015 5.15031,0.26563 3.1486,-0.31384 5.16386,-0.57031 7.16789,-0.8152 2.00402,-0.24488 2.5407,-0.86478 3.64319,-1.02999 1.14342,-0.17143 2.25659,0.27414 6.29577,-0.43753 4.03888,-0.71169 5.51507,-1.03768 6.23419,-1.3503 0.74664,-0.32479 1.81806,-0.74575 2.47589,-1.3621 1.95897,0.12471 3.80476,-0.0261 5.2648,-0.47819 3.02376,-0.93627 4.99157,-1.52544 6.8628,-2.27751 1.50138,-0.60342 2.43202,-1.53636 2.66436,-1.81883 0.23254,-0.28245 0.14951,-0.71989 0.17694,-0.73948 0.0453,-0.0322 0.34622,-0.0701 0.52926,-0.40161 0.98557,-1.78276 2.70955,-5.45215 2.87137,-6.12738 0.16094,-0.67257 0.26182,-1.33778 0.34007,-1.73051 0.0453,-0.22691 -0.0855,-0.88701 -0.0594,-0.94393 0.0365,-0.0797 0.30505,-0.22988 0.37769,-0.47485 0.34913,-1.17686 0.24274,-2.19578 0.1278,-3.6249 -0.11463,-1.42909 -0.64781,-4.6711 -1.24013,-5.56865 -0.38017,-0.57646 -0.74215,-0.84625 -1.09026,-0.98459 -0.0657,-0.0219 -0.12035,-0.0553 -0.1827,-0.0754 -0.0207,-0.005 -0.0418,2.3e-4 -0.0623,-0.004 -0.30559,-0.097 -0.59597,-0.20067 -1.13816,-0.29875 -0.97557,-0.1765 -2.40074,-0.42766 -3.94175,-0.52584 -0.51366,-0.0327 -1.0379,-0.0247 -1.56523,-0.0153 -3.57201,0.0636 -9.05695,0.3611 -10.30707,0.90928 -1.60587,-0.44697 -3.89597,-0.88576 -5.89053,-0.8812 -3.07195,0.007 -4.97947,-0.005 -6.92207,-0.0134 -1.94251,-0.009 -1.70908,0.27025 -2.9318,0.26518 -1.32192,-0.005 -1.76701,-0.34717 -5.55562,-0.29393 -3.55782,0.05 -9.02796,0.36522 -10.30706,0.90927 -1.60614,-0.44747 -3.89367,-0.88575 -5.89043,-0.88118 -3.07215,0.007 -4.98175,0.0265 -6.92426,0.0177 -0.66059,-0.003 -1.0485,0.051 -1.35359,0.0934 z"
1935 style="display:inline;opacity:0.82448976;fill:#bcb786;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
1936 inkscape:connector-curvature="0" />
1937 </clipPath>
1938 <filter
1939 inkscape:collect="always"
1940 id="filter7610-9"
1941 x="-0.021942979"
1942 width="1.0438859"
1943 y="-0.10017137"
1944 height="1.2003427">
1945 <feGaussianBlur
1946 inkscape:collect="always"
1947 stdDeviation="0.57530213"
1948 id="feGaussianBlur7612-3" />
1949 </filter>
1950 <clipPath
1951 clipPathUnits="userSpaceOnUse"
1952 id="clipPath7606-1">
1953 <path
1954 id="path7608-9"
1955 d="m 1049.205,-282.26672 -0.09,0.008 c -1.3874,0.88445 -6.6033,1.6072 -6.629,9.52344 -0.024,7.42525 15.0129,17.09146 17.1563,18.09375 1.7302,0.80909 3.5916,1.40876 5.4063,1.71875 l 1.4374,0.21875 c 1.9197,0.21194 3.72,0.15141 5.1563,-0.0937 3.1191,-0.5324 5.1116,-0.92861 7.0937,-1.3125 1.9821,-0.38387 2.4743,-1.03965 3.5626,-1.28125 1.1287,-0.25066 2.2702,0.11629 6.25,-0.875 3.9795,-0.99128 5.4294,-1.4193 6.125,-1.78125 0.7222,-0.37601 1.7617,-0.87058 2.375,-1.53125 1.9629,-0.012 3.7937,-0.29105 5.2187,-0.84375 2.9512,-1.14461 4.8732,-1.86942 6.6875,-2.75 1.4557,-0.70653 2.3191,-1.70203 2.5312,-2 0.2123,-0.29796 0.099,-0.72855 0.125,-0.75 0.043,-0.0352 0.3405,-0.094 0.5,-0.4375 0.859,-1.84708 2.3232,-5.62764 2.4376,-6.3125 0.1137,-0.68215 0.168,-1.35277 0.2187,-1.75 0.029,-0.22951 -0.1471,-0.8789 -0.125,-0.9375 0.031,-0.082 0.2883,-0.25057 0.3437,-0.5 0.2663,-1.19832 0.089,-2.20736 -0.125,-3.625 -0.2139,-1.41764 -0.9716,-4.61463 -1.625,-5.46875 -0.4194,-0.54857 -0.7993,-0.7925 -1.1562,-0.90625 -0.067,-0.0173 -0.1239,-0.0467 -0.1875,-0.0625 -0.021,-0.004 -0.042,0.003 -0.062,0 -0.3116,-0.0755 -0.6085,-0.15867 -1.1562,-0.21875 -0.9855,-0.10812 -2.4247,-0.2594 -3.9688,-0.25 -0.5147,0.003 -1.0371,0.0476 -1.5625,0.0937 -3.5589,0.31228 -9.0098,0.99108 -10.2187,1.625 -1.6331,-0.33402 -3.9482,-0.61223 -5.9376,-0.46875 -3.064,0.22097 -4.9677,0.34219 -6.9062,0.46875 -1.9384,0.12655 -1.6861,0.38864 -2.9062,0.46875 -1.3191,0.0866 -1.7869,-0.22325 -5.5626,0.0937 -3.5457,0.29772 -8.9806,0.99317 -10.2187,1.625 -1.6334,-0.33451 -3.9459,-0.61239 -5.9375,-0.46875 -3.0642,0.22098 -4.9678,0.37344 -6.9062,0.5 -0.6592,0.043 -1.0424,0.12393 -1.3438,0.1875 z"
1956 style="display:inline;opacity:0.82448976;fill:#bcb786;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
1957 inkscape:connector-curvature="0" />
1958 </clipPath>
1959 <filter
1960 inkscape:collect="always"
1961 id="filter7578-4"
1962 x="-0.08160872"
1963 width="1.1632174"
1964 y="-0.22659944"
1965 height="1.4531989">
1966 <feGaussianBlur
1967 inkscape:collect="always"
1968 stdDeviation="2.437399"
1969 id="feGaussianBlur7580-7" />
1970 </filter>
1971 <filter
1972 inkscape:collect="always"
1973 id="filter7594-8"
1974 x="-0.040804356"
1975 width="1.0816087"
1976 y="-0.11329972"
1977 height="1.2265995">
1978 <feGaussianBlur
1979 inkscape:collect="always"
1980 stdDeviation="1.2186995"
1981 id="feGaussianBlur7596-4" />
1982 </filter>
1983 <clipPath
1984 clipPathUnits="userSpaceOnUse"
1985 id="clipPath8616-5">
1986 <path
1987 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#262f2f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
1988 d="m 352.24553,211.99185 c -3.80443,-25.26423 -16.80972,-50.63802 -17.1568,-75.52523 -0.18626,-13.35552 3.27285,-26.57091 13.75553,-39.554046 36.34702,-65.295835 116.94091,-84.694685 185.93466,-91.465427 86.92239,-11.016801 184.91267,17.940072 233.37134,95.401283 54.12402,75.7333 56.67476,172.53912 80.61204,259.52795 29.43779,127.1276 54.77914,256.21414 60.39224,386.85035 -3.06348,78.18185 -8.42634,165.18415 -60.50321,228.13413 -48.02654,50.35744 -122.78647,50.05304 -187.06988,59.00234 -90.55539,4.655 -184.35153,-16.1458 -261.7839,-64.19824 -64.77564,-37.94001 -95.73019,-113.47863 -97.2794,-186.01958 -8.38917,-79.87516 26.39152,-153.80851 51.6204,-227.15961 7.47061,-82.76107 9.41286,-166.24775 9.65334,-249.38484 -0.83682,-32.19544 -7.08953,-63.81733 -11.54636,-95.60908 z"
1989 id="path8618-0"
1990 sodipodi:nodetypes="cscccccccccccc"
1991 inkscape:connector-curvature="0" />
1992 </clipPath>
1993 <filter
1994 inkscape:collect="always"
1995 id="filter8940-3"
1996 x="-0.25152978"
1997 width="1.5030596"
1998 y="-0.053035267"
1999 height="1.1060705">
2000 <feGaussianBlur
2001 inkscape:collect="always"
2002 stdDeviation="13.024603"
2003 id="feGaussianBlur8942-6" />
2004 </filter>
2005 <clipPath
2006 clipPathUnits="userSpaceOnUse"
2007 id="clipPath8209-6">
2008 <path
2009 sodipodi:nodetypes="czcc"
2010 id="path8211-3"
2011 d="m 734.03125,519.49186 c 0,0 16.75513,37.01806 28.70141,53.95395 11.94629,16.93589 52.72716,56.04605 52.72716,56.04605 l 0.59717,-138.58975"
2012 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#1a1a1a;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
2013 inkscape:connector-curvature="0" />
2014 </clipPath>
2015 <filter
2016 inkscape:collect="always"
2017 id="filter8822-2"
2018 x="-0.2742857"
2019 width="1.5485713"
2020 y="-0.21333334"
2021 height="1.4266667">
2022 <feGaussianBlur
2023 inkscape:collect="always"
2024 stdDeviation="11.313708"
2025 id="feGaussianBlur8824-0" />
2026 </filter>
2027 <clipPath
2028 clipPathUnits="userSpaceOnUse"
2029 id="clipPath3998-6">
2030 <path
2031 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#262f2f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
2032 d="m 178.21428,274.14789 c -3.80443,-25.26423 -16.80972,-50.63802 -17.1568,-75.52523 -0.18626,-13.35552 3.27285,-26.57091 13.75553,-39.55405 36.34702,-65.295835 116.94091,-84.694685 185.93466,-91.465427 86.92239,-11.016801 184.91267,17.940072 233.37134,95.401287 54.12402,75.7333 56.67476,172.53912 80.61204,259.52795 29.43779,127.1276 54.77914,256.21414 60.39224,386.85035 -3.06348,78.18185 -8.42634,165.18415 -60.50321,228.13413 -48.02654,50.3574 -122.78647,50.053 -187.06988,59.0023 -90.55539,4.655 -184.35153,-16.1458 -261.7839,-64.1982 -64.77564,-37.94001 -95.73019,-113.47863 -97.2794,-186.01958 -8.38917,-79.87516 26.39152,-153.80851 51.6204,-227.15961 7.47061,-82.76107 9.41286,-166.24775 9.65334,-249.38484 -0.83682,-32.19544 -7.08953,-63.81733 -11.54636,-95.60908 z"
2033 id="path4000-1"
2034 sodipodi:nodetypes="cscccccccccccc"
2035 inkscape:connector-curvature="0" />
2036 </clipPath>
2037 <filter
2038 inkscape:collect="always"
2039 id="filter3677-5">
2040 <feGaussianBlur
2041 inkscape:collect="always"
2042 stdDeviation="2.0397518"
2043 id="feGaussianBlur3679-5" />
2044 </filter>
2045 <filter
2046 id="filter3785-4"
2047 inkscape:label="White Fur">
2048 <feTurbulence
2049 id="feTurbulence3787-7"
2050 type="fractalNoise"
2051 baseFrequency="0.24044943820224721"
2052 numOctaves="10"
2053 seed="655"
2054 result="result0" />
2055 <feDisplacementMap
2056 id="feDisplacementMap3789-65"
2057 in="SourceGraphic"
2058 in2="result0"
2059 scale="62"
2060 xChannelSelector="B"
2061 yChannelSelector="G" />
2062 </filter>
2063 <clipPath
2064 clipPathUnits="userSpaceOnUse"
2065 id="clipPath8604-69">
2066 <path
2067 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#262f2f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
2068 d="m 352.24553,211.99185 c -3.80443,-25.26423 -16.80972,-50.63802 -17.1568,-75.52523 -0.18626,-13.35552 3.27285,-26.57091 13.75553,-39.554046 36.34702,-65.295835 116.94091,-84.694685 185.93466,-91.465427 86.92239,-11.016801 184.91267,17.940072 233.37134,95.401283 54.12402,75.7333 56.67476,172.53912 80.61204,259.52795 29.43779,127.1276 54.77914,256.21414 60.39224,386.85035 -3.06348,78.18185 -8.42634,165.18415 -60.50321,228.13413 -48.02654,50.35744 -122.78647,50.05304 -187.06988,59.00234 -90.55539,4.655 -184.35153,-16.1458 -261.7839,-64.19824 -64.77564,-37.94001 -95.73019,-113.47863 -97.2794,-186.01958 -8.38917,-79.87516 26.39152,-153.80851 51.6204,-227.15961 7.47061,-82.76107 9.41286,-166.24775 9.65334,-249.38484 -0.83682,-32.19544 -7.08953,-63.81733 -11.54636,-95.60908 z"
2069 id="path8606-3"
2070 sodipodi:nodetypes="cscccccccccccc"
2071 inkscape:connector-curvature="0" />
2072 </clipPath>
2073 <filter
2074 inkscape:collect="always"
2075 id="filter8802-7"
2076 x="-0.35311759"
2077 width="1.7062352"
2078 y="-0.1817714"
2079 height="1.3635428">
2080 <feGaussianBlur
2081 inkscape:collect="always"
2082 stdDeviation="48.038491"
2083 id="feGaussianBlur8804-4" />
2084 </filter>
2085 <radialGradient
2086 inkscape:collect="always"
2087 xlink:href="#linearGradient3317"
2088 id="radialGradient3315-5"
2089 cx="543.6698"
2090 cy="147.3131"
2091 fx="543.6698"
2092 fy="147.3131"
2093 r="47.863216"
2094 gradientTransform="matrix(2.1382256,0,0,2.3382884,-77.03847,-101.68704)"
2095 gradientUnits="userSpaceOnUse" />
2096 <radialGradient
2097 inkscape:collect="always"
2098 xlink:href="#linearGradient3537"
2099 id="radialGradient3543-4"
2100 cx="385"
2101 cy="237.00504"
2102 fx="385"
2103 fy="237.00504"
2104 r="86.928574"
2105 gradientTransform="matrix(1,0,0,0.8562038,0,34.080427)"
2106 gradientUnits="userSpaceOnUse" />
2107 <clipPath
2108 clipPathUnits="userSpaceOnUse"
2109 id="clipPath4100-3">
2110 <path
2111 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:0.9000755px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
2112 d="m 265.93541,126.68393 -18.76721,168.86308 174.10543,-73.12068 61.9544,88.65883 57.8844,-31.9903 -37.53442,-180.059677 -237.6426,27.648747 z"
2113 id="path4102-0"
2114 sodipodi:nodetypes="ccccccc"
2115 inkscape:connector-curvature="0" />
2116 </clipPath>
2117 <filter
2118 inkscape:collect="always"
2119 id="filter4120-7"
2120 x="-0.2770822"
2121 width="1.5541644"
2122 y="-0.32482043"
2123 height="1.6496409">
2124 <feGaussianBlur
2125 inkscape:collect="always"
2126 stdDeviation="19.956289"
2127 id="feGaussianBlur4122-8" />
2128 </filter>
2129 <radialGradient
2130 inkscape:collect="always"
2131 xlink:href="#linearGradient3961"
2132 id="radialGradient3915-6"
2133 cx="418.30365"
2134 cy="342.47794"
2135 fx="418.30365"
2136 fy="342.47794"
2137 r="131.4509"
2138 gradientTransform="matrix(1.3957347,0.6211056,-0.4244067,0.9537174,-15.061913,-227.96711)"
2139 gradientUnits="userSpaceOnUse" />
2140 <mask
2141 maskUnits="userSpaceOnUse"
2142 id="mask3684-3">
2143 <ellipse
2144 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient3688);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:0.43724918px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
2145 id="path3686-1"
2146 transform="translate(-174.03125,62.156036)"
2147 cx="579.474"
2148 cy="260.57516"
2149 rx="192.6866"
2150 ry="164.04877" />
2151 </mask>
2152 <radialGradient
2153 inkscape:collect="always"
2154 xlink:href="#linearGradient3951"
2155 id="radialGradient3933-8"
2156 cx="397.16388"
2157 cy="336.95245"
2158 fx="397.16388"
2159 fy="336.95245"
2160 r="36.75"
2161 gradientUnits="userSpaceOnUse"
2162 gradientTransform="matrix(1.9449972,2.4894837e-7,-2.4894833e-7,1.9449969,-375.31868,-318.41912)" />
2163 <filter
2164 inkscape:collect="always"
2165 id="filter8806-6"
2166 x="-0.61142862"
2167 width="2.2228572"
2168 y="-0.14930232"
2169 height="1.2986046">
2170 <feGaussianBlur
2171 inkscape:collect="always"
2172 stdDeviation="37.830213"
2173 id="feGaussianBlur8808-4" />
2174 </filter>
2175 <filter
2176 inkscape:collect="always"
2177 id="filter8826-9"
2178 x="-0.25894088"
2179 width="1.5178818"
2180 y="-0.2236412"
2181 height="1.4472824">
2182 <feGaussianBlur
2183 inkscape:collect="always"
2184 stdDeviation="19.631544"
2185 id="feGaussianBlur8828-5" />
2186 </filter>
2187 <radialGradient
2188 inkscape:collect="always"
2189 xlink:href="#linearGradient3985"
2190 id="radialGradient3991-0"
2191 cx="402.48898"
2192 cy="317.23578"
2193 fx="402.48898"
2194 fy="317.23578"
2195 r="23.714285"
2196 gradientUnits="userSpaceOnUse"
2197 gradientTransform="matrix(4.3776616,0,0,4.3776616,-1358.3025,-1070.7357)" />
2198 <filter
2199 inkscape:collect="always"
2200 id="filter3981-7"
2201 x="-0.30000001"
2202 width="1.6"
2203 y="-0.30000001"
2204 height="1.6">
2205 <feGaussianBlur
2206 inkscape:collect="always"
2207 stdDeviation="2"
2208 id="feGaussianBlur3983-1" />
2209 </filter>
2210 <radialGradient
2211 inkscape:collect="always"
2212 xlink:href="#linearGradient4106"
2213 id="radialGradient4112-7"
2214 cx="250.22678"
2215 cy="475.09763"
2216 fx="250.22678"
2217 fy="475.09763"
2218 r="95.98877"
2219 gradientTransform="matrix(1.2259004,-0.7077739,0.1413989,0.2449102,322.22326,608.91815)"
2220 gradientUnits="userSpaceOnUse" />
2221 <radialGradient
2222 inkscape:collect="always"
2223 xlink:href="#linearGradient4013"
2224 id="radialGradient3585-2"
2225 gradientUnits="userSpaceOnUse"
2226 gradientTransform="matrix(1.1323239,0.7659488,-1.4550286,2.1510098,588.75376,-711.79716)"
2227 cx="228.81355"
2228 cy="440.26971"
2229 fx="228.81355"
2230 fy="440.26971"
2231 r="119.17509" />
2232 <clipPath
2233 clipPathUnits="userSpaceOnUse"
2234 id="clipPath3999-0">
2235 <path
2236 style="display:inline;opacity:1;fill:#f5ff04;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
2237 d="m 179.64286,267.36218 c -22.41044,39.70292 -60.6161,115.78029 -69.28571,149.64286 -8.64721,33.7751 -8.77199,66.41654 -0.35715,86.42858 8.3602,19.88213 26.16398,35.6328 40.71428,41.42856 -0.59638,-14.37587 14.37295,-43.28583 72.85715,-72.5 58.62627,-29.28514 78.38163,-27.13086 103.57142,-47.14286 25.63006,-20.36176 12.61031,-67.04463 3.21429,-93.92857 -9.43424,-26.99328 -34.96741,-59.12448 -66.42857,-69.64285 -31.03327,-10.37532 -65.01776,-4.84837 -84.28571,5.71428 z"
2238 id="path4001-61"
2239 sodipodi:nodetypes="czzczzzzc"
2240 inkscape:connector-curvature="0" />
2241 </clipPath>
2242 <radialGradient
2243 inkscape:collect="always"
2244 xlink:href="#linearGradient4041"
2245 id="radialGradient4060-5"
2246 gradientUnits="userSpaceOnUse"
2247 gradientTransform="matrix(0.05911206,2.6869855,-0.7234268,0.01591495,408.72779,-424.56452)"
2248 cx="275.4422"
2249 cy="335.34866"
2250 fx="275.4422"
2251 fy="335.34866"
2252 r="36.75" />
2253 <radialGradient
2254 inkscape:collect="always"
2255 xlink:href="#linearGradient7622"
2256 id="radialGradient4062-9"
2257 gradientUnits="userSpaceOnUse"
2258 gradientTransform="matrix(0.05911206,2.6869855,-0.7234268,0.01591495,408.72779,-424.56452)"
2259 cx="275.4422"
2260 cy="335.34866"
2261 fx="275.4422"
2262 fy="335.34866"
2263 r="36.75" />
2264 <filter
2265 inkscape:collect="always"
2266 id="filter4079-1">
2267 <feGaussianBlur
2268 inkscape:collect="always"
2269 stdDeviation="6.5887624"
2270 id="feGaussianBlur4081-1" />
2271 </filter>
2272 <radialGradient
2273 inkscape:collect="always"
2274 xlink:href="#linearGradient4013"
2275 id="radialGradient4056-5"
2276 gradientUnits="userSpaceOnUse"
2277 gradientTransform="matrix(1.1323239,0.7659488,-1.4550286,2.1510098,588.75376,-711.79716)"
2278 cx="228.81355"
2279 cy="440.26971"
2280 fx="228.81355"
2281 fy="440.26971"
2282 r="119.17509" />
2283 <filter
2284 inkscape:collect="always"
2285 id="filter4083-9">
2286 <feGaussianBlur
2287 inkscape:collect="always"
2288 stdDeviation="1.5052066"
2289 id="feGaussianBlur4085-7" />
2290 </filter>
2291 <radialGradient
2292 inkscape:collect="always"
2293 xlink:href="#linearGradient4113"
2294 id="radialGradient4119-7"
2295 cx="296.33783"
2296 cy="427.17749"
2297 fx="296.33783"
2298 fy="427.17749"
2299 r="19.704132"
2300 gradientUnits="userSpaceOnUse"
2301 gradientTransform="matrix(2.9797125,0,0,2.9797125,-599.28727,-827.0855)" />
2302 <radialGradient
2303 inkscape:collect="always"
2304 xlink:href="#linearGradient4862"
2305 id="radialGradient4868-3"
2306 cx="429.56738"
2307 cy="377.42877"
2308 fx="429.56738"
2309 fy="377.42877"
2310 r="72.079735"
2311 gradientTransform="matrix(1,0,0,0.618034,0,144.16496)"
2312 gradientUnits="userSpaceOnUse" />
2313 <filter
2314 inkscape:collect="always"
2315 id="filter4002-6"
2316 x="-0.24334238"
2317 width="1.4866848"
2318 y="-0.39104807"
2319 height="1.7820961">
2320 <feGaussianBlur
2321 inkscape:collect="always"
2322 stdDeviation="14.589518"
2323 id="feGaussianBlur4004-3" />
2324 </filter>
2325 <radialGradient
2326 inkscape:collect="always"
2327 xlink:href="#linearGradient4870"
2328 id="radialGradient4876-9"
2329 cx="437.6991"
2330 cy="391.21735"
2331 fx="437.6991"
2332 fy="391.21735"
2333 r="36.611931"
2334 gradientTransform="matrix(1,0,0,0.618034,0,149.43174)"
2335 gradientUnits="userSpaceOnUse" />
2336 <filter
2337 inkscape:collect="always"
2338 id="filter4010-1"
2339 x="-0.14577261"
2340 width="1.2915452"
2341 y="-0.23523259"
2342 height="1.4704652">
2343 <feGaussianBlur
2344 inkscape:collect="always"
2345 stdDeviation="4.4442907"
2346 id="feGaussianBlur4012-2" />
2347 </filter>
2348 <filter
2349 inkscape:collect="always"
2350 id="filter4053-9">
2351 <feGaussianBlur
2352 inkscape:collect="always"
2353 stdDeviation="0.6062947"
2354 id="feGaussianBlur4055-3" />
2355 </filter>
2356 <clipPath
2357 clipPathUnits="userSpaceOnUse"
2358 id="clipPath8514-8">
2359 <path
2360 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#262f2f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
2361 d="m 352.24553,211.99185 c -3.80443,-25.26423 -16.80972,-50.63802 -17.1568,-75.52523 -0.18626,-13.35552 3.27285,-26.57091 13.75553,-39.554046 36.34702,-65.295835 116.94091,-84.694685 185.93466,-91.465427 86.92239,-11.016801 184.91267,17.940072 233.37134,95.401283 54.12402,75.7333 56.67476,172.53912 80.61204,259.52795 29.43779,127.1276 54.77914,256.21414 60.39224,386.85035 -3.06348,78.18185 -8.42634,165.18415 -60.50321,228.13413 -48.02654,50.35744 -122.78647,50.05304 -187.06988,59.00234 -90.55539,4.655 -184.35153,-16.1458 -261.7839,-64.19824 -64.77564,-37.94001 -95.73019,-113.47863 -97.2794,-186.01958 -8.38917,-79.87516 26.39152,-153.80851 51.6204,-227.15961 7.47061,-82.76107 9.41286,-166.24775 9.65334,-249.38484 -0.83682,-32.19544 -7.08953,-63.81733 -11.54636,-95.60908 z"
2362 id="path8516-8"
2363 sodipodi:nodetypes="cscccccccccccc"
2364 inkscape:connector-curvature="0" />
2365 </clipPath>
2366 <filter
2367 inkscape:collect="always"
2368 id="filter8814-5"
2369 x="-0.20466694"
2370 width="1.4093339"
2371 y="-0.29007819"
2372 height="1.5801564">
2373 <feGaussianBlur
2374 inkscape:collect="always"
2375 stdDeviation="22.300169"
2376 id="feGaussianBlur8816-0" />
2377 </filter>
2378 <clipPath
2379 clipPathUnits="userSpaceOnUse"
2380 id="clipPath8610-9">
2381 <path
2382 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#262f2f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
2383 d="m 352.24553,211.99185 c -3.80443,-25.26423 -16.80972,-50.63802 -17.1568,-75.52523 -0.18626,-13.35552 3.27285,-26.57091 13.75553,-39.554046 36.34702,-65.295835 116.94091,-84.694685 185.93466,-91.465427 86.92239,-11.016801 184.91267,17.940072 233.37134,95.401283 54.12402,75.7333 56.67476,172.53912 80.61204,259.52795 29.43779,127.1276 54.77914,256.21414 60.39224,386.85035 -3.06348,78.18185 -8.42634,165.18415 -60.50321,228.13413 -48.02654,50.35744 -122.78647,50.05304 -187.06988,59.00234 -90.55539,4.655 -184.35153,-16.1458 -261.7839,-64.19824 -64.77564,-37.94001 -95.73019,-113.47863 -97.2794,-186.01958 -8.38917,-79.87516 26.39152,-153.80851 51.6204,-227.15961 7.47061,-82.76107 9.41286,-166.24775 9.65334,-249.38484 -0.83682,-32.19544 -7.08953,-63.81733 -11.54636,-95.60908 z"
2384 id="path8612-6"
2385 sodipodi:nodetypes="cscccccccccccc"
2386 inkscape:connector-curvature="0" />
2387 </clipPath>
2388 <filter
2389 inkscape:collect="always"
2390 id="filter8810-3"
2391 x="-0.23519406"
2392 width="1.4703881"
2393 y="-0.24500646"
2394 height="1.4900129">
2395 <feGaussianBlur
2396 inkscape:collect="always"
2397 stdDeviation="58.328041"
2398 id="feGaussianBlur8812-8" />
2399 </filter>
2400 <clipPath
2401 clipPathUnits="userSpaceOnUse"
2402 id="clipPath8622-5">
2403 <path
2404 style="display:inline;opacity:1;fill:#202020;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
2405 d="m 821.64329,477.88997 c 0,0 22.61947,-6.50681 35.74275,-5.87273 13.12328,0.63409 30.64158,1.93862 43.70885,12.18619 13.06727,10.24756 25.06774,27.14007 34.11239,58.36965 9.04465,31.22958 1.69832,99.25201 -6.17603,143.34735 -7.87435,44.09534 -28.2651,106.11298 -45,140 -16.7349,33.88702 -49.79771,77.4952 -60.56943,89.87616 -11.36422,13.06197 -56.20589,36.42617 -79.43057,42.26667 5.3033,-10.6066 48.89976,-50.58884 35,-60.71426 -14.01897,-10.21226 -45.76009,45.98236 -84.29315,29.03317 21.38231,-13.13212 41.7794,-51.18606 34.04061,-66.59445 -7.84025,-15.61039 -30.70493,48.75757 -93.53554,37.01288 30.05204,-27.52666 55.40706,-70.90401 41.2627,-82.9797 -14.41516,-12.30687 -60.46175,54.29315 -60.46175,54.29315 0,0 -2.8219,-41.70118 13.7732,-68.60732 16.63935,-26.97787 79.65297,-81.61527 99.55313,-111.70342 19.90015,-30.08814 33.61256,-66.00902 42.13542,-92.51794 8.52286,-26.50892 15.80094,-77.09954 15.80094,-77.09954"
2406 id="path8624-61"
2407 sodipodi:nodetypes="czzzzzzczczczczzzc"
2408 inkscape:connector-curvature="0" />
2409 </clipPath>
2410 <filter
2411 inkscape:collect="always"
2412 id="filter8818-1"
2413 x="-0.34381232"
2414 width="1.6876246"
2415 y="-0.18433961"
2416 height="1.3686792">
2417 <feGaussianBlur
2418 inkscape:collect="always"
2419 stdDeviation="34.542167"
2420 id="feGaussianBlur8820-5" />
2421 </filter>
2422 <clipPath
2423 clipPathUnits="userSpaceOnUse"
2424 id="clipPath8906-9">
2425 <path
2426 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#262f2f;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
2427 d="m 352.24553,211.99185 c -3.80443,-25.26423 -16.80972,-50.63802 -17.1568,-75.52523 -0.18626,-13.35552 3.27285,-26.57091 13.75553,-39.554046 36.34702,-65.295835 116.94091,-84.694685 185.93466,-91.465427 86.92239,-11.016801 184.91267,17.940072 233.37134,95.401283 54.12402,75.7333 56.67476,172.53912 80.61204,259.52795 29.43779,127.1276 54.77914,256.21414 60.39224,386.85035 -3.06348,78.18185 -8.42634,165.18415 -60.50321,228.13413 -48.02654,50.35744 -122.78647,50.05304 -187.06988,59.00234 -90.55539,4.655 -184.35153,-16.1458 -261.7839,-64.19824 -64.77564,-37.94001 -95.73019,-113.47863 -97.2794,-186.01958 -8.38917,-79.87516 26.39152,-153.80851 51.6204,-227.15961 7.47061,-82.76107 9.41286,-166.24775 9.65334,-249.38484 -0.83682,-32.19544 -7.08953,-63.81733 -11.54636,-95.60908 z"
2428 id="path8908-8"
2429 sodipodi:nodetypes="cscccccccccccc"
2430 inkscape:connector-curvature="0" />
2431 </clipPath>
2432 <clipPath
2433 clipPathUnits="userSpaceOnUse"
2434 id="clipPath3602-4">
2435 <path
2436 sodipodi:nodetypes="czzzzzzczczczczzzc"
2437 id="path3604-8"
2438 d="m 647.61204,540.04601 c 0,0 22.61947,-6.50681 35.74275,-5.87273 13.12328,0.63409 30.64158,1.93862 43.70885,12.18619 13.06727,10.24756 25.06774,27.14007 34.11239,58.36965 9.04465,31.22958 1.69832,99.25201 -6.17603,143.34735 -7.87435,44.09534 -28.2651,106.11298 -45,140 -16.7349,33.88702 -49.79771,77.4952 -60.56943,89.87616 -11.36422,13.06197 -56.20589,36.42617 -79.43057,42.26667 5.3033,-10.6066 48.89976,-50.58884 35,-60.71426 -14.01897,-10.21226 -45.76009,45.98236 -84.29315,29.03317 21.38231,-13.13212 41.7794,-51.18606 34.04061,-66.59445 -7.84025,-15.61039 -30.70493,48.75757 -93.53554,37.01288 30.05204,-27.52666 55.40706,-70.90401 41.2627,-82.9797 -14.41516,-12.30687 -60.46175,54.29315 -60.46175,54.29315 0,0 -2.8219,-41.70118 13.7732,-68.60732 16.63935,-26.97787 79.65297,-81.61527 99.55313,-111.70342 19.90015,-30.08814 33.61256,-66.00902 42.13542,-92.51794 8.52286,-26.50892 15.80094,-77.09954 15.80094,-77.09954"
2439 style="display:inline;opacity:1;fill:#202020;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
2440 inkscape:connector-curvature="0" />
2441 </clipPath>
2442 <filter
2443 inkscape:collect="always"
2444 id="filter3587-1"
2445 x="-0.1">
2446 <feGaussianBlur
2447 inkscape:collect="always"
2448 stdDeviation="8.881432"
2449 id="feGaussianBlur3589-0" />
2450 </filter>
2451 <clipPath
2452 clipPathUnits="userSpaceOnUse"
2453 id="clipPath3992-4">
2454 <path
2455 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#121212;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
2456 d="m 709.28572,844.50504 c 54.28571,-1.42857 126.035,-15.05199 170,-26.78572 44.05271,-11.75714 125.88628,-36.34724 175.35708,-57.85714 49.3393,-21.45272 113.6037,-59.2816 154.2858,-92.14285 40.5081,-32.72069 52.3899,-55.81981 60.7143,-33.57143 8.3691,22.36779 -16.407,56.32562 -37.8572,81.07143 -21.6041,24.9234 -52.7313,52.70533 -98.9286,89.28571 C 1086.6598,841.08542 976.77458,906.08967 920,933.07647 c -57.06606,27.12536 -128.20334,58.23842 -172.14286,72.50003 -43.93952,14.2616 -131.42857,31.0714 -131.42857,31.0714 l 92.85715,-192.14286 z"
2457 id="path3994-4"
2458 sodipodi:nodetypes="czzzzzzzzcc"
2459 inkscape:connector-curvature="0" />
2460 </clipPath>
2461 <filter
2462 inkscape:collect="always"
2463 id="filter3779-4"
2464 x="-0.087980822"
2465 width="1.1759616"
2466 y="-0.17728332"
2467 height="1.3545666">
2468 <feGaussianBlur
2469 inkscape:collect="always"
2470 stdDeviation="16.340344"
2471 id="feGaussianBlur3781-4" />
2472 </filter>
2473 <clipPath
2474 clipPathUnits="userSpaceOnUse"
2475 id="clipPath3986-7">
2476 <path
2477 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#121212;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
2478 d="m 709.28572,844.50504 c 54.28571,-1.42857 126.035,-15.05199 170,-26.78572 44.05271,-11.75714 125.88628,-36.34724 175.35708,-57.85714 49.3393,-21.45272 113.6037,-59.2816 154.2858,-92.14285 40.5081,-32.72069 52.3899,-55.81981 60.7143,-33.57143 8.3691,22.36779 -16.407,56.32562 -37.8572,81.07143 -21.6041,24.9234 -52.7313,52.70533 -98.9286,89.28571 C 1086.6598,841.08542 976.77458,906.08967 920,933.07647 c -57.06606,27.12536 -128.20334,58.23842 -172.14286,72.50003 -43.93952,14.2616 -131.42857,31.0714 -131.42857,31.0714 l 92.85715,-192.14286 z"
2479 id="path3988-6"
2480 sodipodi:nodetypes="czzzzzzzzcc"
2481 inkscape:connector-curvature="0" />
2482 </clipPath>
2483 <clipPath
2484 clipPathUnits="userSpaceOnUse"
2485 id="clipPath3722-3">
2486 <path
2487 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#121212;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
2488 d="m 709.28572,844.50504 c 54.28571,-1.42857 126.035,-15.05199 170,-26.78572 44.05271,-11.75714 125.88628,-36.34724 175.35708,-57.85714 49.3393,-21.45272 113.6037,-59.2816 154.2858,-92.14285 40.5081,-32.72069 52.3899,-55.81981 60.7143,-33.57143 8.3691,22.36779 -16.407,56.32562 -37.8572,81.07143 -21.6041,24.9234 -52.7313,52.70533 -98.9286,89.28571 C 1086.6598,841.08542 976.77458,906.08967 920,933.07647 c -57.06606,27.12536 -128.20334,58.23842 -172.14286,72.50003 -43.93952,14.2616 -131.42857,31.0714 -131.42857,31.0714 l 92.85715,-192.14286 z"
2489 id="path3724-1"
2490 sodipodi:nodetypes="czzzzzzzzcc"
2491 inkscape:connector-curvature="0" />
2492 </clipPath>
2493 <filter
2494 inkscape:collect="always"
2495 id="filter8225-7">
2496 <feGaussianBlur
2497 inkscape:collect="always"
2498 stdDeviation="10.661912"
2499 id="feGaussianBlur8227-5" />
2500 </filter>
2501 <mask
2502 maskUnits="userSpaceOnUse"
2503 id="mask7704-9">
2504 <path
2505 style="fill:url(#linearGradient7708);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
2506 d="m 718.40812,-224.31217 33.25,56 275.99998,-24 159.5,-48.25 -66.5,-82.75 -402.24998,99 z"
2507 id="path7706-6"
2508 inkscape:connector-curvature="0" />
2509 </mask>
2510 <clipPath
2511 clipPathUnits="userSpaceOnUse"
2512 id="clipPath7421-7">
2513 <path
2514 sodipodi:type="inkscape:offset"
2515 inkscape:radius="0"
2516 inkscape:original="M 1111.4062 -285.9375 L 1107.4688 -284.0625 C 1107.4283 -284.05228 1107.3692 -284.04201 1107.3438 -284.03125 C 1106.925 -283.8184 1107.1791 -283.93067 1106.6875 -283.71875 C 1106.2014 -283.50919 1104.9499 -283.13456 1102.5938 -282.25 C 1099.2626 -280.99942 1096.7895 -280.10016 1095.5938 -279.1875 C 1094.0576 -279.16623 1091.8733 -278.95419 1089.9375 -278.46875 C 1086.956 -277.72108 1085.0823 -277.29474 1083.1875 -276.875 C 1081.2927 -276.45527 1081.512 -276.23281 1080.3125 -276 C 1079.0159 -275.74833 1078.5911 -276.00899 1074.875 -275.21875 C 1071.3851 -274.4766 1065.9802 -273.28768 1064.7188 -272.53125 C 1063.1348 -272.71203 1060.8513 -272.85303 1058.875 -272.5625 C 1055.8346 -272.11554 1053.9588 -271.88974 1052.0312 -271.65625 C 1051.3758 -271.57687 1050.9902 -271.45547 1050.6875 -271.375 C 1050.2613 -271.24334 1050.0017 -271.11498 1049.3125 -271.03125 C 1048.0009 -270.87188 1047.5503 -271.18808 1043.7812 -270.75 C 1040.2273 -270.33691 1034.7758 -269.47718 1033.5312 -268.8125 C 1031.9322 -269.10979 1029.6735 -269.34669 1027.6875 -269.15625 C 1024.6287 -268.86293 1022.7155 -268.67226 1020.7812 -268.5 C 1018.847 -268.32773 1019.0926 -268.07763 1017.875 -267.96875 C 1016.5588 -267.85105 1016.1152 -268.13238 1012.3438 -267.71875 C 1008.8017 -267.3303 1003.3359 -266.50948 1002.0625 -265.84375 C 1000.4636 -266.13844 998.1753 -266.35076 996.1875 -266.15625 C 993.12921 -265.857 991.2463 -265.67601 989.3125 -265.5 C 988.65501 -265.44015 988.27245 -265.32144 987.96875 -265.25 C 987.54105 -265.13104 987.28525 -265.03193 986.59375 -264.96875 C 985.27775 -264.84849 984.834 -265.16363 981.0625 -264.75 C 977.50631 -264.35998 972.0569 -263.51084 970.8125 -262.84375 C 969.21381 -263.13793 966.95265 -263.36747 964.96875 -263.15625 C 961.91305 -262.83092 959.9947 -262.63001 958.0625 -262.4375 C 956.13031 -262.24499 956.37275 -261.99662 955.15625 -261.875 C 953.84137 -261.74353 953.3932 -262.03954 949.625 -261.59375 C 946.08611 -261.17509 940.6473 -260.30158 939.375 -259.625 C 937.77741 -259.90604 935.51505 -260.04543 933.53125 -259.8125 C 930.47927 -259.45413 928.58625 -259.24464 926.65625 -259.03125 C 926.00007 -258.95869 925.6156 -258.85856 925.3125 -258.78125 C 924.88571 -258.65402 924.6276 -258.51405 923.9375 -258.4375 C 922.62411 -258.29181 922.17015 -258.61152 918.40625 -258.125 C 914.85737 -257.66624 909.4276 -256.70598 908.1875 -256 C 906.59441 -256.24424 904.3537 -256.38135 902.375 -256.125 C 899.32741 -255.73018 897.4243 -255.47655 895.5 -255.21875 C 893.57571 -254.96096 893.7739 -254.72522 892.5625 -254.5625 C 891.25301 -254.3866 890.8153 -254.66688 887.0625 -254.09375 C 883.53821 -253.55551 878.1393 -252.39458 876.875 -251.65625 C 875.28751 -251.85979 873.0295 -251.91098 871.0625 -251.5625 C 868.03631 -251.02638 866.1636 -250.70081 864.25 -250.375 C 863.59941 -250.26423 863.2363 -250.10406 862.9375 -250 C 862.51681 -249.83512 862.27405 -249.6687 861.59375 -249.53125 C 860.29905 -249.26966 859.86665 -249.53745 856.15625 -248.71875 C 852.65777 -247.9468 847.31035 -246.33582 846.09375 -245.5 C 844.53085 -245.57745 842.33625 -245.41472 840.40625 -244.90625 C 837.43387 -244.12312 835.58855 -243.67416 833.71875 -243.15625 C 831.84875 -242.63835 832.0521 -242.38897 830.875 -242.0625 C 829.60251 -241.7096 829.17795 -241.95541 825.53125 -240.875 C 822.10657 -239.86037 816.88185 -237.94183 815.65625 -237.03125 C 814.11747 -237.01851 811.93645 -236.75903 810.03125 -236.15625 C 807.10027 -235.22891 805.2809 -234.69783 803.4375 -234.09375 C 802.81071 -233.88837 802.44585 -233.70117 802.15625 -233.5625 C 801.74867 -233.34889 801.50295 -233.15375 800.84375 -232.9375 C 799.58925 -232.52596 799.1576 -232.74846 795.5625 -231.5 C 792.17261 -230.32283 786.96755 -228.2863 785.78125 -227.34375 C 784.25737 -227.28408 782.1312 -226.94888 780.25 -226.28125 C 777.35261 -225.25296 775.55095 -224.60577 773.71875 -223.96875 C 771.88655 -223.33174 772.0909 -223.12021 770.9375 -222.71875 C 769.69071 -222.28479 769.27395 -222.51903 765.71875 -221.15625 C 762.38005 -219.87645 757.23165 -217.6737 756.03125 -216.6875 C 754.52407 -216.57981 752.39555 -216.1887 750.53125 -215.46875 C 747.66307 -214.36115 745.90735 -213.68719 744.09375 -213 C 743.47705 -212.76637 743.0973 -212.55797 742.8125 -212.40625 C 742.81251 -212.40625 742.8125 -212.37673 742.8125 -212.375 L 734.8125 -209.1875 L 736.625 -194.46875 C 736.36701 -194.52956 742.8125 -191.15625 742.8125 -191.15625 C 743.03891 -191.30093 743.26145 -191.42886 743.53125 -191.53125 C 744.61177 -191.94123 745.70285 -191.74702 749.53125 -193.21875 C 753.35977 -194.69049 754.7553 -195.22373 755.4375 -195.625 C 756.11711 -196.02478 757.04925 -196.50437 757.65625 -197.15625 C 759.48317 -197.294 761.22705 -197.64948 762.59375 -198.15625 C 765.56175 -199.25677 767.4691 -199.96244 769.375 -200.625 C 771.28081 -201.28754 771.72915 -202.03987 772.78125 -202.40625 C 773.87287 -202.78636 774.97635 -202.57163 778.84375 -203.9375 C 782.71115 -205.30336 784.1269 -205.76458 784.8125 -206.15625 C 785.51361 -206.55677 786.5133 -207.08923 787.125 -207.75 C 789.09581 -207.80466 790.94195 -208.13463 792.40625 -208.625 C 795.40777 -209.63008 797.3324 -210.24671 799.25 -210.875 C 800.78861 -211.3791 801.42415 -211.92177 802.15625 -212.3125 C 802.38647 -212.44681 802.63215 -212.56623 802.90625 -212.65625 C 804.00457 -213.01673 805.0877 -212.73762 809 -213.96875 C 812.91231 -215.19988 814.366 -215.6417 815.0625 -216 C 815.75641 -216.35697 816.6926 -216.79261 817.3125 -217.40625 C 819.17771 -217.42891 820.94835 -217.67308 822.34375 -218.09375 C 825.37415 -219.00729 827.33615 -219.52385 829.28125 -220.0625 C 831.22637 -220.60114 831.70745 -221.32702 832.78125 -221.625 C 833.89527 -221.93415 835.00125 -221.61761 838.96875 -222.65625 C 842.93625 -223.69488 844.38625 -224.08898 845.09375 -224.40625 C 845.82855 -224.73584 846.90765 -225.15997 847.53125 -225.78125 C 849.52907 -225.66525 851.3887 -225.80134 852.875 -226.15625 C 855.95311 -226.89125 857.9584 -227.25719 859.9375 -227.65625 C 861.52541 -227.97643 862.1818 -228.4468 862.9375 -228.75 C 863.17501 -228.8568 863.4044 -228.94276 863.6875 -229 C 864.82091 -229.22919 865.99215 -228.79107 870.03125 -229.5 C 874.07067 -230.20893 875.5315 -230.42709 876.25 -230.6875 C 876.96581 -230.94694 877.95435 -231.25474 878.59375 -231.78125 C 880.51795 -231.54176 882.34165 -231.55672 883.78125 -231.78125 C 886.90767 -232.26887 888.9358 -232.48192 890.9375 -232.75 C 892.93921 -233.01807 893.42625 -233.69514 894.53125 -233.84375 C 895.67767 -233.99793 896.8071 -233.54218 900.875 -234.0625 C 904.94281 -234.58282 906.43525 -234.75823 907.15625 -235 C 907.89337 -235.24714 908.95435 -235.58623 909.59375 -236.125 C 911.64375 -235.78947 913.56745 -235.72704 915.09375 -235.90625 C 918.23595 -236.27521 920.27375 -236.46561 922.28125 -236.6875 C 923.89207 -236.86552 924.5459 -237.2957 925.3125 -237.53125 C 925.55341 -237.61677 925.80655 -237.68685 926.09375 -237.71875 C 927.24345 -237.84647 928.39505 -237.3721 932.46875 -237.84375 C 936.54245 -238.3154 938.0278 -238.45435 938.75 -238.6875 C 939.46941 -238.91977 940.45025 -239.16096 941.09375 -239.65625 C 943.03005 -239.32279 944.8638 -239.25201 946.3125 -239.40625 C 949.45851 -239.7412 951.49 -239.92484 953.5 -240.125 C 955.50991 -240.32514 955.98415 -240.95139 957.09375 -241.0625 C 958.24485 -241.17778 959.39025 -240.69744 963.46875 -241.125 C 967.54725 -241.55256 969.05765 -241.68709 969.78125 -241.90625 C 970.52047 -242.13011 971.57685 -242.4195 972.21875 -242.9375 C 974.27575 -242.53883 976.2206 -242.4441 977.75 -242.59375 C 980.89871 -242.90185 982.9258 -243.067 984.9375 -243.25 C 986.55151 -243.39682 987.20055 -243.81055 987.96875 -244.03125 C 988.21005 -244.11211 988.4623 -244.16116 988.75 -244.1875 C 989.90211 -244.29295 991.0429 -243.79475 995.125 -244.1875 C 999.20711 -244.58025 1000.7139 -244.71834 1001.4375 -244.9375 C 1002.1584 -245.15583 1003.1371 -245.3852 1003.7812 -245.875 C 1005.7193 -245.52501 1007.5501 -245.42062 1009 -245.5625 C 1012.1487 -245.8706 1014.1758 -246.03575 1016.1875 -246.21875 C 1018.1991 -246.40174 1018.7017 -247.05677 1019.8125 -247.15625 C 1020.9648 -247.25948 1022.1047 -246.77142 1026.1875 -247.15625 C 1030.2704 -247.54107 1031.7762 -247.65725 1032.5 -247.875 C 1033.2393 -248.09743 1034.2956 -248.38949 1034.9375 -248.90625 C 1036.9949 -248.50448 1038.9404 -248.40292 1040.4688 -248.5625 C 1043.6153 -248.89102 1045.6458 -249.0852 1047.6562 -249.28125 C 1049.2692 -249.43854 1049.9219 -249.91273 1050.6875 -250.15625 C 1050.9282 -250.24429 1051.1507 -250.27762 1051.4375 -250.3125 C 1052.5858 -250.4522 1053.7542 -249.97259 1057.8125 -250.5625 C 1061.8708 -251.15242 1063.3743 -251.33964 1064.0938 -251.59375 C 1064.8104 -251.84691 1065.7684 -252.15182 1066.4062 -252.6875 C 1068.3259 -252.47556 1070.1262 -252.53609 1071.5625 -252.78125 C 1074.6816 -253.31365 1076.6741 -253.70986 1078.6562 -254.09375 C 1080.6383 -254.47762 1081.1305 -255.1334 1082.2188 -255.375 C 1083.3475 -255.62566 1084.489 -255.25871 1088.4688 -256.25 C 1092.4483 -257.24127 1093.8983 -257.6693 1094.5938 -258.03125 C 1095.316 -258.40725 1096.3555 -258.90183 1096.9688 -259.5625 C 1098.9317 -259.57454 1100.7625 -259.85355 1102.1875 -260.40625 C 1105.1387 -261.55085 1107.0607 -262.27567 1108.875 -263.15625 C 1110.3307 -263.86277 1111.1941 -264.85828 1111.4062 -265.15625 C 1111.6185 -265.4542 1111.5051 -265.8848 1111.5312 -265.90625 C 1111.5742 -265.94148 1111.8716 -266.00028 1112.0312 -266.34375 C 1112.8902 -268.19082 1114.3544 -271.97139 1114.4688 -272.65625 C 1114.5825 -273.33839 1114.6368 -274.00902 1114.6875 -274.40625 C 1114.7169 -274.63575 1114.5404 -275.28515 1114.5625 -275.34375 C 1114.5934 -275.42579 1114.8508 -275.59432 1114.9062 -275.84375 C 1115.1725 -277.04206 1114.9953 -278.05111 1114.7812 -279.46875 C 1114.5673 -280.88638 1113.8096 -284.08338 1113.1562 -284.9375 C 1112.4973 -285.79922 1111.9314 -285.94801 1111.4062 -285.9375 z "
2517 style="display:inline;fill:#bcb786;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
2518 id="path7423-8"
2519 d="m 1111.4062,-285.9375 -3.9374,1.875 c -0.041,0.0102 -0.1,0.0205 -0.125,0.0312 -0.4188,0.21285 -0.1647,0.10058 -0.6563,0.3125 -0.4861,0.20956 -1.7376,0.58419 -4.0937,1.46875 -3.3312,1.25058 -5.8043,2.14984 -7,3.0625 -1.5362,0.0213 -3.7205,0.23331 -5.6563,0.71875 -2.9815,0.74767 -4.8552,1.17401 -6.75,1.59375 -1.8948,0.41973 -1.6755,0.64219 -2.875,0.875 -1.2966,0.25167 -1.7214,-0.009 -5.4375,0.78125 -3.4899,0.74215 -8.8948,1.93107 -10.1562,2.6875 -1.584,-0.18078 -3.8675,-0.32178 -5.8438,-0.0312 -3.0404,0.44696 -4.9162,0.67276 -6.8438,0.90625 -0.6554,0.0794 -1.041,0.20078 -1.3437,0.28125 -0.4262,0.13166 -0.6858,0.26002 -1.375,0.34375 -1.3116,0.15937 -1.7622,-0.15683 -5.5313,0.28125 -3.5539,0.41309 -9.0054,1.27282 -10.25,1.9375 -1.599,-0.29729 -3.8577,-0.53419 -5.8437,-0.34375 -3.0588,0.29332 -4.972,0.48399 -6.9063,0.65625 -1.9342,0.17227 -1.6886,0.42237 -2.9062,0.53125 -1.3162,0.1177 -1.7598,-0.16363 -5.5312,0.25 -3.5421,0.38845 -9.0079,1.20927 -10.2813,1.875 -1.5989,-0.29469 -3.8872,-0.50701 -5.875,-0.3125 -3.05829,0.29925 -4.9412,0.48024 -6.875,0.65625 -0.65749,0.0598 -1.04005,0.17856 -1.34375,0.25 -0.4277,0.11896 -0.6835,0.21807 -1.375,0.28125 -1.316,0.12026 -1.75975,-0.19488 -5.53125,0.21875 -3.55619,0.39002 -9.0056,1.23916 -10.25,1.90625 -1.59869,-0.29418 -3.85985,-0.52372 -5.84375,-0.3125 -3.0557,0.32533 -4.97405,0.52624 -6.90625,0.71875 -1.93219,0.19251 -1.68975,0.44088 -2.90625,0.5625 -1.31488,0.13147 -1.76305,-0.16454 -5.53125,0.28125 -3.53889,0.41866 -8.9777,1.29217 -10.25,1.96875 -1.59759,-0.28104 -3.85995,-0.42043 -5.84375,-0.1875 -3.05198,0.35837 -4.945,0.56786 -6.875,0.78125 -0.65618,0.0726 -1.04065,0.17269 -1.34375,0.25 -0.42679,0.12723 -0.6849,0.2672 -1.375,0.34375 -1.31339,0.14569 -1.76735,-0.17402 -5.53125,0.3125 -3.54888,0.45876 -8.97865,1.41902 -10.21875,2.125 -1.59309,-0.24424 -3.8338,-0.38135 -5.8125,-0.125 -3.04759,0.39482 -4.9507,0.64845 -6.875,0.90625 -1.92429,0.25779 -1.7261,0.49353 -2.9375,0.65625 -1.30949,0.1759 -1.7472,-0.10438 -5.5,0.46875 -3.52429,0.53824 -8.9232,1.69917 -10.1875,2.4375 -1.58749,-0.20354 -3.8455,-0.25473 -5.8125,0.0937 -3.02619,0.53612 -4.8989,0.86169 -6.8125,1.1875 -0.65059,0.11077 -1.0137,0.27094 -1.3125,0.375 -0.42069,0.16488 -0.66345,0.3313 -1.34375,0.46875 -1.2947,0.26159 -1.7271,-0.006 -5.4375,0.8125 -3.49848,0.77195 -8.8459,2.38293 -10.0625,3.21875 -1.5629,-0.0774 -3.7575,0.0853 -5.6875,0.59375 -2.97238,0.78313 -4.8177,1.23209 -6.6875,1.75 -1.87,0.5179 -1.66665,0.76728 -2.84375,1.09375 -1.27249,0.3529 -1.69705,0.10709 -5.34375,1.1875 -3.42468,1.01463 -8.6494,2.93317 -9.875,3.84375 -1.53878,0.0127 -3.7198,0.27222 -5.625,0.875 -2.93098,0.92734 -4.75035,1.45842 -6.59375,2.0625 -0.62679,0.20538 -0.99165,0.39258 -1.28125,0.53125 -0.40758,0.21361 -0.6533,0.40875 -1.3125,0.625 -1.2545,0.41154 -1.68615,0.18904 -5.28125,1.4375 -3.38989,1.17717 -8.59495,3.2137 -9.78125,4.15625 -1.52388,0.0597 -3.65005,0.39487 -5.53125,1.0625 -2.89739,1.02829 -4.69905,1.67548 -6.53125,2.3125 -1.8322,0.63701 -1.62785,0.84854 -2.78125,1.25 -1.24679,0.43396 -1.66355,0.19972 -5.21875,1.5625 -3.3387,1.2798 -8.4871,3.48255 -9.6875,4.46875 -1.50718,0.10769 -3.6357,0.4988 -5.5,1.21875 -2.86818,1.1076 -4.6239,1.78156 -6.4375,2.46875 -0.6167,0.23363 -0.99645,0.44203 -1.28125,0.59375 10e-6,0 0,0.0295 0,0.0312 l -8,3.1875 1.8125,14.71875 c -0.25799,-0.0608 6.1875,3.3125 6.1875,3.3125 0.22641,-0.14468 0.44895,-0.27261 0.71875,-0.375 1.08052,-0.40998 2.1716,-0.21577 6,-1.6875 3.82852,-1.47174 5.22405,-2.00498 5.90625,-2.40625 0.67961,-0.39978 1.61175,-0.87937 2.21875,-1.53125 1.82692,-0.13775 3.5708,-0.49323 4.9375,-1 2.968,-1.10052 4.87535,-1.80619 6.78125,-2.46875 1.90581,-0.66254 2.35415,-1.41487 3.40625,-1.78125 1.09162,-0.38011 2.1951,-0.16538 6.0625,-1.53125 3.8674,-1.36586 5.28315,-1.82708 5.96875,-2.21875 0.70111,-0.40052 1.7008,-0.93298 2.3125,-1.59375 1.97081,-0.0547 3.81695,-0.38463 5.28125,-0.875 3.00152,-1.00508 4.92615,-1.62171 6.84375,-2.25 1.53861,-0.5041 2.17415,-1.04677 2.90625,-1.4375 0.23022,-0.13431 0.4759,-0.25373 0.75,-0.34375 1.09832,-0.36048 2.18145,-0.0814 6.09375,-1.3125 3.91231,-1.23113 5.366,-1.67295 6.0625,-2.03125 0.69391,-0.35697 1.6301,-0.79261 2.25,-1.40625 1.86521,-0.0227 3.63585,-0.26683 5.03125,-0.6875 3.0304,-0.91354 4.9924,-1.4301 6.9375,-1.96875 1.94512,-0.53864 2.4262,-1.26452 3.5,-1.5625 1.11402,-0.30915 2.22,0.007 6.1875,-1.03125 3.9675,-1.03863 5.4175,-1.43273 6.125,-1.75 0.7348,-0.32959 1.8139,-0.75372 2.4375,-1.375 1.99782,0.116 3.85745,-0.0201 5.34375,-0.375 3.07811,-0.735 5.0834,-1.10094 7.0625,-1.5 1.58791,-0.32018 2.2443,-0.79055 3,-1.09375 0.23751,-0.1068 0.4669,-0.19276 0.75,-0.25 1.13341,-0.22919 2.30465,0.20893 6.34375,-0.5 4.03942,-0.70893 5.50025,-0.92709 6.21875,-1.1875 0.71581,-0.25944 1.70435,-0.56724 2.34375,-1.09375 1.9242,0.23949 3.7479,0.22453 5.1875,0 3.12642,-0.48762 5.15455,-0.70067 7.15625,-0.96875 2.00171,-0.26807 2.48875,-0.94514 3.59375,-1.09375 1.14642,-0.15418 2.27585,0.30157 6.34375,-0.21875 4.06781,-0.52032 5.56025,-0.69573 6.28125,-0.9375 0.73712,-0.24714 1.7981,-0.58623 2.4375,-1.125 2.05,0.33553 3.9737,0.39796 5.5,0.21875 3.1422,-0.36896 5.18,-0.55936 7.1875,-0.78125 1.61082,-0.17802 2.26465,-0.6082 3.03125,-0.84375 0.24091,-0.0855 0.49405,-0.1556 0.78125,-0.1875 1.1497,-0.12772 2.3013,0.34665 6.375,-0.125 4.0737,-0.47165 5.55905,-0.6106 6.28125,-0.84375 0.71941,-0.23227 1.70025,-0.47346 2.34375,-0.96875 1.9363,0.33346 3.77005,0.40424 5.21875,0.25 3.14601,-0.33495 5.1775,-0.51859 7.1875,-0.71875 2.00991,-0.20014 2.48415,-0.82639 3.59375,-0.9375 1.1511,-0.11528 2.2965,0.36506 6.375,-0.0625 4.0785,-0.42756 5.5889,-0.56209 6.3125,-0.78125 0.73922,-0.22386 1.7956,-0.51325 2.4375,-1.03125 2.057,0.39867 4.00185,0.4934 5.53125,0.34375 3.14871,-0.3081 5.1758,-0.47325 7.1875,-0.65625 1.61401,-0.14682 2.26305,-0.56055 3.03125,-0.78125 0.2413,-0.0809 0.49355,-0.12991 0.78125,-0.15625 1.15211,-0.10545 2.2929,0.39275 6.375,0 4.08211,-0.39275 5.5889,-0.53084 6.3125,-0.75 0.7209,-0.21833 1.6996,-0.4477 2.3437,-0.9375 1.9381,0.34999 3.7689,0.45438 5.2188,0.3125 3.1487,-0.3081 5.1758,-0.47325 7.1875,-0.65625 2.0116,-0.18299 2.5142,-0.83802 3.625,-0.9375 1.1523,-0.10323 2.2922,0.38483 6.375,0 4.0829,-0.38482 5.5887,-0.501 6.3125,-0.71875 0.7393,-0.22243 1.7956,-0.51449 2.4375,-1.03125 2.0574,0.40177 4.0029,0.50333 5.5313,0.34375 3.1465,-0.32852 5.177,-0.5227 7.1874,-0.71875 1.613,-0.15729 2.2657,-0.63148 3.0313,-0.875 0.2407,-0.088 0.4632,-0.12137 0.75,-0.15625 1.1483,-0.1397 2.3167,0.33991 6.375,-0.25 4.0583,-0.58992 5.5618,-0.77714 6.2813,-1.03125 0.7166,-0.25316 1.6746,-0.55807 2.3124,-1.09375 1.9197,0.21194 3.72,0.15141 5.1563,-0.0937 3.1191,-0.5324 5.1116,-0.92861 7.0937,-1.3125 1.9821,-0.38387 2.4743,-1.03965 3.5626,-1.28125 1.1287,-0.25066 2.2702,0.11629 6.25,-0.875 3.9795,-0.99127 5.4295,-1.4193 6.125,-1.78125 0.7222,-0.376 1.7617,-0.87058 2.375,-1.53125 1.9629,-0.012 3.7937,-0.29105 5.2187,-0.84375 2.9512,-1.1446 4.8732,-1.86942 6.6875,-2.75 1.4557,-0.70652 2.3191,-1.70203 2.5312,-2 0.2123,-0.29795 0.099,-0.72855 0.125,-0.75 0.043,-0.0352 0.3404,-0.094 0.5,-0.4375 0.859,-1.84707 2.3232,-5.62764 2.4376,-6.3125 0.1137,-0.68214 0.168,-1.35277 0.2187,-1.75 0.029,-0.2295 -0.1471,-0.8789 -0.125,-0.9375 0.031,-0.082 0.2883,-0.25057 0.3437,-0.5 0.2663,-1.19831 0.089,-2.20736 -0.125,-3.625 -0.2139,-1.41763 -0.9716,-4.61463 -1.625,-5.46875 -0.6589,-0.86172 -1.2248,-1.01051 -1.75,-1 z"
2520 transform="translate(0.08004571,-0.03125)" />
2521 </clipPath>
2522 <filter
2523 inkscape:collect="always"
2524 id="filter7001-5">
2525 <feGaussianBlur
2526 inkscape:collect="always"
2527 stdDeviation="1.1675612"
2528 id="feGaussianBlur7003-7" />
2529 </filter>
2530 <filter
2531 inkscape:collect="always"
2532 id="filter6949-4"
2533 x="-0.10294895"
2534 width="1.2058979"
2535 y="-0.34224695"
2536 height="1.6844939">
2537 <feGaussianBlur
2538 inkscape:collect="always"
2539 stdDeviation="1.1675612"
2540 id="feGaussianBlur6951-1" />
2541 </filter>
2542 <filter
2543 inkscape:collect="always"
2544 id="filter6961-8"
2545 x="-0.09919104"
2546 width="1.1983821"
2547 y="-0.22643611"
2548 height="1.4528722">
2549 <feGaussianBlur
2550 inkscape:collect="always"
2551 stdDeviation="1.1675612"
2552 id="feGaussianBlur6963-5" />
2553 </filter>
2554 <filter
2555 inkscape:collect="always"
2556 id="filter6957-9"
2557 x="-0.098213427"
2558 width="1.1964267"
2559 y="-0.19838208"
2560 height="1.3967642">
2561 <feGaussianBlur
2562 inkscape:collect="always"
2563 stdDeviation="1.1675612"
2564 id="feGaussianBlur6959-7" />
2565 </filter>
2566 <filter
2567 inkscape:collect="always"
2568 id="filter6997-5">
2569 <feGaussianBlur
2570 inkscape:collect="always"
2571 stdDeviation="1.1675612"
2572 id="feGaussianBlur6999-3" />
2573 </filter>
2574 <filter
2575 inkscape:collect="always"
2576 id="filter6953-8"
2577 x="-0.098320946"
2578 width="1.1966419"
2579 y="-0.19750816"
2580 height="1.3950163">
2581 <feGaussianBlur
2582 inkscape:collect="always"
2583 stdDeviation="1.1675612"
2584 id="feGaussianBlur6955-8" />
2585 </filter>
2586 <filter
2587 inkscape:collect="always"
2588 id="filter6993-3"
2589 x="-0.098213255"
2590 width="1.1964265"
2591 y="-0.19838208"
2592 height="1.3967642">
2593 <feGaussianBlur
2594 inkscape:collect="always"
2595 stdDeviation="1.1675612"
2596 id="feGaussianBlur6995-1" />
2597 </filter>
2598 <filter
2599 inkscape:collect="always"
2600 id="filter6989-8"
2601 x="-0.098428868"
2602 width="1.1968577"
2603 y="-0.20287035"
2604 height="1.4057407">
2605 <feGaussianBlur
2606 inkscape:collect="always"
2607 stdDeviation="1.1675612"
2608 id="feGaussianBlur6991-9" />
2609 </filter>
2610 <filter
2611 inkscape:collect="always"
2612 id="filter6985-6"
2613 x="-0.098428868"
2614 width="1.1968577"
2615 y="-0.20853186"
2616 height="1.4170637">
2617 <feGaussianBlur
2618 inkscape:collect="always"
2619 stdDeviation="1.1675612"
2620 id="feGaussianBlur6987-4" />
2621 </filter>
2622 <filter
2623 inkscape:collect="always"
2624 id="filter6965-3"
2625 x="-0.099081434"
2626 width="1.1981629"
2627 y="-0.22529824"
2628 height="1.4505965">
2629 <feGaussianBlur
2630 inkscape:collect="always"
2631 stdDeviation="1.1675612"
2632 id="feGaussianBlur6967-3" />
2633 </filter>
2634 <filter
2635 inkscape:collect="always"
2636 id="filter6981-3"
2637 x="-0.10052545"
2638 width="1.2010509"
2639 y="-0.2742162"
2640 height="1.5484324">
2641 <feGaussianBlur
2642 inkscape:collect="always"
2643 stdDeviation="1.1675612"
2644 id="feGaussianBlur6983-8" />
2645 </filter>
2646 <filter
2647 inkscape:collect="always"
2648 id="filter6977-6"
2649 x="-0.10224481"
2650 width="1.2044896"
2651 y="-0.32371372"
2652 height="1.6474274">
2653 <feGaussianBlur
2654 inkscape:collect="always"
2655 stdDeviation="1.1675612"
2656 id="feGaussianBlur6979-0" />
2657 </filter>
2658 <filter
2659 inkscape:collect="always"
2660 id="filter6973-4"
2661 x="-0.10330495"
2662 width="1.2066098"
2663 y="-0.36439717"
2664 height="1.7287945">
2665 <feGaussianBlur
2666 inkscape:collect="always"
2667 stdDeviation="1.1675612"
2668 id="feGaussianBlur6975-8" />
2669 </filter>
2670 <filter
2671 inkscape:collect="always"
2672 id="filter6969-8"
2673 x="-0.10450897"
2674 width="1.2090179"
2675 y="-0.40468886"
2676 height="1.8093777">
2677 <feGaussianBlur
2678 inkscape:collect="always"
2679 stdDeviation="1.1675612"
2680 id="feGaussianBlur6971-8" />
2681 </filter>
2682 <filter
2683 inkscape:collect="always"
2684 id="filter7345-9">
2685 <feGaussianBlur
2686 inkscape:collect="always"
2687 stdDeviation="1.7233839"
2688 id="feGaussianBlur7347-7" />
2689 </filter>
2690 <filter
2691 inkscape:collect="always"
2692 id="filter7333-7">
2693 <feGaussianBlur
2694 inkscape:collect="always"
2695 stdDeviation="0.35026836"
2696 id="feGaussianBlur7335-6" />
2697 </filter>
2698 <filter
2699 inkscape:collect="always"
2700 id="filter7285-4"
2701 x="-0.030884685"
2702 width="1.0617694"
2703 y="-0.10267408"
2704 height="1.2053483">
2705 <feGaussianBlur
2706 inkscape:collect="always"
2707 stdDeviation="0.35026836"
2708 id="feGaussianBlur7287-3" />
2709 </filter>
2710 <filter
2711 inkscape:collect="always"
2712 id="filter7289-0">
2713 <feGaussianBlur
2714 inkscape:collect="always"
2715 stdDeviation="0.35026836"
2716 id="feGaussianBlur7291-3" />
2717 </filter>
2718 <filter
2719 inkscape:collect="always"
2720 id="filter7293-0">
2721 <feGaussianBlur
2722 inkscape:collect="always"
2723 stdDeviation="0.35026836"
2724 id="feGaussianBlur7295-9" />
2725 </filter>
2726 <filter
2727 inkscape:collect="always"
2728 id="filter7337-2">
2729 <feGaussianBlur
2730 inkscape:collect="always"
2731 stdDeviation="0.35026836"
2732 id="feGaussianBlur7339-5" />
2733 </filter>
2734 <filter
2735 inkscape:collect="always"
2736 id="filter7297-4">
2737 <feGaussianBlur
2738 inkscape:collect="always"
2739 stdDeviation="0.35026836"
2740 id="feGaussianBlur7299-0" />
2741 </filter>
2742 <filter
2743 inkscape:collect="always"
2744 id="filter7301-5">
2745 <feGaussianBlur
2746 inkscape:collect="always"
2747 stdDeviation="0.35026836"
2748 id="feGaussianBlur7303-9" />
2749 </filter>
2750 <filter
2751 inkscape:collect="always"
2752 id="filter7305-4">
2753 <feGaussianBlur
2754 inkscape:collect="always"
2755 stdDeviation="0.35026836"
2756 id="feGaussianBlur7307-6" />
2757 </filter>
2758 <filter
2759 inkscape:collect="always"
2760 id="filter7309-9">
2761 <feGaussianBlur
2762 inkscape:collect="always"
2763 stdDeviation="0.35026836"
2764 id="feGaussianBlur7311-2" />
2765 </filter>
2766 <filter
2767 inkscape:collect="always"
2768 id="filter7313-2">
2769 <feGaussianBlur
2770 inkscape:collect="always"
2771 stdDeviation="0.35026836"
2772 id="feGaussianBlur7315-4" />
2773 </filter>
2774 <filter
2775 inkscape:collect="always"
2776 id="filter7317-7">
2777 <feGaussianBlur
2778 inkscape:collect="always"
2779 stdDeviation="0.35026836"
2780 id="feGaussianBlur7319-7" />
2781 </filter>
2782 <filter
2783 inkscape:collect="always"
2784 id="filter7321-5">
2785 <feGaussianBlur
2786 inkscape:collect="always"
2787 stdDeviation="0.35026836"
2788 id="feGaussianBlur7323-4" />
2789 </filter>
2790 <filter
2791 inkscape:collect="always"
2792 id="filter7329-8"
2793 x="-0.030991485"
2794 width="1.061983"
2795 y="-0.10931916"
2796 height="1.2186383">
2797 <feGaussianBlur
2798 inkscape:collect="always"
2799 stdDeviation="0.35026836"
2800 id="feGaussianBlur7331-1" />
2801 </filter>
2802 <filter
2803 inkscape:collect="always"
2804 id="filter7325-2"
2805 x="-0.031352691"
2806 width="1.0627054"
2807 y="-0.12140666"
2808 height="1.2428133">
2809 <feGaussianBlur
2810 inkscape:collect="always"
2811 stdDeviation="0.35026836"
2812 id="feGaussianBlur7327-8" />
2813 </filter>
2814 <filter
2815 inkscape:collect="always"
2816 id="filter9048-9"
2817 x="-0.40879121"
2818 width="1.8175824"
2819 y="-0.71538466"
2820 height="2.4307692">
2821 <feGaussianBlur
2822 inkscape:collect="always"
2823 stdDeviation="21.92031"
2824 id="feGaussianBlur9050-3" />
2825 </filter>
2826 <clipPath
2827 clipPathUnits="userSpaceOnUse"
2828 id="clipPath3631-6">
2829 <path
2830 style="display:inline;opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
2831 d="m 760.16396,935.83377 c 6.7941,18.90279 10.49369,33.29969 11.8903,51.21189 1.39662,17.91234 -3.78268,51.80084 -2.90046,70.65614 0.88175,18.8452 8.13369,40.099 27.34463,48.9689 19.41887,8.9658 49.31924,10.2113 74.11984,-3.1456 24.8006,-13.357 57.40102,-70.3255 70.97426,-97.3087 13.62385,-27.08394 38.76107,-114.49737 44.6608,-149.76859 5.89973,-35.27121 2.55054,-41.30077 -4.61748,-49.05549 2.6403,-27.84015 -1.49972,-54.93543 13.10969,-87.18618 -30.24901,11.8257 -37.38229,40.1607 -48.31889,65.50508 -8.00091,-50.93293 0.20916,-71.27319 3.31889,-101.21936 -29.06476,14.77791 -42.86151,47.11402 -45,92.85714 -10.92395,-1.3042 -21.39144,-4.43423 -33.57143,-0.71429 -0.26404,-46.02334 -1.46356,-76.88941 8.91063,-114.20649 -53.25547,21.02686 -62.94728,106.5941 -56.05349,112.77792 -10.88282,0.535 -21.37108,-1.2973 -32.85714,2.85715 0.63892,-42.57135 -0.26046,-84.90861 -30,-122.85715 0,0 -30.95806,80.92234 -31.42857,103.57143 -0.47051,22.64909 9.45159,40.16588 9.45159,40.16588 0,0 -8.56807,36.74051 -6.29859,58.23223 2.29585,21.74146 20.4429,59.67617 27.26542,78.65809 z"
2832 id="path3633-8"
2833 sodipodi:nodetypes="czzzzzzcccccccccczczz"
2834 inkscape:connector-curvature="0" />
2835 </clipPath>
2836 <clipPath
2837 clipPathUnits="userSpaceOnUse"
2838 id="clipPath3677-0">
2839 <path
2840 style="display:inline;opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
2841 d="m 586.13271,997.98981 c 6.7941,18.90279 10.49369,33.29969 11.8903,51.21189 1.39662,17.9123 -3.78268,51.8008 -2.90046,70.6561 0.88175,18.8452 8.13369,40.099 27.34463,48.9689 19.41887,8.9658 49.31924,10.2113 74.11984,-3.1456 24.8006,-13.357 57.40102,-70.3255 70.97426,-97.3087 13.62385,-27.0839 38.76107,-114.49733 44.6608,-149.76855 5.89973,-35.27121 2.55054,-41.30077 -4.61748,-49.05549 2.6403,-27.84015 -1.49972,-54.93543 13.10969,-87.18618 -30.24901,11.8257 -37.38229,40.1607 -48.31889,65.50508 -8.00091,-50.93293 0.20916,-71.27319 3.31889,-101.21936 -29.06476,14.77791 -42.86151,47.11402 -45,92.85714 -10.92395,-1.3042 -21.39144,-4.43423 -33.57143,-0.71429 -0.26404,-46.02334 -1.46356,-76.88941 8.91063,-114.20649 -53.25547,21.02686 -62.94728,106.5941 -56.05349,112.77792 -10.88282,0.535 -21.37108,-1.2973 -32.85714,2.85715 0.63892,-42.57135 -0.26046,-84.90861 -30,-122.85715 0,0 -30.95806,80.92234 -31.42857,103.57143 -0.47051,22.64909 9.45159,40.16588 9.45159,40.16588 0,0 -8.56807,36.74051 -6.29859,58.23223 2.29585,21.74146 20.4429,59.67617 27.26542,78.65809 z"
2842 id="path3679-2"
2843 sodipodi:nodetypes="czzzzzzcccccccccczczz"
2844 inkscape:connector-curvature="0" />
2845 </clipPath>
2846 <filter
2847 inkscape:collect="always"
2848 id="filter3898-1">
2849 <feGaussianBlur
2850 inkscape:collect="always"
2851 stdDeviation="10.892985"
2852 id="feGaussianBlur3900-0" />
2853 </filter>
2854 <clipPath
2855 clipPathUnits="userSpaceOnUse"
2856 id="clipPath3622-5">
2857 <path
2858 style="display:inline;opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
2859 d="m 266.27183,924.57186 c -1.40727,18.80121 -1.1449,32.75103 2.08174,49.30328 3.22665,16.55234 16.40608,45.90736 20.3344,63.18376 3.92622,17.2671 2.69413,38.3096 -12.45944,51.1482 -15.31761,12.9774 -42.05127,21.5989 -67.8323,15.7338 -25.78106,-5.8653 -69.54907,-49.2234 -88.59019,-70.2283 C 100.6939,1012.6293 56.045183,939.86194 41.867508,909.43681 27.689836,879.01169 29.207903,872.71824 33.747793,863.90708 24.381071,839.38658 21.334081,813.84027 0.03533552,788.33044 30.360815,791.44488 43.915625,815.28677 60.161025,835.47019 54.631129,787.39416 42.10631,771.05369 31.787073,744.74589 c 29.994295,6.08166 50.57936,31.8724 63.979783,72.7125 9.554154,-3.91791 18.237764,-9.37294 30.187414,-9.0612 -11.2975,-41.6958 -17.94946,-69.91584 -36.687255,-101.06994 53.441965,5.67033 83.657025,80.63932 78.971425,87.9608 9.97797,-2.24399 19.00565,-6.53038 30.43653,-5.65167 -11.24896,-38.34702 -21.04781,-76.8679 -3.65971,-118.64818 0,0 48.28678,65.43687 54.38966,85.80577 6.10287,20.36891 1.51881,38.70052 1.51881,38.70052 0,0 16.95957,31.08529 20.29392,51.09413 3.3731,20.24135 -3.53269,59.10332 -4.94582,77.98324 z"
2860 id="path3624-1"
2861 sodipodi:nodetypes="czzzzzzcccccccccczczz"
2862 inkscape:connector-curvature="0" />
2863 </clipPath>
2864 <filter
2865 inkscape:collect="always"
2866 id="filter9024-1"
2867 x="-0.55453134"
2868 width="2.1090627"
2869 y="-0.51434779"
2870 height="2.0286956">
2871 <feGaussianBlur
2872 inkscape:collect="always"
2873 stdDeviation="20.912684"
2874 id="feGaussianBlur9026-0" />
2875 </filter>
2876 <filter
2877 inkscape:collect="always"
2878 id="filter9020-8"
2879 x="-0.32861114"
2880 width="1.6572223"
2881 y="-0.182"
2882 height="1.364">
2883 <feGaussianBlur
2884 inkscape:collect="always"
2885 stdDeviation="20.912684"
2886 id="feGaussianBlur9022-5" />
2887 </filter>
2888 <filter
2889 inkscape:collect="always"
2890 id="filter9044-0"
2891 x="-0.32631579"
2892 width="1.6526316"
2893 y="-0.84545463"
2894 height="2.6909094">
2895 <feGaussianBlur
2896 inkscape:collect="always"
2897 stdDeviation="21.92031"
2898 id="feGaussianBlur9046-6" />
2899 </filter>
2900 <clipPath
2901 clipPathUnits="userSpaceOnUse"
2902 id="clipPath4177-4">
2903 <path
2904 sodipodi:nodetypes="czzzzzzcccccccccczczz"
2905 id="path4179-6"
2906 d="m 586.13271,997.98981 c 6.7941,18.90279 10.49369,33.29969 11.8903,51.21189 1.39662,17.9123 -3.78268,51.8008 -2.90046,70.6561 0.88175,18.8452 8.13369,40.099 27.34463,48.9689 19.41887,8.9658 49.31924,10.2113 74.11984,-3.1456 24.8006,-13.357 57.40102,-70.3255 70.97426,-97.3087 13.62385,-27.0839 38.76107,-114.49733 44.6608,-149.76855 5.89973,-35.27121 2.55054,-41.30077 -4.61748,-49.05549 2.6403,-27.84015 -1.49972,-54.93543 13.10969,-87.18618 -30.24901,11.8257 -37.38229,40.1607 -48.31889,65.50508 -8.00091,-50.93293 0.20916,-71.27319 3.31889,-101.21936 -29.06476,14.77791 -42.86151,47.11402 -45,92.85714 -10.92395,-1.3042 -21.39144,-4.43423 -33.57143,-0.71429 -0.26404,-46.02334 -1.46356,-76.88941 8.91063,-114.20649 -53.25547,21.02686 -62.94728,106.5941 -56.05349,112.77792 -10.88282,0.535 -21.37108,-1.2973 -32.85714,2.85715 0.63892,-42.57135 -0.26046,-84.90861 -30,-122.85715 0,0 -30.95806,80.92234 -31.42857,103.57143 -0.47051,22.64909 9.45159,40.16588 9.45159,40.16588 0,0 -8.56807,36.74051 -6.29859,58.23223 2.29585,21.74146 20.4429,59.67617 27.26542,78.65809 z"
2907 style="display:inline;opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
2908 inkscape:connector-curvature="0" />
2909 </clipPath>
2910 <filter
2911 inkscape:collect="always"
2912 id="filter4105-2">
2913 <feGaussianBlur
2914 inkscape:collect="always"
2915 stdDeviation="3.8640966"
2916 id="feGaussianBlur4107-5" />
2917 </filter>
2918 <filter
2919 inkscape:collect="always"
2920 id="filter4130-8"
2921 x="-0.49509686"
2922 width="1.9901937"
2923 y="-0.26708817"
2924 height="1.5341763">
2925 <feGaussianBlur
2926 inkscape:collect="always"
2927 stdDeviation="10.730622"
2928 id="feGaussianBlur4132-6" />
2929 </filter>
2930 <filter
2931 inkscape:collect="always"
2932 id="filter4141-2"
2933 x="-0.40611032"
2934 width="1.8122206"
2935 y="-0.30260596"
2936 height="1.6052119">
2937 <feGaussianBlur
2938 inkscape:collect="always"
2939 stdDeviation="9.8586086"
2940 id="feGaussianBlur4143-8" />
2941 </filter>
2942 <clipPath
2943 clipPathUnits="userSpaceOnUse"
2944 id="clipPath8338-4">
2945 <path
2946 sodipodi:nodetypes="czzzzzzcccccccccczczz"
2947 id="path8340-7"
2948 d="m 266.27183,924.57185 c -1.40727,18.80122 -1.1449,32.75104 2.08174,49.30328 3.22666,16.55238 16.40609,45.90737 20.33441,63.18377 3.92621,17.2671 2.69413,38.3097 -12.45944,51.1482 -15.31761,12.9775 -42.05127,21.599 -67.8323,15.7338 -25.78106,-5.8653 -69.54908,-49.2234 -88.59019,-70.2283 C 100.6939,1012.6293 56.045182,939.86193 41.867507,909.4368 27.689835,879.01168 29.207902,872.71823 33.747792,863.90708 24.38107,839.38658 21.33408,813.84026 0.03533448,788.33044 30.360814,791.44487 43.915624,815.28676 60.161024,835.47019 54.631128,787.39416 42.106309,771.05368 31.787072,744.74589 c 29.994295,6.08165 50.57936,31.87239 63.979783,72.7125 9.554155,-3.91792 18.237765,-9.37294 30.187415,-9.0612 -11.2975,-41.6958 -17.94947,-69.91585 -36.687256,-101.06994 53.441966,5.67032 83.657026,80.63932 78.971426,87.9608 9.97797,-2.24399 19.00565,-6.53038 30.43653,-5.65167 -11.24897,-38.34703 -21.04782,-76.8679 -3.65971,-118.64819 0,0 48.28678,65.43688 54.38965,85.80578 6.10288,20.3689 1.51882,38.70051 1.51882,38.70051 0,0 16.95957,31.0853 20.29392,51.09414 3.3731,20.24134 -3.53269,59.10331 -4.94582,77.98323 z"
2949 style="display:inline;opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
2950 inkscape:connector-curvature="0" />
2951 </clipPath>
2952 <filter
2953 inkscape:collect="always"
2954 id="filter8333-2">
2955 <feGaussianBlur
2956 inkscape:collect="always"
2957 stdDeviation="7.18"
2958 id="feGaussianBlur8335-4" />
2959 </filter>
2960 <clipPath
2961 clipPathUnits="userSpaceOnUse"
2962 id="clipPath8359-0">
2963 <path
2964 sodipodi:nodetypes="czzzzzzcccccccccczczz"
2965 id="path8361-6"
2966 d="m 266.27183,924.57185 c -1.40727,18.80122 -1.1449,32.75104 2.08174,49.30328 3.22666,16.55238 16.40609,45.90737 20.33441,63.18377 3.92621,17.2671 2.69413,38.3097 -12.45944,51.1482 -15.31761,12.9775 -42.05127,21.599 -67.8323,15.7338 -25.78106,-5.8653 -69.54908,-49.2234 -88.59019,-70.2283 C 100.6939,1012.6293 56.045182,939.86193 41.867507,909.4368 27.689835,879.01168 29.207902,872.71823 33.747792,863.90708 24.38107,839.38658 21.33408,813.84026 0.03533448,788.33044 30.360814,791.44487 43.915624,815.28676 60.161024,835.47019 54.631128,787.39416 42.106309,771.05368 31.787072,744.74589 c 29.994295,6.08165 50.57936,31.87239 63.979783,72.7125 9.554155,-3.91792 18.237765,-9.37294 30.187415,-9.0612 -11.2975,-41.6958 -17.94947,-69.91585 -36.687256,-101.06994 53.441966,5.67032 83.657026,80.63932 78.971426,87.9608 9.97797,-2.24399 19.00565,-6.53038 30.43653,-5.65167 -11.24897,-38.34703 -21.04782,-76.8679 -3.65971,-118.64819 0,0 48.28678,65.43688 54.38965,85.80578 6.10288,20.3689 1.51882,38.70051 1.51882,38.70051 0,0 16.95957,31.0853 20.29392,51.09414 3.3731,20.24134 -3.53269,59.10331 -4.94582,77.98323 z"
2967 style="display:inline;opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
2968 inkscape:connector-curvature="0" />
2969 </clipPath>
2970 <filter
2971 inkscape:collect="always"
2972 id="filter8354-2">
2973 <feGaussianBlur
2974 inkscape:collect="always"
2975 stdDeviation="6.82"
2976 id="feGaussianBlur8356-9" />
2977 </filter>
2978 <clipPath
2979 clipPathUnits="userSpaceOnUse"
2980 id="clipPath3636-90">
2981 <path
2982 style="display:inline;opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
2983 d="m 760.16396,935.83377 c 6.7941,18.90279 10.49369,33.29969 11.8903,51.21189 1.39662,17.91234 -3.78268,51.80084 -2.90046,70.65614 0.88175,18.8452 8.13369,40.099 27.34463,48.9689 19.41887,8.9658 49.31924,10.2113 74.11984,-3.1456 24.8006,-13.357 57.40102,-70.3255 70.97426,-97.3087 13.62385,-27.08394 38.76107,-114.49737 44.6608,-149.76859 5.89973,-35.27121 2.55054,-41.30077 -4.61748,-49.05549 2.6403,-27.84015 -1.49972,-54.93543 13.10969,-87.18618 -30.24901,11.8257 -37.38229,40.1607 -48.31889,65.50508 -8.00091,-50.93293 0.20916,-71.27319 3.31889,-101.21936 -29.06476,14.77791 -42.86151,47.11402 -45,92.85714 -10.92395,-1.3042 -21.39144,-4.43423 -33.57143,-0.71429 -0.26404,-46.02334 -1.46356,-76.88941 8.91063,-114.20649 -53.25547,21.02686 -62.94728,106.5941 -56.05349,112.77792 -10.88282,0.535 -21.37108,-1.2973 -32.85714,2.85715 0.63892,-42.57135 -0.26046,-84.90861 -30,-122.85715 0,0 -30.95806,80.92234 -31.42857,103.57143 -0.47051,22.64909 9.45159,40.16588 9.45159,40.16588 0,0 -8.56807,36.74051 -6.29859,58.23223 2.29585,21.74146 20.4429,59.67617 27.26542,78.65809 z"
2984 id="path3638-8"
2985 sodipodi:nodetypes="czzzzzzcccccccccczczz"
2986 inkscape:connector-curvature="0" />
2987 </clipPath>
2988 <filter
2989 inkscape:collect="always"
2990 id="filter4185-1">
2991 <feGaussianBlur
2992 inkscape:collect="always"
2993 stdDeviation="3.6164709"
2994 id="feGaussianBlur4187-3" />
2995 </filter>
2996 <clipPath
2997 clipPathUnits="userSpaceOnUse"
2998 id="clipPath8392-1">
2999 <path
3000 sodipodi:nodetypes="czzzzzzcccccccccczczz"
3001 id="path8394-1"
3002 d="m 760.16396,935.83377 c 6.7941,18.90279 10.49369,33.29969 11.8903,51.21189 1.39662,17.91234 -3.78268,51.80084 -2.90046,70.65614 0.88175,18.8452 8.13369,40.099 27.34463,48.9689 19.41887,8.9658 49.31924,10.2113 74.11984,-3.1456 24.8006,-13.357 57.40102,-70.3255 70.97426,-97.3087 13.62385,-27.08394 38.76107,-114.49737 44.6608,-149.76859 5.89973,-35.27121 2.55054,-41.30077 -4.61748,-49.05549 2.6403,-27.84015 -1.49972,-54.93543 13.10969,-87.18618 -30.24901,11.8257 -37.38229,40.1607 -48.31889,65.50508 -8.00091,-50.93293 0.20916,-71.27319 3.31889,-101.21936 -29.06476,14.77791 -42.86151,47.11402 -45,92.85714 -10.92395,-1.3042 -21.39144,-4.43423 -33.57143,-0.71429 -0.26404,-46.02334 -1.46356,-76.88941 8.91063,-114.20649 -53.25547,21.02686 -62.94728,106.5941 -56.05349,112.77792 -10.88282,0.535 -21.37108,-1.2973 -32.85714,2.85715 0.63892,-42.57135 -0.26046,-84.90861 -30,-122.85715 0,0 -30.95806,80.92234 -31.42857,103.57143 -0.47051,22.64909 9.45159,40.16588 9.45159,40.16588 0,0 -8.56807,36.74051 -6.29859,58.23223 2.29585,21.74146 20.4429,59.67617 27.26542,78.65809 z"
3003 style="display:inline;opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3004 inkscape:connector-curvature="0" />
3005 </clipPath>
3006 <filter
3007 inkscape:collect="always"
3008 id="filter8379-0"
3009 x="-0.14413793"
3010 width="1.288276"
3011 y="-0.10278689"
3012 height="1.2055738">
3013 <feGaussianBlur
3014 inkscape:collect="always"
3015 stdDeviation="7.389266"
3016 id="feGaussianBlur8381-3" />
3017 </filter>
3018 <clipPath
3019 clipPathUnits="userSpaceOnUse"
3020 id="clipPath8417-4">
3021 <path
3022 sodipodi:nodetypes="czzzzzzcccccccccczczz"
3023 id="path8419-03"
3024 d="m 760.16396,935.83377 c 6.7941,18.90279 10.49369,33.29969 11.8903,51.21189 1.39662,17.91234 -3.78268,51.80084 -2.90046,70.65614 0.88175,18.8452 8.13369,40.099 27.34463,48.9689 19.41887,8.9658 49.31924,10.2113 74.11984,-3.1456 24.8006,-13.357 57.40102,-70.3255 70.97426,-97.3087 13.62385,-27.08394 38.76107,-114.49737 44.6608,-149.76859 5.89973,-35.27121 2.55054,-41.30077 -4.61748,-49.05549 2.6403,-27.84015 -1.49972,-54.93543 13.10969,-87.18618 -30.24901,11.8257 -37.38229,40.1607 -48.31889,65.50508 -8.00091,-50.93293 0.20916,-71.27319 3.31889,-101.21936 -29.06476,14.77791 -42.86151,47.11402 -45,92.85714 -10.92395,-1.3042 -21.39144,-4.43423 -33.57143,-0.71429 -0.26404,-46.02334 -1.46356,-76.88941 8.91063,-114.20649 -53.25547,21.02686 -62.94728,106.5941 -56.05349,112.77792 -10.88282,0.535 -21.37108,-1.2973 -32.85714,2.85715 0.63892,-42.57135 -0.26046,-84.90861 -30,-122.85715 0,0 -30.95806,80.92234 -31.42857,103.57143 -0.47051,22.64909 9.45159,40.16588 9.45159,40.16588 0,0 -8.56807,36.74051 -6.29859,58.23223 2.29585,21.74146 20.4429,59.67617 27.26542,78.65809 z"
3025 style="display:inline;opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3026 inkscape:connector-curvature="0" />
3027 </clipPath>
3028 <filter
3029 inkscape:collect="always"
3030 id="filter8404-9"
3031 x="-0.090268657"
3032 width="1.1805373"
3033 y="-0.10250848"
3034 height="1.205017">
3035 <feGaussianBlur
3036 inkscape:collect="always"
3037 stdDeviation="5.3457272"
3038 id="feGaussianBlur8406-1" />
3039 </filter>
3040 <linearGradient
3041 inkscape:collect="always"
3042 xlink:href="#linearGradient2843"
3043 id="linearGradient6951"
3044 gradientUnits="userSpaceOnUse"
3045 x1="347.89655"
3046 y1="1070.2124"
3047 x2="275.58191"
3048 y2="867.97992" />
3049 <linearGradient
3050 inkscape:collect="always"
3051 xlink:href="#linearGradient8964"
3052 id="linearGradient6953"
3053 gradientUnits="userSpaceOnUse"
3054 gradientTransform="translate(450.03125,73.843964)"
3055 x1="603.84064"
3056 y1="627.85303"
3057 x2="616.24396"
3058 y2="585.42664" />
3059 <linearGradient
3060 inkscape:collect="always"
3061 xlink:href="#linearGradient8952"
3062 id="linearGradient6955"
3063 gradientUnits="userSpaceOnUse"
3064 gradientTransform="translate(450.03125,73.843964)"
3065 x1="609.31244"
3066 y1="239.46866"
3067 x2="560.83142"
3068 y2="262.86206" />
3069 <linearGradient
3070 inkscape:collect="always"
3071 xlink:href="#linearGradient3961"
3072 id="linearGradient6957"
3073 gradientUnits="userSpaceOnUse"
3074 gradientTransform="translate(450.03125,73.843964)"
3075 x1="398.21429"
3076 y1="343.52289"
3077 x2="379.28571"
3078 y2="265.30862" />
3079 <linearGradient
3080 inkscape:collect="always"
3081 xlink:href="#linearGradient4084"
3082 id="linearGradient6959"
3083 gradientUnits="userSpaceOnUse"
3084 x1="182.35046"
3085 y1="256.11136"
3086 x2="145.53348"
3087 y2="542.20502" />
3088 <linearGradient
3089 inkscape:collect="always"
3090 xlink:href="#linearGradient4084"
3091 id="linearGradient6961"
3092 gradientUnits="userSpaceOnUse"
3093 x1="182.35046"
3094 y1="256.11136"
3095 x2="145.53348"
3096 y2="542.20502" />
3097 <linearGradient
3098 inkscape:collect="always"
3099 xlink:href="#linearGradient4478"
3100 id="linearGradient6963"
3101 gradientUnits="userSpaceOnUse"
3102 x1="412.08926"
3103 y1="404.91574"
3104 x2="417.375"
3105 y2="401.82648" />
3106 <linearGradient
3107 inkscape:collect="always"
3108 xlink:href="#linearGradient4478"
3109 id="linearGradient6965"
3110 gradientUnits="userSpaceOnUse"
3111 x1="411.91071"
3112 y1="404.91577"
3113 x2="417.375"
3114 y2="401.82648" />
3115 <linearGradient
3116 inkscape:collect="always"
3117 xlink:href="#linearGradient4478"
3118 id="linearGradient6967"
3119 gradientUnits="userSpaceOnUse"
3120 x1="411.91071"
3121 y1="405.54077"
3122 x2="417.375"
3123 y2="401.82648" />
3124 <linearGradient
3125 inkscape:collect="always"
3126 xlink:href="#linearGradient4478"
3127 id="linearGradient6969"
3128 gradientUnits="userSpaceOnUse"
3129 x1="412.08926"
3130 y1="405.54077"
3131 x2="417.375"
3132 y2="401.82648" />
3133 <linearGradient
3134 inkscape:collect="always"
3135 xlink:href="#linearGradient4478"
3136 id="linearGradient6971"
3137 gradientUnits="userSpaceOnUse"
3138 x1="411.73212"
3139 y1="405.54077"
3140 x2="417.375"
3141 y2="401.82648" />
3142 <linearGradient
3143 inkscape:collect="always"
3144 xlink:href="#linearGradient3660"
3145 id="linearGradient6973"
3146 gradientUnits="userSpaceOnUse"
3147 x1="1255.7386"
3148 y1="667.09216"
3149 x2="893.69995"
3150 y2="858.01099" />
3151 <clipPath
3152 clipPathUnits="userSpaceOnUse"
3153 id="clipPath6975">
3154 <rect
3155 id="rect6977"
3156 width="440"
3157 height="376"
3158 x="547.99994"
3159 y="205.32277"
3160 style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#f8d615;stroke-width:18;stroke-linejoin:miter;stroke-miterlimit:1;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new" />
3161 </clipPath>
3162 <marker
3163 inkscape:stockid="Arrow1Send"
3164 orient="auto"
3165 refY="0"
3166 refX="0"
3167 id="Arrow1Send-4"
3168 style="overflow:visible"
3169 inkscape:isstock="true">
3170 <path
3171 inkscape:connector-curvature="0"
3172 id="path7188-9"
3173 d="M 0,0 5,-5 -12.5,0 5,5 0,0 Z"
3174 style="fill:#f8d615;fill-opacity:1;fill-rule:evenodd;stroke:#f8d615;stroke-width:1pt;stroke-opacity:1"
3175 transform="matrix(-0.2,0,0,-0.2,-1.2,0)" />
3176 </marker>
3177 </defs>
3178 <metadata
3179 id="metadata7">
3180 <rdf:RDF>
3181 <cc:Work
3182 rdf:about="">
3183 <dc:format>image/svg+xml</dc:format>
3184 <dc:type
3185 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
3186 <dc:title></dc:title>
3187 </cc:Work>
3188 </rdf:RDF>
3189 </metadata>
3190 <g
3191 inkscape:groupmode="layer"
3192 id="layer1"
3193 inkscape:label="Shadow"
3194 transform="translate(48.571445,195.53053)" />
3195 <g
3196 inkscape:groupmode="layer"
3197 id="layer20"
3198 inkscape:label="New Ear"
3199 transform="translate(48.571445,195.53053)" />
3200 <g
3201 inkscape:groupmode="layer"
3202 id="layer21"
3203 inkscape:label="Rendered2"
3204 style="display:inline"
3205 transform="translate(48.571445,195.53053)" />
3206 <g
3207 inkscape:groupmode="layer"
3208 id="layer15"
3209 inkscape:label="Feet"
3210 style="display:inline"
3211 transform="translate(48.571445,195.53053)" />
3212 <g
3213 inkscape:groupmode="layer"
3214 id="layer16"
3215 inkscape:label="Left Foot"
3216 style="display:inline"
3217 transform="translate(48.571445,195.53053)">
3218 <rect
3219 style="display:inline;opacity:1;fill:#a8a8a8;fill-opacity:1;stroke:#000000;stroke-width:20.89992332;stroke-linejoin:miter;stroke-miterlimit:1;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
3220 id="rect6676-3-7-5"
3221 width="1876.7191"
3222 height="1562.9667"
3223 x="-38.121483"
3224 y="-86.153076" />
3225 <rect
3226 style="display:inline;opacity:1;fill:none;fill-opacity:1;stroke:#000000;stroke-width:20.92477036;stroke-linejoin:miter;stroke-miterlimit:1;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
3227 id="rect6676-3-7"
3228 width="1878.7875"
3229 height="1564.9603"
3230 x="2288.5129"
3231 y="-84.10511" />
3232 <rect
3233 style="display:inline;opacity:1;fill:#a8a8a8;fill-opacity:1;stroke:#f83615;stroke-width:20.39127541;stroke-linejoin:miter;stroke-miterlimit:1;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;enable-background:new"
3234 id="rect6676-3"
3235 width="1833.4282"
3236 height="1522.9458"
3237 x="2309.7717"
3238 y="-62.567806" />
3239 <g
3240 id="g4303">
3241 <path
3242 inkscape:export-ydpi="142.10527"
3243 inkscape:export-xdpi="142.10527"
3244 inkscape:export-filename="/home/cheeseness/Documents/LCA09/mascot/tuz_new.png"
3245 transform="matrix(10.726753,0,0,10.726753,-2882.1235,-4565.4583)"
3246 sodipodi:nodetypes="cccccccccsccccccccccc"
3247 id="path10326"
3248 d="m 304.64285,526.6479 c -10,0.35715 -18.21428,2.85714 -18.21428,2.85714 l 7.5,6.07143 10.35714,3.57143 16.07143,0.35714 22.5,-5.35714 7.85714,1.07143 20.35715,-2.14286 -10.35715,6.78572 c 5.45923,-1.02361 17.39329,3.56911 9.64286,5.35714 -1.74,0.40142 13.92857,-4.64285 13.92857,-4.64285 l 2.5,-4.64287 3.57143,-9.28571 11.42857,0 18.21428,-4.64286 3.57144,-4.99999 -16.07144,1.07142 -12.14285,2.14286 -14.64286,-5 -70.6921,16.70774 -5.37933,-5.27917 z"
3249 style="display:inline;opacity:0.5;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter11361);enable-background:new"
3250 inkscape:connector-curvature="0" />
3251 <g
3252 transform="matrix(0.71084,-0.1937433,0.262963,0.9648058,503.68027,136.48399)"
3253 id="g7882"
3254 style="display:inline;opacity:1;enable-background:new">
3255 <path
3256 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient7904);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3257 d="m 245.12255,100.05344 c 0,0 -47.12811,-31.646921 -67.21465,-35.800939 -20.03792,-4.143963 -38.4729,-3.317578 -51.93364,13.607323 -13.46074,16.924901 -12.07739,61.265196 -13.53554,86.969546 -1.45815,25.70435 2.54945,70.17701 17.6046,88.66552 15.05516,18.4885 45.88634,13.58502 49.92695,21.4137 2.21283,4.28736 65.15228,-174.85515 65.15228,-174.85515 z"
3258 id="path7876"
3259 sodipodi:nodetypes="czzzzcc"
3260 inkscape:connector-curvature="0" />
3261 <path
3262 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient7906);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3263 d="m 135.37935,82.017807 c 0,0 26.34355,1.938783 37.63307,13.903188 11.41494,12.097335 13.73457,21.331515 15.29586,37.734585 1.56337,16.42499 -0.84957,28.41812 -7.81382,36.03734 -6.96425,7.61922 -1.00429,19.58332 -25.91605,12.07107 -24.91176,-7.51225 -27.03224,-27.78298 -26.51523,-46.30475 0.51721,-18.52898 7.31617,-53.441433 7.31617,-53.441433 z"
3264 id="path7878"
3265 sodipodi:nodetypes="czzzzzc"
3266 inkscape:connector-curvature="0" />
3267 <path
3268 style="display:inline;opacity:1;fill:url(#radialGradient7908);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3269 d="m 135.648,81.927211 c 0,0 -4.64465,16.365075 0.58825,28.563099 5.48794,12.79254 27.22425,44.26007 27.22425,54.65565 l 22.65625,-5 c 2.54218,-6.96644 3.21052,-15.75206 2.1875,-26.5 -1.56129,-16.40307 -3.8663,-25.62141 -15.28125,-37.718749 -9.65488,-10.232047 -31.59311,-13.374857 -37.375,-14 z"
3270 id="path7880"
3271 sodipodi:nodetypes="czccssc"
3272 inkscape:connector-curvature="0" />
3273 </g>
3274 <path
3275 sodipodi:nodetypes="czzzcczzcc"
3276 id="path7917"
3277 d="m 845.03125,1154.7776 c -4.28571,0.7143 -27.62815,3.6181 -57.85714,10 -30.22899,6.3819 -57.31395,4.9661 -135.78608,17.3296 -79.85178,12.5808 -94.06436,42.5423 -108.12225,47.0643 -14.70014,4.7286 -145.37739,-65.8225 -145.37739,-65.8225 l 4.28572,-94.2857 c 0,0 85.88551,-16.2009 112.14285,-33.5714 26.25735,-17.3705 45.58238,-49.66602 59.28572,-71.42861 13.70334,-21.76259 32.85714,-71.42858 32.85714,-71.42858 l 238.57143,262.14289 z"
3278 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3279 inkscape:connector-curvature="0" />
3280 <path
3281 transform="translate(276,136)"
3282 sodipodi:nodetypes="ccccc"
3283 clip-path="url(#clipPath8658)"
3284 id="path7919"
3285 d="m 332.34019,898.38549 -32.73181,-61.29956 -37.61734,45.10646 c 2.17675,1.31711 5.77425,-20.85603 45.6004,-64.41708 l 24.74875,80.61018 z"
3286 style="display:inline;overflow:visible;visibility:visible;opacity:0.5;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8888);enable-background:accumulate"
3287 inkscape:connector-curvature="0" />
3288 <path
3289 transform="translate(276,136)"
3290 sodipodi:nodetypes="cccccc"
3291 clip-path="url(#clipPath2833)"
3292 id="path7923"
3293 d="m 200.81833,863.03015 146.3711,-51.61879 243.95184,226.27414 -241.83052,140.0072 -181.01934,-87.6813 32.52692,-226.98125 z"
3294 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient2841);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8892);enable-background:accumulate"
3295 inkscape:connector-curvature="0" />
3296 <path
3297 sodipodi:nodetypes="czzcczcc"
3298 id="path7921"
3299 d="m 642.88839,640.13471 c 0,0 -29.55406,40.57305 -47.85714,74.28571 -18.30309,33.71267 -58.62109,126.35694 -70.35714,171.07143 -11.7594,44.80344 -62.5,123.57145 -62.5,123.57145 l 76.07143,18.2143 c 0,0 11.80712,-12.8234 31.07142,-46.07146 19.2643,-33.24808 60.35715,-138.57143 60.35715,-138.57143 l 13.21428,-202.5 z"
3300 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#0f0f0f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3301 inkscape:connector-curvature="0" />
3302 <path
3303 transform="translate(276,136)"
3304 clip-path="url(#clipPath3665)"
3305 sodipodi:nodetypes="ccccccc"
3306 id="path7925"
3307 d="m 430.28131,381.94122 c -7.07106,2.82843 -236.18124,32.15181 -236.18124,32.15181 l -39.63961,359.83304 90.19849,92.63961 52.3259,-114.5513 100.46804,-186.39192 32.82842,-183.68124 z"
3308 style="display:inline;overflow:visible;visibility:visible;opacity:0.4;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8856);enable-background:accumulate"
3309 inkscape:connector-curvature="0" />
3310 <path
3311 sodipodi:nodetypes="czzzzcc"
3312 id="path7927"
3313 d="m 969.67051,1164.0346 c 0,0 23.25628,11.3937 36.06779,20.4761 12.6974,9.0015 29.4724,24.6491 41.6924,37.3605 12.3055,12.8002 20.1127,22.5987 41.5327,24.1608 21.4322,1.5629 53.2824,-8.7876 73.296,-24.6642 20.0135,-15.8766 45.6469,-69.2328 45.6469,-69.2328 l -127.1608,-143.0717"
3314 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3315 inkscape:connector-curvature="0" />
3316 <path
3317 transform="translate(276,136)"
3318 sodipodi:nodetypes="ccccc"
3319 clip-path="url(#clipPath8642)"
3320 id="path7929"
3321 d="M 331.34019,641.50471 216.17367,835.36467 260.2153,925.96265 357.79603,732.21539 331.34019,641.50471 Z"
3322 style="display:inline;overflow:visible;visibility:visible;opacity:0.75;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8860);enable-background:accumulate"
3323 inkscape:connector-curvature="0" />
3324 <g
3325 inkscape:transform-center-y="-28.255779"
3326 inkscape:transform-center-x="-347.89063"
3327 transform="matrix(0.9934486,0.1142802,-0.1142802,0.9934486,-9.24324,588.09054)"
3328 id="g7931"
3329 style="display:inline;opacity:1;enable-background:new">
3330 <path
3331 id="path7933"
3332 d="m 1049.205,-282.26672 -0.09,0.008 c -1.3874,0.88445 -6.6033,1.6072 -6.629,9.52344 -0.024,7.42525 15.0129,17.09146 17.1563,18.09375 1.7302,0.80909 3.5916,1.40876 5.4063,1.71875 l 1.4374,0.21875 c 1.9197,0.21194 3.72,0.15141 5.1563,-0.0937 3.1191,-0.5324 5.1116,-0.92861 7.0937,-1.3125 1.9821,-0.38387 2.4743,-1.03965 3.5626,-1.28125 1.1287,-0.25066 2.2702,0.11629 6.25,-0.875 3.9795,-0.99128 5.4294,-1.4193 6.125,-1.78125 0.7222,-0.37601 1.7617,-0.87058 2.375,-1.53125 1.9629,-0.012 3.7937,-0.29105 5.2187,-0.84375 2.9512,-1.14461 4.8732,-1.86942 6.6875,-2.75 1.4557,-0.70653 2.3191,-1.70203 2.5312,-2 0.2123,-0.29796 0.099,-0.72855 0.125,-0.75 0.043,-0.0352 0.3405,-0.094 0.5,-0.4375 0.859,-1.84708 2.3232,-5.62764 2.4376,-6.3125 0.1137,-0.68215 0.168,-1.35277 0.2187,-1.75 0.029,-0.22951 -0.1471,-0.8789 -0.125,-0.9375 0.031,-0.082 0.2883,-0.25057 0.3437,-0.5 0.2663,-1.19832 0.089,-2.20736 -0.125,-3.625 -0.2139,-1.41764 -0.9716,-4.61463 -1.625,-5.46875 -0.4194,-0.54857 -0.7993,-0.7925 -1.1562,-0.90625 -0.067,-0.0173 -0.1239,-0.0467 -0.1875,-0.0625 -0.021,-0.004 -0.042,0.003 -0.062,0 -0.3116,-0.0755 -0.6085,-0.15867 -1.1562,-0.21875 -0.9855,-0.10812 -2.4247,-0.2594 -3.9688,-0.25 -0.5147,0.003 -1.0371,0.0476 -1.5625,0.0937 -3.5589,0.31228 -9.0098,0.99108 -10.2187,1.625 -1.6331,-0.33402 -3.9482,-0.61223 -5.9376,-0.46875 -3.064,0.22097 -4.9677,0.34219 -6.9062,0.46875 -1.9384,0.12655 -1.6861,0.38864 -2.9062,0.46875 -1.3191,0.0866 -1.7869,-0.22325 -5.5626,0.0937 -3.5457,0.29772 -8.9806,0.99317 -10.2187,1.625 -1.6334,-0.33451 -3.9459,-0.61239 -5.9375,-0.46875 -3.0642,0.22098 -4.9678,0.37344 -6.9062,0.5 -0.6592,0.043 -1.0424,0.12393 -1.3438,0.1875 z"
3333 style="display:inline;opacity:1;fill:#bcb786;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3334 inkscape:connector-curvature="0" />
3335 <g
3336 transform="matrix(0.9975712,-0.06965428,0.06965428,0.9975712,872.72062,140.02502)"
3337 id="g7935"
3338 style="display:inline;filter:url(#filter7610);enable-background:new"
3339 clip-path="url(#clipPath7616)">
3340 <path
3341 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3342 d="m 229.94262,-409.12268 c -3.55781,0.05 -9.0242,0.36009 -10.30334,0.90414 -1.60609,-0.44747 -3.90316,-0.88131 -5.89995,-0.87674 -3.07199,0.007 -4.96469,0.009 -6.90727,0 -0.66047,-0.003 -1.04759,0.0672 -1.35267,0.10959 0,0 0,1.09593 0,1.09593 0.11972,-0.17947 0.39252,-0.69046 0.94975,-0.76715 0.74758,-0.10289 5.16928,-0.15123 7.31019,-0.1096 1.7746,0.0345 4.45523,0.27427 6.38921,0.95895 0.3214,0.11378 0.61925,0.27378 0.89219,0.41097 1.96342,0.98693 7.94336,4.30154 7.94336,4.30154 0,0 -6.63275,-3.94768 -7.48287,-4.43853 -0.20331,-0.11739 -0.57464,-0.25769 -1.03609,-0.41098 1.22063,-0.44779 5.07597,-0.61971 7.82823,-0.71235 3.0245,-0.10182 3.34776,-0.0896 5.41069,0.19179 2.12931,0.29043 3.33851,0.60276 3.33851,0.60276 -1e-5,0 -0.0784,-0.64118 1.03609,-0.79455 0.74757,-0.10289 5.16929,-0.15123 7.31019,-0.1096 2.0695,0.0403 5.36605,0.40716 7.2814,1.36992 1.00332,0.50433 3.03564,1.56863 4.79535,2.53571 l 0.0956,-0.0194 c 0,0 -3.58034,-2.16242 -4.43047,-2.65327 -0.20331,-0.11739 -0.57463,-0.25769 -1.03609,-0.41098 1.22062,-0.44779 5.04719,-0.61971 7.79945,-0.71235 3.0245,-0.10182 3.34775,-0.0896 5.41069,0.19179 1.95316,0.2664 3.01292,0.53006 3.19461,0.57536 0,0 -0.0271,-0.31146 -0.0271,-0.31146 -0.40903,-0.13645 -0.71424,-0.23335 -1.40038,-0.35748 -1.30081,-0.23533 -3.39912,-0.60156 -5.50857,-0.56398 -3.57195,0.0636 -9.05328,0.35596 -10.30334,0.90414 -1.60583,-0.44695 -3.87662,-0.8813 -5.87117,-0.87674 -3.07199,0.007 -4.99348,0.009 -6.93605,0 -1.94256,-0.009 -1.71268,0.27907 -2.93558,0.27398 -1.32191,-0.005 -1.76612,-0.35463 -5.55459,-0.30138 0,0 0,0 0,0"
3343 id="path7937"
3344 sodipodi:nodetypes="ccssscsssscscsscsssccscssccsscssscc"
3345 inkscape:connector-curvature="0" />
3346 <path
3347 sodipodi:nodetypes="cssccsscc"
3348 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3349 d="m 206.1989,-407.47878 c 1.92021,0.81706 4.57715,2.19283 6.15897,3.39739 1.58184,1.20456 2.90757,1.77368 5.55459,3.91795 0.88557,0.71738 1.74865,1.34985 2.59193,1.92174 l 0.54057,-0.19011 c -0.71323,-0.48339 -1.46776,-1.02031 -2.26909,-1.62203 -2.82223,-2.11921 -3.62655,-2.80973 -6.01507,-4.27414 -2.38854,-1.4644 -4.09948,-2.36576 -6.5619,-3.1508 0,0 0,0 0,0"
3350 id="path7939"
3351 inkscape:connector-curvature="0" />
3352 <path
3353 sodipodi:nodetypes="csccscc"
3354 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3355 d="m 237.79963,-407.47878 c 1.92021,0.81706 4.60594,2.19283 6.18775,3.39739 0.81307,0.61916 1.55849,1.07042 2.45046,1.65401 l 0.649,-0.11666 c -0.79831,-0.57637 -1.57177,-1.09435 -2.69653,-1.78394 -2.38854,-1.4644 -4.12826,-2.36576 -6.59068,-3.1508 0,0 0,0 0,0"
3356 id="path7941"
3357 inkscape:connector-curvature="0" />
3358 </g>
3359 <g
3360 id="g7943"
3361 clip-path="url(#clipPath7606)">
3362 <path
3363 sodipodi:nodetypes="czzzzzzzzzzzzzz"
3364 id="path7945"
3365 d="m 1056.25,-278.80481 c 4.1446,-1.47877 10,3.125 10,3.125 0.899,0.28092 2.7251,-0.89447 2.6243,-1.68614 0,0 -1.5503,-1.86062 -0.3743,-2.93886 1.176,-1.07824 5.296,1.50738 7.5,1.625 2.204,0.11762 5.5621,-0.22941 7,-0.75 1.4379,-0.52059 1.1129,-1.42459 2.625,-1.75 1.5121,-0.32541 5.1189,1.03754 7.0605,1.16883 1.9416,0.13129 4.6481,0.33427 5.8145,-0.16883 1.1664,-0.5031 0.1782,-1.15921 1.875,-1.875 1.6968,-0.71579 7.7602,-0.95662 9.625,-0.125 1.8648,0.83162 1.8099,0.5192 2.625,3 0.8151,2.4808 7.4398,5.16285 -1.125,13.375 -8.5648,8.21215 -59.3779,13.78594 -65.625,2.75 -6.2471,-11.03594 6.2304,-14.27123 10.375,-15.75 z"
3366 style="display:inline;opacity:0.75;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7578);enable-background:new"
3367 inkscape:connector-curvature="0" />
3368 <path
3369 sodipodi:nodetypes="czzzzzzzzzzzzzz"
3370 id="path7947"
3371 d="m 1058.5,-275.42981 c 4.1446,-1.47877 10,3.125 10,3.125 0.899,0.28092 2.7251,-0.89447 2.6243,-1.68614 0,0 -1.5503,-1.86062 -0.3743,-2.93886 1.176,-1.07824 5.296,1.50738 7.5,1.625 2.204,0.11762 5.5621,-0.22941 7,-0.75 1.4379,-0.52059 1.1129,-1.42459 2.625,-1.75 1.5121,-0.32541 5.1189,1.03754 7.0605,1.16883 1.9416,0.13129 4.6481,0.33427 5.8145,-0.16883 1.1664,-0.5031 0.1782,-1.15921 1.875,-1.875 1.6968,-0.71579 7.7602,-0.95662 9.625,-0.125 1.8648,0.83162 1.8099,0.5192 2.625,3 0.8151,2.4808 7.4398,5.16285 -1.125,13.375 -8.5648,8.21215 -59.3779,13.78594 -65.625,2.75 -6.2471,-11.03594 6.2304,-14.27123 10.375,-15.75 z"
3372 style="display:inline;opacity:0.75;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7594);enable-background:new"
3373 inkscape:connector-curvature="0" />
3374 </g>
3375 </g>
3376 <path
3377 sodipodi:nodetypes="cscccccccccccc"
3378 id="path7949"
3379 d="m 628.24553,347.99185 c -3.80443,-25.26423 -16.80972,-50.63802 -17.1568,-75.52523 -0.18626,-13.35552 3.27285,-26.57091 13.75553,-39.55405 36.34702,-65.29583 116.94091,-84.69468 185.93466,-91.46542 86.92239,-11.0168 184.91267,17.94007 233.37138,95.40128 54.124,75.7333 56.6747,172.53912 80.612,259.52795 29.4378,127.1276 54.7791,256.21414 60.3922,386.85035 -3.0634,78.18185 -8.4263,165.18417 -60.5032,228.13417 -48.0265,50.3574 -122.7864,50.053 -187.06985,59.0023 -90.55539,4.655 -184.35153,-16.1458 -261.7839,-64.1982 -64.77564,-37.94 -95.73019,-113.47867 -97.2794,-186.01962 -8.38917,-79.87516 26.39152,-153.80851 51.6204,-227.15961 7.47061,-82.76107 9.41286,-166.24775 9.65334,-249.38484 -0.83682,-32.19544 -7.08953,-63.81733 -11.54636,-95.60908 z"
3380 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#101414;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3381 inkscape:connector-curvature="0" />
3382 <path
3383 transform="translate(276,136)"
3384 clip-path="url(#clipPath8616)"
3385 sodipodi:nodetypes="ccccczzzcc"
3386 id="path7951"
3387 d="m 311.83409,415.43155 9.8995,121.62237 -60.10408,136.47161 15.55635,174.65537 c 15.61326,61.8792 32.18545,98.66905 74.37615,117.05383 4.31911,-36.23998 -38.61152,-142.95988 -39.24264,-189.11984 -0.63145,-46.18445 10.83034,-108.60786 30.67767,-158.29647 20.04835,-50.19188 36.89674,-44.84642 42.12489,-92.59293 5.22815,-47.74651 -17.4264,-149.39192 -17.4264,-149.39192 l -55.86144,39.59798 z"
3388 style="display:inline;overflow:visible;visibility:visible;opacity:0.25;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8940);enable-background:accumulate"
3389 inkscape:connector-curvature="0" />
3390 <path
3391 sodipodi:nodetypes="czcc"
3392 id="path7953"
3393 d="m 1010.0312,655.49186 c 0,0 16.7552,37.01806 28.7015,53.95395 11.9462,16.93589 52.7271,56.04605 52.7271,56.04605 l 52.5972,-127.58975"
3394 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient8970);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3395 inkscape:connector-curvature="0" />
3396 <path
3397 transform="translate(276,136)"
3398 clip-path="url(#clipPath8209)"
3399 sodipodi:nodetypes="cccc"
3400 id="path7955"
3401 d="m 730.31998,536.56864 c 0,8.48528 42.54774,58.46803 42.54774,58.46803 l 12.60659,-28.76954 -55.15433,-29.69849 z"
3402 style="display:inline;overflow:visible;visibility:visible;opacity:0.07999998;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8822);enable-background:accumulate"
3403 inkscape:connector-curvature="0" />
3404 <g
3405 clip-path="url(#clipPath3998)"
3406 id="g7957"
3407 style="display:inline;opacity:1;enable-background:new"
3408 transform="translate(450.03125,73.843964)">
3409 <g
3410 id="g7959"
3411 style="filter:url(#filter3677)"
3412 transform="translate(-174.03125,62.156036)">
3413 <g
3414 style="filter:url(#filter3785)"
3415 id="g7961">
3416 <path
3417 style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3418 d="m 425.88244,476.99186 c 10.80543,-1.47866 24.74401,3.35451 44.64286,3.21428 19.89885,-0.14023 57.45322,-16.91122 82.14285,-17.14286 24.68963,-0.23164 62.7517,12.28406 79.28572,15 16.53402,2.71594 22.84832,-0.15852 27.49999,7.85715 4.65167,8.01567 1.92671,10.74724 -10.35714,20.71429 -12.28385,9.96705 -40.78968,12.63632 -66.07143,12.85714 -25.28234,0.22082 -70.38129,7.07852 -95.35714,3.92856 -24.97585,-3.14996 -56.93756,-7.82267 -68.92857,-17.85714 -11.99101,-10.03447 -19.85084,-16.73182 -17.5,-23.92857 2.35084,-7.19675 13.83743,-3.16419 24.64286,-4.64285 z"
3419 id="path7963"
3420 sodipodi:nodetypes="czzzzzzzzzz"
3421 inkscape:connector-curvature="0" />
3422 <rect
3423 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3424 id="rect7965"
3425 width="381.83765"
3426 height="181.01935"
3427 x="343.6539"
3428 y="412.60312" />
3429 </g>
3430 <g
3431 style="filter:url(#filter3785)"
3432 id="g7967">
3433 <path
3434 transform="translate(174.03125,-62.156036)"
3435 style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3436 d="m 687.14286,452.36218 c -10.46169,9.71443 -86.9796,19.00514 -100.71429,29.28572 -13.73469,10.28058 -14.75252,12.88826 -12.14286,20 2.60966,7.11174 6.54527,9.40572 25.71429,8.57142 19.16902,-0.8343 98.57143,-27.62172 98.57143,-21.42857 l -11.42857,-36.42857 z"
3437 id="path7969"
3438 sodipodi:nodetypes="czzzcc"
3439 inkscape:connector-curvature="0" />
3440 <rect
3441 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3442 id="rect7971"
3443 width="207.8894"
3444 height="162.63455"
3445 x="702.86414"
3446 y="344.82138" />
3447 </g>
3448 </g>
3449 <g
3450 id="g7973"
3451 style="display:inline;opacity:0.18000004;enable-background:new"
3452 transform="translate(-174.03125,62.156036)">
3453 <g
3454 style="filter:url(#filter3785)"
3455 id="g7975">
3456 <path
3457 style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3458 d="m 425.88244,476.99186 c 10.80543,-1.47866 24.74401,3.35451 44.64286,3.21428 19.89885,-0.14023 57.45322,-16.91122 82.14285,-17.14286 24.68963,-0.23164 62.7517,12.28406 79.28572,15 16.53402,2.71594 22.84832,-0.15852 27.49999,7.85715 4.65167,8.01567 1.92671,10.74724 -10.35714,20.71429 -12.28385,9.96705 -40.78968,12.63632 -66.07143,12.85714 -25.28234,0.22082 -70.38129,7.07852 -95.35714,3.92856 -24.97585,-3.14996 -56.93756,-7.82267 -68.92857,-17.85714 -11.99101,-10.03447 -19.85084,-16.73182 -17.5,-23.92857 2.35084,-7.19675 13.83743,-3.16419 24.64286,-4.64285 z"
3459 id="path7977"
3460 sodipodi:nodetypes="czzzzzzzzzz"
3461 inkscape:connector-curvature="0" />
3462 <rect
3463 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3464 id="rect7979"
3465 width="381.83765"
3466 height="181.01935"
3467 x="343.6539"
3468 y="412.60312" />
3469 </g>
3470 <g
3471 style="filter:url(#filter3785)"
3472 id="g7981">
3473 <path
3474 transform="translate(174.03125,-62.156036)"
3475 style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3476 d="m 687.14286,452.36218 c -10.46169,9.71443 -86.9796,19.00514 -100.71429,29.28572 -13.73469,10.28058 -14.75252,12.88826 -12.14286,20 2.60966,7.11174 6.54527,9.40572 25.71429,8.57142 19.16902,-0.8343 98.57143,-27.62172 98.57143,-21.42857 l -11.42857,-36.42857 z"
3477 id="path7983"
3478 sodipodi:nodetypes="czzzcc"
3479 inkscape:connector-curvature="0" />
3480 <rect
3481 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3482 id="rect7985"
3483 width="207.8894"
3484 height="162.63455"
3485 x="702.86414"
3486 y="344.82138" />
3487 </g>
3488 </g>
3489 </g>
3490 <path
3491 transform="translate(276,136)"
3492 sodipodi:nodetypes="cccccscc"
3493 clip-path="url(#clipPath8604)"
3494 id="path7987"
3495 d="M 582.65599,-7.4183011 695.79307,78.848726 804.68752,337.64981 842.87128,545.5392 963.07944,637.46308 c 0,0 -12.72793,-287.08535 -19.799,-313.95541 C 936.20938,296.63761 793.37381,-69.643698 793.37381,-69.643698 L 582.65599,-7.4183011 Z"
3496 style="display:inline;overflow:visible;visibility:visible;opacity:0.75;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8802);enable-background:accumulate"
3497 inkscape:connector-curvature="0" />
3498 <path
3499 sodipodi:nodetypes="czzzzzzc"
3500 id="path7989"
3501 d="m 964.13839,239.599 c 0,0 8.67732,10.89662 24.10715,11.96428 15.42986,1.06766 49.72166,-39.95267 70.17856,-52.14285 20.4793,-12.20353 47.0464,-26.60225 63.9286,-20.35714 16.8821,6.2451 22.1578,26.43609 27.8571,48.03571 5.6994,21.59961 6.7186,61.81389 -2.6785,92.85715 -9.3972,31.04325 -50.5033,73.10375 -65.3572,103.39285 -14.8539,30.2891 -11.6071,39.82143 -11.6071,39.82143"
3502 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient8958);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3503 inkscape:connector-curvature="0" />
3504 <path
3505 sodipodi:nodetypes="czzzzc"
3506 id="path7991"
3507 d="m 1124.4955,207.63471 c -15.8928,-0.89286 -49.7188,12.10583 -66.0714,24.28572 -16.4386,12.2439 -29.2209,24.1144 -29.2857,52.14285 -0.065,28.20604 13.1191,39.07641 29.1071,46.96429 15.988,7.88789 33.6862,7.11928 51.9643,-11.78571 18.2782,-18.905 14.2857,-111.60715 14.2857,-111.60715 z"
3508 style="display:inline;opacity:1;fill:url(#radialGradient3315);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3509 inkscape:connector-curvature="0" />
3510 <ellipse
3511 clip-path="url(#clipPath4100)"
3512 transform="matrix(0.9434749,-0.1239943,0.1440089,1.0957669,451.94827,134.5988)"
3513 id="path7993"
3514 style="display:inline;overflow:visible;visibility:visible;opacity:0.75;fill:url(#radialGradient3543);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter4120);enable-background:accumulate"
3515 cx="385"
3516 cy="237.00504"
3517 rx="86.428574"
3518 ry="73.928574" />
3519 <path
3520 mask="url(#mask3684)"
3521 sodipodi:nodetypes="csczzc"
3522 id="path7995"
3523 d="m 527.60588,407.44884 c 0,0 -122.04144,38.40348 -187.51434,9.63181 -65.47289,-28.77166 -74.37725,-124.71847 -74.37725,-124.71847 0,0 73.38158,-80.50393 129.92078,-83.61476 55.82705,-3.07164 90.57386,20.14332 114.87001,65.85171 24.352,45.81348 17.1008,132.84971 17.1008,132.84971 z"
3524 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient3915);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3525 transform="translate(450.03125,73.843964)"
3526 inkscape:connector-curvature="0" />
3527 <path
3528 sodipodi:nodetypes="czcc"
3529 id="path7997"
3530 d="m 772.17411,393.349 c 0,0 36.21754,-27.38247 51.60714,-35.89286 15.17734,-8.39301 25.71428,-11.60714 35.89285,-11.60714 l -15.53571,66.96428"
3531 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient3959);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3532 inkscape:connector-curvature="0" />
3533 <circle
3534 transform="translate(449.49554,74.915393)"
3535 id="path7999"
3536 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient3933);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3537 cx="409.28571"
3538 cy="306.64789"
3539 r="36.25" />
3540 <path
3541 transform="translate(276,136)"
3542 clip-path="url(#clipPath8616)"
3543 sodipodi:nodetypes="cccccccccc"
3544 id="path8001"
3545 d="m 311.83409,415.43155 9.8995,121.62237 -60.10408,136.47161 15.55635,174.65537 c 15.61326,61.8792 32.18545,98.66905 74.37615,117.05383 4.31911,-36.23998 8.68161,-72.36764 -31.24264,-223.11984 l 17.67767,-69.29647 72.12489,-138.59293 -42.4264,-158.39192 -55.86144,39.59798 z"
3546 style="display:inline;overflow:visible;visibility:visible;opacity:0.3;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8806);enable-background:accumulate"
3547 inkscape:connector-curvature="0" />
3548 <path
3549 sodipodi:nodetypes="czzcc"
3550 id="path8003"
3551 d="m 635.21025,581.13004 c -14.14214,12.72792 39.23347,34.58015 76.36753,24.04163 37.13406,-10.53852 104.64487,-35.56437 103.23759,-79.19596 -1.40728,-43.63158 -76.36753,-128.69343 -76.36753,-128.69343 L 635.21025,581.13004 Z"
3552 style="display:inline;overflow:visible;visibility:visible;opacity:0.5;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8826);enable-background:accumulate"
3553 inkscape:connector-curvature="0" />
3554 <circle
3555 transform="translate(449.67411,74.915393)"
3556 id="path8005"
3557 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient3991);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3558 cx="410"
3559 cy="306.64789"
3560 r="23.214285" />
3561 <circle
3562 transform="translate(451.99554,73.486821)"
3563 id="path8007"
3564 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter3981);enable-background:accumulate"
3565 cx="414.28571"
3566 cy="303.07648"
3567 r="7.5" />
3568 <path
3569 sodipodi:nodetypes="czzzczc"
3570 id="path8009"
3571 d="m 789.31696,478.349 c 0,0 7.02281,19.56859 -1.07143,35 -8.09424,15.43141 -42.32317,38.98822 -67.49999,50 -25.30972,11.06991 -85.473,32.96393 -101.78572,41.96428 -16.46148,9.08243 -18.21428,12.67857 -18.21428,12.67857 0,0 -7.14693,-19.06441 28.74999,-51.7857 36.17211,-32.97214 142.02712,-48.0495 159.82143,-87.85715 z"
3572 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient4112);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3573 inkscape:connector-curvature="0" />
3574 <g
3575 transform="translate(780.74553,74.55825)"
3576 id="g8011"
3577 style="display:inline;opacity:1;enable-background:new">
3578 <path
3579 style="display:inline;opacity:1;fill:url(#radialGradient3585);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
3580 d="m 179.64286,267.36218 c -22.41044,39.70292 -60.6161,115.78029 -69.28571,149.64286 -8.64721,33.7751 -8.77199,66.41654 -0.35715,86.42858 8.3602,19.88213 26.16398,35.6328 40.71428,41.42856 -0.59638,-14.37587 14.37295,-43.28583 72.85715,-72.5 58.62627,-29.28514 78.38163,-27.13086 103.57142,-47.14286 25.63006,-20.36176 8.20587,-79.64664 3.21429,-93.92857 -4.99158,-14.28193 -1.23663,-3.37974 -1.94602,-5.09301 -10.68928,-25.81592 -34.21432,-54.4303 -64.48255,-64.54984 -30.26823,-10.11954 -65.01776,-4.84837 -84.28571,5.71428 z"
3581 id="path8013"
3582 sodipodi:nodetypes="czzczzzszc"
3583 clip-path="url(#clipPath3999)"
3584 transform="translate(-329.81481,0)"
3585 inkscape:connector-curvature="0" />
3586 <ellipse
3587 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient4060);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3588 id="path8015"
3589 transform="matrix(0.8823874,0.4705236,-0.4705236,0.8823874,-166.62245,2.387362)"
3590 cx="183.57143"
3591 cy="338.07648"
3592 rx="64.715881"
3593 ry="134.00607" />
3594 <ellipse
3595 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient4062);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3596 id="path8017"
3597 transform="matrix(0.8823874,0.4705236,-0.4705236,0.8823874,-162.19388,-18.755495)"
3598 cx="183.57143"
3599 cy="338.07648"
3600 rx="64.715881"
3601 ry="134.00607" />
3602 <path
3603 style="display:inline;opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient3587);stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter4079);enable-background:new"
3604 d="m 179.64286,267.36218 c -22.41044,39.70292 -60.6161,115.78029 -69.28571,149.64286 -8.64721,33.7751 -8.77199,66.41654 -0.35715,86.42858 8.3602,19.88213 26.16398,35.6328 40.71428,41.42856 -0.59638,-14.37587 14.37295,-43.28583 72.85715,-72.5 58.62627,-29.28514 78.38163,-27.13086 103.57142,-47.14286 25.63006,-20.36176 8.20587,-79.64664 3.21429,-93.92857 -4.99158,-14.28193 -1.23663,-3.37974 -1.94602,-5.09301 -10.68928,-25.81592 -34.21432,-54.4303 -64.48255,-64.54984 -30.26823,-10.11954 -65.01776,-4.84837 -84.28571,5.71428 z"
3605 id="path8019"
3606 sodipodi:nodetypes="czzczzzszc"
3607 clip-path="url(#clipPath3999)"
3608 transform="translate(-329.81481,3e-7)"
3609 inkscape:connector-curvature="0" />
3610 </g>
3611 <circle
3612 transform="translate(452.55663,72.581273)"
3613 id="path8021"
3614 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3615 cx="310.71429"
3616 cy="398.07648"
3617 r="19.704132" />
3618 <circle
3619 transform="translate(450.55663,72.581273)"
3620 id="path8023"
3621 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient4056);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4082);stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter4083);enable-background:accumulate"
3622 cx="310.71429"
3623 cy="398.07648"
3624 r="19.704132" />
3625 <circle
3626 transform="translate(450.55663,72.581273)"
3627 id="path8025"
3628 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient4119);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3629 cx="310.71429"
3630 cy="398.07648"
3631 r="19.704132" />
3632 <ellipse
3633 inkscape:transform-center-y="-3.6935079"
3634 inkscape:transform-center-x="-47.231976"
3635 transform="matrix(0.9969564,-0.07796167,0.07796167,0.9969564,436.61877,125.29509)"
3636 id="path8027"
3637 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient4868);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter4002);enable-background:accumulate"
3638 cx="429.56738"
3639 cy="377.42877"
3640 rx="72.079735"
3641 ry="44.547726" />
3642 <ellipse
3643 inkscape:transform-center-y="-13.056625"
3644 inkscape:transform-center-x="-20.955902"
3645 transform="matrix(1.4357951,-0.06999104,0.06999104,1.4357951,235.18065,-63.86546)"
3646 id="path8029"
3647 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient4876);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter4010);enable-background:accumulate"
3648 cx="437.6991"
3649 cy="391.21735"
3650 rx="36.611931"
3651 ry="22.627417" />
3652 <g
3653 style="display:inline;opacity:1;filter:url(#filter4053);enable-background:new"
3654 id="g8031"
3655 transform="translate(450.03125,73.843964)">
3656 <circle
3657 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4484);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3658 id="path8033"
3659 cx="413.66071"
3660 cy="401.82648"
3661 r="3.2142856" />
3662 <circle
3663 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4486);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3664 id="path8035"
3665 transform="translate(13.125009,8.1249913)"
3666 cx="413.66071"
3667 cy="401.82648"
3668 r="3.2142856" />
3669 <circle
3670 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4488);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3671 id="path8037"
3672 transform="translate(32.946437,7.4999913)"
3673 cx="413.66071"
3674 cy="401.82648"
3675 r="3.2142856" />
3676 <circle
3677 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4490);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3678 id="path8039"
3679 transform="translate(24.910723,-10.267866)"
3680 cx="413.66071"
3681 cy="401.82648"
3682 r="3.2142856" />
3683 <circle
3684 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient4492);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3685 id="path8041"
3686 transform="translate(47.589294,-0.6250087)"
3687 cx="413.66071"
3688 cy="401.82648"
3689 r="3.2142856" />
3690 </g>
3691 <path
3692 sodipodi:nodetypes="ccccccccc"
3693 id="path8043"
3694 d="m 896.20301,482.92837 c 0.98509,4.35008 4.53707,6.17948 7.38673,7.89182 4.46068,2.51292 6.52016,1.52211 9.15451,-0.75761 1.60195,-1.92117 10.68311,-4.69865 15.59423,-7.07107 4.32961,-1.45891 8.9033,-5.35873 13.38452,-8.33376 3.39514,-1.62724 5.34664,0.35464 7.82868,1.01015 2.94412,0.71661 4.41117,2.17175 6.06092,3.53554 2.39616,1.17519 -0.9279,3.14313 3.283,4.29314 1.19091,0.21794 2.41695,0.57645 3.28299,-0.50507"
3695 style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3696 inkscape:connector-curvature="0" />
3697 <path
3698 sodipodi:nodetypes="cccccccccccc"
3699 id="path8045"
3700 d="m 910.85021,475.35223 c 2.31494,-0.032 3.17778,0.64253 5.49271,-0.82075 3.45564,-3.08113 5.40254,-3.14477 7.95495,-4.41942 3.02657,-1.31523 6.5357,8.15169 10.10153,9.84899 2.39509,-0.82142 1.28914,1.79379 1.45209,2.65165 0.0571,2.64684 2.80694,3.67806 4.35628,5.42957 3.31604,2.25549 7.37523,6.29546 11.11168,5.3033 6.44525,-2.93107 10.27922,-1.28146 16.28871,-7.38674 0.70405,-1.18134 -0.58425,-6.8946 3.09359,-7.19734 2.52399,0.25338 4.16667,0.0502 6.06092,0.56822 5.441,2.11719 7.73778,6.45 14.71034,7.95495 6.1829,0.96639 7.61264,3.79426 13.88959,5.05076"
3701 style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3702 inkscape:connector-curvature="0" />
3703 <path
3704 sodipodi:nodetypes="ccccccccccccc"
3705 id="path8047"
3706 d="m 876.98133,483.52197 c 2.39858,-0.7938 6.10613,4.1921 8.17313,7.04568 0.59281,2.67952 1.15377,5.48645 0.75761,12.12183 0.78513,2.41754 2.68049,3.03095 4.79823,3.283 3.11745,-0.53678 5.87669,-1.3243 7.3236,-3.03046 1.8716,-1.94167 5.31253,2.39394 8.08122,4.04061 3.61009,1.91209 7.77378,1.97886 11.8693,2.27284 1.70358,-0.23064 2.3704,4.51515 3.28299,8.08123 0.38414,4.37806 -0.88544,6.89569 -1.76776,9.84898 -0.2943,2.49655 2.9885,3.52974 6.31345,4.54569 3.18244,0.74124 6.54424,1.66184 9.09137,1.76777 5.14186,0.87491 8.08874,2.69052 12.12183,4.04061 2.23914,0.81655 3.26019,2.24216 4.54569,3.53553"
3707 style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3708 inkscape:connector-curvature="0" />
3709 <path
3710 transform="translate(276,136)"
3711 clip-path="url(#clipPath8514)"
3712 id="path8049"
3713 d="m 332,187.69519 c 0,0 57.5,-25.5 57.5,-28 0,-2.5 5.5,-52 5.5,-52 0,0 91,-48.500001 91.5,-50.500001 0.5,-2 86,-62.0000004 86,-62.0000004 L 386.5,17.195189 311,123.19519 l 21,64.5 z"
3714 style="display:inline;opacity:0.25;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter8814);enable-background:new"
3715 inkscape:connector-curvature="0" />
3716 <path
3717 id="path8051"
3718 d="m 1697.2846,722.5514 c 0,0 -115.9655,73.5391 -123.0365,77.78174 -7.0711,4.24264 -230.5169,137.17872 -230.5169,137.17872 l 4.2427,39.59798 216.3747,-100.40917 117.3797,-101.82337 15.5563,-52.3259 z"
3719 style="display:inline;overflow:visible;visibility:visible;opacity:0.25;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3720 inkscape:connector-curvature="0" />
3721 <path
3722 transform="translate(276,136)"
3723 sodipodi:nodetypes="cccccscccc"
3724 clip-path="url(#clipPath8610)"
3725 id="path8053"
3726 d="m 528.91587,556.85291 c -5.65685,-1.41421 -181.01933,74.95332 -181.01933,74.95332 l -33.94113,181.01934 51.09546,193.94823 257.2031,67.6813 c 0,0 206.47518,152.735 212.13203,148.4924 5.65686,-4.2426 168.2914,-193.7473 168.2914,-193.7473 L 842.87128,845.35248 796.20224,667.16157 528.91587,556.85291 Z"
3727 style="display:inline;overflow:visible;visibility:visible;opacity:0.5;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8810);enable-background:accumulate"
3728 inkscape:connector-curvature="0" />
3729 <path
3730 sodipodi:nodetypes="czzzzzzczczczczzzc"
3731 id="path8055"
3732 d="m 1097.6433,613.88997 c 0,0 22.6195,-6.50681 35.7427,-5.87273 13.1233,0.63409 30.6416,1.93862 43.7089,12.18619 13.0673,10.24756 25.0677,27.14007 34.1124,58.36965 9.0446,31.22958 1.6983,99.25201 -6.1761,143.34735 -7.8743,44.09534 -28.2651,106.11298 -45,140 -16.7348,33.88702 -49.7977,77.49517 -60.5694,89.87617 -11.3642,13.062 -56.2059,36.4262 -79.4306,42.2667 5.3034,-10.6066 48.8998,-50.5889 35,-60.7143 -14.0189,-10.2123 -45.76,45.9824 -84.2931,29.0332 21.38231,-13.1321 41.7794,-51.1861 34.0406,-66.59448 -7.84024,-15.61039 -30.70492,48.75758 -93.53553,37.01288 30.05204,-27.5267 55.40706,-70.90401 41.2627,-82.9797 -14.41516,-12.30687 -60.46175,54.2932 -60.46175,54.2932 0,0 -2.8219,-41.70123 13.7732,-68.60737 16.63935,-26.97787 79.65297,-81.61527 99.55308,-111.70342 19.9002,-30.08814 33.6126,-66.00902 42.1355,-92.51794 8.5228,-26.50892 15.8009,-77.09954 15.8009,-77.09954"
3733 style="display:inline;opacity:1;fill:#0c0c0c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3734 inkscape:connector-curvature="0" />
3735 <path
3736 transform="translate(276,136)"
3737 sodipodi:nodetypes="cccccccccc"
3738 clip-path="url(#clipPath8622)"
3739 id="path8057"
3740 d="m 770.74639,609.17881 -50.91169,97.58074 -79.90307,111.01576 34.64824,71.41778 42.42641,79.19597 72.12489,-45.25484 14.14214,-192.33305 21.2132,-138.59292 -14.14214,-90.15612 -39.59798,107.12668 z"
3741 style="display:inline;overflow:visible;visibility:visible;opacity:0.25;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8818);enable-background:accumulate"
3742 inkscape:connector-curvature="0" />
3743 <path
3744 transform="translate(276,136)"
3745 sodipodi:nodetypes="cczcccccc"
3746 clip-path="url(#clipPath8906)"
3747 id="path8059"
3748 d="m 295,846.19519 6.64488,-68.92285 c 0,0 90.31951,89.00457 162.35512,122.92285 72.03561,33.91828 308,62 308,62 l 154,-26 -36,162.00001 -286,26 -298,-89 -11,-189.00001 z"
3749 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8810);enable-background:accumulate"
3750 inkscape:connector-curvature="0" />
3751 <path
3752 clip-path="url(#clipPath3602)"
3753 sodipodi:nodetypes="cccccccccccc"
3754 id="path8061"
3755 d="m 405.79629,845.99023 74.95332,65.05383 2.49963,16.8804 19.40336,10.15891 6.49204,23.05109 31.70905,-8.3711 14.84924,48.08324 c 12.25652,12.7279 89.79344,-113.1097 55.86143,38.1838 l -60.81118,16.2635 -89.20292,-94.69286 -62.82503,-53.79963 7.07106,-60.81118 z"
3756 style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3587);enable-background:new"
3757 transform="translate(450.03125,73.843964)"
3758 inkscape:connector-curvature="0" />
3759 <path
3760 sodipodi:nodetypes="czzzzzzzzcc"
3761 id="path8063"
3762 d="m 1159.317,918.349 c 54.2857,-1.42857 126.035,-15.05199 170,-26.78572 44.0527,-11.75714 125.8863,-36.34724 175.357,-57.85714 49.3393,-21.45272 113.6038,-59.2816 154.2859,-92.14285 40.5081,-32.72069 52.3899,-55.81981 60.7142,-33.57143 8.3691,22.36779 -16.4069,56.32562 -37.8571,81.07143 -21.6042,24.9234 -52.7314,52.70533 -98.9287,89.28571 -46.1973,36.58038 -156.0825,101.58463 -212.8571,128.5714 -57.066,27.1254 -128.2033,58.2385 -172.1428,72.5001 -43.9395,14.2616 -131.4286,31.0714 -131.4286,31.0714 L 1159.317,918.349 Z"
3763 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#121212;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3764 inkscape:connector-curvature="0" />
3765 <path
3766 clip-path="url(#clipPath3992)"
3767 sodipodi:nodetypes="czczzcc"
3768 id="path8065"
3769 d="m 1241.5965,652.95007 c 0,0 -64.7215,54.33706 -145.6639,98.99494 -82.0244,45.25484 -284.25704,93.3381 -284.25704,93.3381 0,0 -15.10137,21.05196 45.25489,28.28428 60.35626,7.23232 224.08195,-53.30069 278.60015,-96.16654 54.5182,-42.86585 120.2081,-111.72286 120.2081,-111.72286 l -14.1422,-12.72792 z"
3770 style="display:inline;overflow:visible;visibility:visible;opacity:0.5;fill:url(#linearGradient3666);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter3779);enable-background:accumulate"
3771 transform="translate(450.03125,73.843964)"
3772 inkscape:connector-curvature="0" />
3773 <g
3774 clip-path="url(#clipPath3986)"
3775 id="g8067"
3776 style="display:inline;opacity:1;enable-background:new"
3777 transform="translate(450.03125,73.843964)">
3778 <g
3779 id="g8069"
3780 style="filter:url(#filter3677)"
3781 transform="translate(-174.03125,62.156036)">
3782 <g
3783 id="g8071"
3784 style="filter:url(#filter3785)">
3785 <path
3786 transform="translate(174.03125,-62.156036)"
3787 style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3788 d="m 1094.2857,725.93361 c 0,0 -0.2961,26.16091 4.6428,37.85715 4.9389,11.69624 20.0381,26.48665 28.5715,31.42857 8.5334,4.94192 18.9286,8.57142 18.9286,8.57142 l 117.8571,-115 17.8572,-75.71428 -96.4286,38.57143 -91.4286,74.28571 z"
3789 id="path8073"
3790 sodipodi:nodetypes="czzccccc"
3791 inkscape:connector-curvature="0" />
3792 <rect
3793 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3794 id="rect8075"
3795 width="333.75412"
3796 height="309.71277"
3797 x="1197.8389"
3798 y="486.14224" />
3799 </g>
3800 </g>
3801 <g
3802 id="g8077"
3803 style="display:inline;opacity:0.18000004;enable-background:new"
3804 transform="translate(-174.03125,62.156036)">
3805 <g
3806 id="g8079"
3807 style="filter:url(#filter3785)">
3808 <path
3809 transform="translate(174.03125,-62.156036)"
3810 style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3811 d="m 1094.2857,725.93361 c 0,0 -0.2961,26.16091 4.6428,37.85715 4.9389,11.69624 20.0381,26.48665 28.5715,31.42857 8.5334,4.94192 18.9286,8.57142 18.9286,8.57142 l 117.8571,-115 17.8572,-75.71428 -96.4286,38.57143 -91.4286,74.28571 z"
3812 id="path8081"
3813 sodipodi:nodetypes="czzccccc"
3814 inkscape:connector-curvature="0" />
3815 <rect
3816 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
3817 id="rect8083"
3818 width="333.75412"
3819 height="309.71277"
3820 x="1197.8389"
3821 y="486.14224" />
3822 </g>
3823 </g>
3824 </g>
3825 <path
3826 sodipodi:nodetypes="cssssccccccssssssssccssssssccssssc"
3827 clip-path="url(#clipPath3722)"
3828 id="path8085"
3829 d="m 1264.1875,605 c -4.4911,0.73268 -8.157,3.45509 -11.9375,6.40625 -10.0813,7.86976 -28.1695,34.42524 -48.0312,50.46875 -39.8674,32.20316 -103.996,69.97701 -152.5626,91.09375 -48.614,21.13738 -130.54122,45.81801 -174.31245,57.5 -43.39821,11.58246 -115.04403,25.13107 -168.25,26.53125 l -4.5625,0.125 -2,4.125 -92.84375,192.125 -6.5,13.4688 14.65625,-2.8438 c 0,0 87.26968,-16.6514 132.34375,-31.2812 44.7252,-14.51667 115.79086,-45.66683 173.03125,-72.87505 C 980.82199,912.46306 1090.1551,847.86412 1137.5,810.375 c 46.3608,-36.70982 77.8049,-64.71682 99.9375,-90.25 10.9011,-12.576 22.7448,-27.53144 31.0313,-42.75 8.2864,-15.21856 19.1597,-44.21808 13.6874,-58.84375 -1.2177,-3.25474 -2.5514,-6.0613 -4.5937,-8.5 -2.0423,-2.4387 -8.4747,-1.57199 -8.5625,-5.03125 -0.2098,-8.26482 -3.3155,-0.24423 -4.8125,0 z m 2.1563,15.21875 c 0.4148,0.58574 1.0311,1.55766 1.7812,3.5625 2.8968,7.74213 -1.4407,31.89875 -8.8125,45.4375 -7.3718,13.53875 -22.6384,28.92394 -33.1875,41.09375 -21.0754,24.31356 -51.9037,51.86156 -97.9375,88.3125 -45.0496,35.67159 -155.46033,101.09459 -211.40625,127.6875 -56.89173,27.04249 -128.09616,58.1184 -171.25,72.125 -36.36491,11.8031 -95.84471,23.8338 -115.71875,27.7813 L 714.09375,851.75 c 54.70691,-2.0493 123.79259,-15.21635 167.125,-26.78125 44.33422,-11.83225 126.07865,-36.33633 176.40625,-58.21875 50.112,-21.78871 112.5344,-61.16816 154.0312,-94.6875 20.6464,-16.67721 41.7449,-42.54588 49.8126,-48.84375 2.437,-1.90242 4.0806,-2.6358 4.875,-3 z"
3830 style="display:inline;overflow:visible;visibility:visible;opacity:0.83300003;fill:#050505;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;filter:url(#filter8225);enable-background:accumulate"
3831 transform="translate(450.03125,73.843964)"
3832 inkscape:connector-curvature="0" />
3833 <g
3834 inkscape:transform-center-y="-12.859654"
3835 inkscape:transform-center-x="-185.09603"
3836 transform="matrix(0.9934486,0.1142802,-0.1142802,0.9934486,-9.24324,588.09054)"
3837 mask="url(#mask7704)"
3838 id="g8087"
3839 style="display:inline;opacity:1;enable-background:new">
3840 <path
3841 sodipodi:nodetypes="ccssscsssscssssscsssscssssscsssscssssscsssscssssscsssscssssscsssscssscccccssscssssscsssssscssssscsssssscssssscsssssscssssscsssssscssssscsssssscssssscsssssssssssc"
3842 id="path8089"
3843 d="m 1111.4062,-285.9375 -3.9374,1.875 c -0.041,0.0102 -0.1,0.0205 -0.125,0.0312 -0.4188,0.21285 -0.1647,0.10058 -0.6563,0.3125 -0.4861,0.20956 -1.7376,0.58419 -4.0937,1.46875 -3.3312,1.25058 -5.8043,2.14984 -7,3.0625 -1.5362,0.0213 -3.7205,0.23331 -5.6563,0.71875 -2.9815,0.74767 -4.8552,1.17401 -6.75,1.59375 -1.8948,0.41973 -1.6755,0.64219 -2.875,0.875 -1.2966,0.25167 -1.7214,-0.009 -5.4375,0.78125 -3.4899,0.74215 -8.8948,1.93107 -10.1562,2.6875 -1.584,-0.18078 -3.8675,-0.32178 -5.8438,-0.0312 -3.0404,0.44696 -4.9162,0.67276 -6.8438,0.90625 -0.6554,0.0794 -1.041,0.20078 -1.3437,0.28125 -0.4262,0.13166 -0.6858,0.26002 -1.375,0.34375 -1.3116,0.15937 -1.7622,-0.15683 -5.5313,0.28125 -3.5539,0.41309 -9.0054,1.27282 -10.25,1.9375 -1.599,-0.29729 -3.8577,-0.53419 -5.8437,-0.34375 -3.0588,0.29332 -4.972,0.48399 -6.9063,0.65625 -1.9342,0.17227 -1.6886,0.42237 -2.9062,0.53125 -1.3162,0.1177 -1.7598,-0.16363 -5.5312,0.25 -3.5421,0.38845 -9.0079,1.20927 -10.2813,1.875 -1.5989,-0.29469 -3.8872,-0.50701 -5.875,-0.3125 -3.05829,0.29925 -4.9412,0.48024 -6.875,0.65625 -0.65749,0.0598 -1.04005,0.17856 -1.34375,0.25 -0.4277,0.11896 -0.6835,0.21807 -1.375,0.28125 -1.316,0.12026 -1.75975,-0.19488 -5.53125,0.21875 -3.55619,0.39002 -9.0056,1.23916 -10.25,1.90625 -1.59869,-0.29418 -3.85985,-0.52372 -5.84375,-0.3125 -3.0557,0.32533 -4.97405,0.52624 -6.90625,0.71875 -1.93219,0.19251 -1.68975,0.44088 -2.90625,0.5625 -1.31488,0.13147 -1.76305,-0.16454 -5.53125,0.28125 -3.53889,0.41866 -8.9777,1.29217 -10.25,1.96875 -1.59759,-0.28104 -3.85995,-0.42043 -5.84375,-0.1875 -3.05198,0.35837 -4.945,0.56786 -6.875,0.78125 -0.65618,0.0726 -1.04065,0.17269 -1.34375,0.25 -0.42679,0.12723 -0.6849,0.2672 -1.375,0.34375 -1.31339,0.14569 -1.76735,-0.17402 -5.53125,0.3125 -3.54888,0.45876 -8.97865,1.41902 -10.21875,2.125 -1.59309,-0.24424 -3.8338,-0.38135 -5.8125,-0.125 -3.04759,0.39482 -4.9507,0.64845 -6.875,0.90625 -1.92429,0.25779 -1.7261,0.49353 -2.9375,0.65625 -1.30949,0.1759 -1.7472,-0.10438 -5.5,0.46875 -3.52429,0.53824 -8.9232,1.69917 -10.1875,2.4375 -1.58749,-0.20354 -3.8455,-0.25473 -5.8125,0.0937 -3.02619,0.53612 -4.8989,0.86169 -6.8125,1.1875 -0.65059,0.11077 -1.0137,0.27094 -1.3125,0.375 -0.42069,0.16488 -0.66345,0.3313 -1.34375,0.46875 -1.2947,0.26159 -1.7271,-0.006 -5.4375,0.8125 -3.49848,0.77195 -8.8459,2.38293 -10.0625,3.21875 -1.5629,-0.0774 -3.7575,0.0853 -5.6875,0.59375 -2.97238,0.78313 -4.8177,1.23209 -6.6875,1.75 -1.87,0.5179 -1.66665,0.76728 -2.84375,1.09375 -1.27249,0.3529 -1.69705,0.10709 -5.34375,1.1875 -3.42468,1.01463 -8.6494,2.93317 -9.875,3.84375 -1.53878,0.0127 -3.7198,0.27222 -5.625,0.875 -2.93098,0.92734 -4.75035,1.45842 -6.59375,2.0625 -0.62679,0.20538 -0.99165,0.39258 -1.28125,0.53125 -0.40758,0.21361 -0.6533,0.40875 -1.3125,0.625 -1.2545,0.41154 -1.68615,0.18904 -5.28125,1.4375 -3.38989,1.17717 -8.59495,3.2137 -9.78125,4.15625 -1.52388,0.0597 -3.65005,0.39487 -5.53125,1.0625 -2.89739,1.02829 -4.69905,1.67548 -6.53125,2.3125 -1.8322,0.63701 -1.62785,0.84854 -2.78125,1.25 -1.24679,0.43396 -1.66355,0.19972 -5.21875,1.5625 -3.3387,1.2798 -8.4871,3.48255 -9.6875,4.46875 -1.50718,0.10769 -3.6357,0.4988 -5.5,1.21875 -2.86818,1.1076 -4.6239,1.78156 -6.4375,2.46875 -0.6167,0.23363 -0.99645,0.44203 -1.28125,0.59375 10e-6,0 0,0.0295 0,0.0312 l -8,3.1875 -12.4759,3.49189 7.92966,19.27772 c -0.59163,1.97357 12.54624,-4.73836 12.54624,-4.73836 0.22641,-0.14468 0.44895,-0.27261 0.71875,-0.375 1.08052,-0.40998 2.1716,-0.21577 6,-1.6875 3.82852,-1.47174 5.22405,-2.00498 5.90625,-2.40625 0.67961,-0.39978 1.61175,-0.87937 2.21875,-1.53125 1.82692,-0.13775 3.5708,-0.49323 4.9375,-1 2.968,-1.10052 4.87535,-1.80619 6.78125,-2.46875 1.90581,-0.66254 2.35415,-1.41487 3.40625,-1.78125 1.09162,-0.38011 2.1951,-0.16538 6.0625,-1.53125 3.8674,-1.36586 5.28315,-1.82708 5.96875,-2.21875 0.70111,-0.40052 1.7008,-0.93298 2.3125,-1.59375 1.97081,-0.0547 3.81695,-0.38463 5.28125,-0.875 3.00152,-1.00508 4.92615,-1.62171 6.84375,-2.25 1.53861,-0.5041 2.17415,-1.04677 2.90625,-1.4375 0.23022,-0.13431 0.4759,-0.25373 0.75,-0.34375 1.09832,-0.36048 2.18145,-0.0814 6.09375,-1.3125 3.91231,-1.23113 5.366,-1.67295 6.0625,-2.03125 0.69391,-0.35697 1.6301,-0.79261 2.25,-1.40625 1.86521,-0.0227 3.63585,-0.26683 5.03125,-0.6875 3.0304,-0.91354 4.9924,-1.4301 6.9375,-1.96875 1.94512,-0.53864 2.4262,-1.26452 3.5,-1.5625 1.11402,-0.30915 2.22,0.007 6.1875,-1.03125 3.9675,-1.03863 5.4175,-1.43273 6.125,-1.75 0.7348,-0.32959 1.8139,-0.75372 2.4375,-1.375 1.99782,0.116 3.85745,-0.0201 5.34375,-0.375 3.07811,-0.735 5.0834,-1.10094 7.0625,-1.5 1.58791,-0.32018 2.2443,-0.79055 3,-1.09375 0.23751,-0.1068 0.4669,-0.19276 0.75,-0.25 1.13341,-0.22919 2.30465,0.20893 6.34375,-0.5 4.03942,-0.70893 5.50025,-0.92709 6.21875,-1.1875 0.71581,-0.25944 1.70435,-0.56724 2.34375,-1.09375 1.9242,0.23949 3.7479,0.22453 5.1875,0 3.12642,-0.48762 5.15455,-0.70067 7.15625,-0.96875 2.00171,-0.26807 2.48875,-0.94514 3.59375,-1.09375 1.14642,-0.15418 2.27585,0.30157 6.34375,-0.21875 4.06781,-0.52032 5.56025,-0.69573 6.28125,-0.9375 0.73712,-0.24714 1.7981,-0.58623 2.4375,-1.125 2.05,0.33553 3.9737,0.39796 5.5,0.21875 3.1422,-0.36896 5.18,-0.55936 7.1875,-0.78125 1.61082,-0.17802 2.26465,-0.6082 3.03125,-0.84375 0.24091,-0.0855 0.49405,-0.1556 0.78125,-0.1875 1.1497,-0.12772 2.3013,0.34665 6.375,-0.125 4.0737,-0.47165 5.55905,-0.6106 6.28125,-0.84375 0.71941,-0.23227 1.70025,-0.47346 2.34375,-0.96875 1.9363,0.33346 3.77005,0.40424 5.21875,0.25 3.14601,-0.33495 5.1775,-0.51859 7.1875,-0.71875 2.00991,-0.20014 2.48415,-0.82639 3.59375,-0.9375 1.1511,-0.11528 2.2965,0.36506 6.375,-0.0625 4.0785,-0.42756 5.5889,-0.56209 6.3125,-0.78125 0.73922,-0.22386 1.7956,-0.51325 2.4375,-1.03125 2.057,0.39867 4.00185,0.4934 5.53125,0.34375 3.14871,-0.3081 5.1758,-0.47325 7.1875,-0.65625 1.61401,-0.14682 2.26305,-0.56055 3.03125,-0.78125 0.2413,-0.0809 0.49355,-0.12991 0.78125,-0.15625 1.15211,-0.10545 2.2929,0.39275 6.375,0 4.08211,-0.39275 5.5889,-0.53084 6.3125,-0.75 0.7209,-0.21833 1.6996,-0.4477 2.3437,-0.9375 1.9381,0.34999 3.7689,0.45438 5.2188,0.3125 3.1487,-0.3081 5.1758,-0.47325 7.1875,-0.65625 2.0116,-0.18299 2.5142,-0.83802 3.625,-0.9375 1.1523,-0.10323 2.2922,0.38483 6.375,0 4.0829,-0.38482 5.5887,-0.501 6.3125,-0.71875 0.7393,-0.22243 1.7956,-0.51449 2.4375,-1.03125 2.0574,0.40177 4.0029,0.50333 5.5313,0.34375 3.1465,-0.32852 5.177,-0.5227 7.1874,-0.71875 1.613,-0.15729 2.2657,-0.63148 3.0313,-0.875 0.2407,-0.088 0.4632,-0.12137 0.75,-0.15625 1.1483,-0.1397 2.3167,0.33991 6.375,-0.25 4.0583,-0.58992 5.5618,-0.77714 6.2813,-1.03125 0.7166,-0.25316 1.6746,-0.55807 2.3124,-1.09375 1.9197,0.21194 3.72,0.15141 5.1563,-0.0937 3.1191,-0.5324 5.1116,-0.92861 7.0937,-1.3125 1.9821,-0.38387 2.4743,-1.03965 3.5626,-1.28125 1.1287,-0.25066 2.2702,0.11629 6.25,-0.875 3.9795,-0.99127 5.4295,-1.4193 6.125,-1.78125 0.7222,-0.376 1.7617,-0.87058 2.375,-1.53125 1.9629,-0.012 3.7937,-0.29105 5.2187,-0.84375 2.9512,-1.1446 4.8732,-1.86942 6.6875,-2.75 1.4557,-0.70652 2.3191,-1.70203 2.5312,-2 0.2123,-0.29795 0.099,-0.72855 0.125,-0.75 0.043,-0.0352 0.3404,-0.094 0.5,-0.4375 0.859,-1.84707 2.3232,-5.62764 2.4376,-6.3125 0.1137,-0.68214 0.168,-1.35277 0.2187,-1.75 0.029,-0.2295 -0.1471,-0.8789 -0.125,-0.9375 0.031,-0.082 0.2883,-0.25057 0.3437,-0.5 0.2663,-1.19831 0.089,-2.20736 -0.125,-3.625 -0.2139,-1.41763 -0.9716,-4.61463 -1.625,-5.46875 -0.6589,-0.86172 -1.2248,-1.01051 -1.75,-1 z"
3844 style="display:inline;fill:#bcb786;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3845 transform="translate(0.08004571,-0.03125)"
3846 inkscape:connector-curvature="0" />
3847 <g
3848 id="g8091"
3849 clip-path="url(#clipPath7421)">
3850 <path
3851 sodipodi:nodetypes="czscsssscssssscsssscssssscsssscssssscsssscssssscsssscssssscsssscssccsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscc"
3852 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7001);enable-background:new"
3853 d="m 1107.409,-284.04961 c -0.4187,0.21283 -0.1556,0.0939 -0.6472,0.30581 -0.4861,0.20954 -1.7234,0.57439 -4.0796,1.45895 -3.3311,1.25057 -5.8302,2.15344 -7.0259,3.0661 -1.5361,0.0213 -3.7205,0.23331 -5.6563,0.71875 -2.9815,0.74766 -4.8552,1.17401 -6.75,1.59375 -1.8948,0.41972 -1.6755,0.64219 -2.875,0.875 -1.2966,0.25166 -1.7214,-0.009 -5.4375,0.78125 -3.4899,0.74214 -8.8948,1.93107 -10.1562,2.6875 -1.5839,-0.18079 -3.8675,-0.32178 -5.8438,-0.0312 -3.0404,0.44695 -4.9162,0.67276 -6.8437,0.90625 -0.6554,0.0794 -1.0411,0.20078 -1.3438,0.28125 -0.4262,0.13165 -0.6858,0.26002 -1.375,0.34375 -1.3116,0.15936 -1.7622,-0.15683 -5.5312,0.28125 -3.5539,0.41308 -9.0054,1.27282 -10.25,1.9375 -1.599,-0.2973 -3.8578,-0.53419 -5.8438,-0.34375 -3.0588,0.29331 -4.972,0.48399 -6.9062,0.65625 -1.9343,0.17226 -1.6887,0.42237 -2.9063,0.53125 -1.3162,0.11769 -1.7598,-0.16363 -5.5312,0.25 -3.5419,0.38844 -9.0079,1.20927 -10.2813,1.875 -1.5989,-0.2947 -3.88717,-0.50701 -5.875,-0.3125 -3.05824,0.29924 -4.94113,0.48024 -6.875,0.65625 -0.65749,0.0598 -1.04004,0.17856 -1.34375,0.25 -0.42765,0.11895 -0.68351,0.21807 -1.375,0.28125 -1.31596,0.12025 -1.75976,-0.19488 -5.53125,0.21875 -3.55614,0.39001 -9.00554,1.23916 -10.25,1.90625 -1.59863,-0.29419 -3.85984,-0.52372 -5.84375,-0.3125 -3.0556,0.32532 -4.97404,0.52624 -6.90625,0.71875 -1.93221,0.1925 -1.68987,0.44088 -2.90625,0.5625 -1.31488,0.13146 -1.76298,-0.16454 -5.53125,0.28125 -3.53887,0.41865 -8.97768,1.29217 -10.25,1.96875 -1.59755,-0.28105 -3.85996,-0.42043 -5.84375,-0.1875 -3.05198,0.35836 -4.94508,0.56786 -6.875,0.78125 -0.6562,0.0725 -1.04066,0.17269 -1.34375,0.25 -0.42677,0.12722 -0.68491,0.2672 -1.375,0.34375 -1.31333,0.14568 -1.76746,-0.17402 -5.53125,0.3125 -3.54889,0.45875 -8.97863,1.41902 -10.21875,2.125 -1.59305,-0.24424 -3.83381,-0.38135 -5.8125,-0.125 -3.04759,0.39481 -4.95071,0.64845 -6.875,0.90625 -1.92428,0.25779 -1.72611,0.49353 -2.9375,0.65625 -1.30946,0.1759 -1.74719,-0.10438 -5.5,0.46875 -3.52429,0.53824 -8.92315,1.69917 -10.1875,2.4375 -1.5875,-0.20354 -3.8455,-0.25473 -5.8125,0.0937 -3.02617,0.53612 -4.89889,0.86169 -6.8125,1.1875 -0.65061,0.11077 -1.01371,0.27094 -1.3125,0.375 -0.42067,0.16488 -0.66345,0.3313 -1.34375,0.46875 -1.29465,0.26159 -1.72712,-0.006 -5.4375,0.8125 -3.49853,0.77195 -8.84595,2.38293 -10.0625,3.21875 -1.56278,-0.0774 -3.75758,0.0853 -5.6875,0.59375 -2.97244,0.78313 -4.81761,1.23209 -6.6875,1.75 -1.86988,0.5179 -1.6666,0.76728 -2.84375,1.09375 -1.27246,0.3529 -1.69703,0.10709 -5.34375,1.1875 -3.4247,1.01463 -8.64944,2.93317 -9.875,3.84375 -1.53883,0.0127 -3.71983,0.27222 -5.625,0.875 -2.93106,0.92734 -4.75031,1.45842 -6.59375,2.0625 -0.62676,0.20538 -0.99173,0.39258 -1.28125,0.53125 -0.40763,0.21361 -0.65334,0.40875 -1.3125,0.625 -1.25446,0.41154 -1.68611,0.18904 -5.28125,1.4375 -3.38985,1.17717 -8.59498,3.2137 -9.78125,4.15625 -1.52389,0.0597 -3.65005,0.39487 -5.53125,1.0625 -2.89739,1.02829 -4.69908,1.67548 -6.53125,2.3125 -1.83217,0.63701 -1.62785,0.84854 -2.78125,1.25 -1.24678,0.43396 -1.66361,0.19972 -5.21875,1.5625 -3.33867,1.2798 -8.48715,3.48255 -9.6875,4.46875 -1.50718,0.10769 -3.63569,0.4988 -5.5,1.21875 -2.86818,1.1076 -4.6238,1.78156 -6.4375,2.46875 -0.61666,0.23363 -0.99641,0.44203 -1.28125,0.59375 0,0 0,1.09375 0,1.09375 0.11178,-0.22236 0.38599,-0.81743 0.90625,-1.09375 0.69797,-0.37072 4.81363,-1.99337 6.8125,-2.71875 1.65686,-0.60125 4.15389,-1.32868 5.96875,-1.3125 0.30162,0.003 0.58762,0.0509 0.84375,0.0937 1.84249,0.30825 7.46875,1.5625 7.46875,1.5625 -10e-6,0 -6.23349,-1.64675 -7.03125,-1.84375 -0.19079,-0.0471 -0.53572,-0.0687 -0.96875,-0.0625 1.14546,-0.86971 4.761,-2.39351 7.34375,-3.4375 2.83822,-1.14727 3.11681,-1.25182 5.0625,-1.65625 2.0083,-0.41744 3.15625,-0.5 3.15625,-0.5 0,10e-6 -0.0824,-0.60114 0.96875,-1.125 0.7051,-0.35141 4.88702,-1.8924 6.90625,-2.5625 1.9519,-0.64773 5.0574,-1.3585 6.875,-1 1.86323,0.3675 7.53125,1.8125 7.53125,1.8125 10e-6,0 -6.287,-1.87111 -7.09375,-2.09375 -0.19292,-0.0532 -0.53084,-0.086 -0.96875,-0.0937 1.15834,-0.83288 4.79444,-2.19532 7.40625,-3.15625 2.87016,-1.05601 3.16734,-1.1618 5.125,-1.53125 1.85349,-0.34979 2.85884,-0.42548 3.03125,-0.4375 0.1136,-0.21724 0.37745,-0.81002 0.90625,-1.0625 0.70944,-0.33874 4.92607,-1.71275 6.96875,-2.3125 1.69317,-0.49711 4.24077,-1.03677 6.09375,-0.90625 0.30795,0.0217 0.61349,0.0973 0.875,0.15625 1.88118,0.42432 7.59375,2.03125 7.59375,2.03125 10e-6,0 -6.34174,-2.06525 -7.15625,-2.3125 -0.19479,-0.0591 -0.55788,-0.10394 -1,-0.125 1.16949,-0.79755 4.86302,-2.05622 7.5,-2.9375 2.89781,-0.96847 3.23301,-1.00332 5.21875,-1.28125 2.04965,-0.28689 3.1875,-0.3125 3.1875,-0.3125 -2e-5,0 -0.0728,-0.60697 1,-1.0625 0.7196,-0.30557 4.99098,-1.50075 7.0625,-2 2.00244,-0.48258 5.19849,-0.92829 7.0625,-0.40625 1.91078,0.53515 7.71875,2.5 7.71875,2.5 0,0 -6.42266,-2.42351 -7.25,-2.71875 -0.19784,-0.0706 -0.58216,-0.14039 -1.03125,-0.1875 1.1879,-0.72865 4.91527,-1.77408 7.59375,-2.5 2.94342,-0.79775 3.29208,-0.77083 5.3125,-0.90625 1.91289,-0.12823 2.94705,-0.0711 3.125,-0.0625 0.11728,-0.20366 0.39176,-0.77948 0.9375,-0.96875 0.73219,-0.25394 5.07852,-1.04789 7.1875,-1.375 1.74813,-0.27111 4.40088,-0.4847 6.3125,-0.0937 0.31766,0.065 0.60522,0.18551 0.875,0.28125 1.94074,0.68873 7.84375,3.09375 7.84375,3.09375 10e-6,0 -6.53471,-2.95077 -7.375,-3.3125 -0.20097,-0.0865 -0.57513,-0.16679 -1.03125,-0.25 1.2065,-0.63318 5.02956,-1.3956 7.75,-1.90625 2.98953,-0.56119 3.30023,-0.52954 5.34375,-0.53125 2.10926,-0.002 3.3125,0.125 3.3125,0.125 0,1e-5 -0.0727,-0.63119 1.03125,-0.9375 0.74052,-0.20547 5.12612,-0.83387 7.25,-1.0625 2.05302,-0.22099 5.31863,-0.25222 7.21875,0.46875 1.94779,0.73907 7.84375,3.375 7.84375,3.375 2e-5,0 -6.56288,-3.17897 -7.40625,-3.5625 -0.20168,-0.0917 -0.54221,-0.18621 -1,-0.28125 1.21092,-0.60188 4.98442,-1.24884 7.71875,-1.65625 3.0048,-0.44772 3.32551,-0.4517 5.375,-0.40625 1.94045,0.043 3.00699,0.19423 3.1875,0.21875 0.11892,-0.19316 0.3839,-0.76583 0.9375,-0.90625 0.74271,-0.18838 5.15429,-0.73428 7.28125,-0.9375 1.76303,-0.16842 4.42009,-0.23429 6.34375,0.25 0.31968,0.0805 0.60351,0.20359 0.875,0.3125 1.95293,0.78349 7.90625,3.46875 7.90625,3.46875 -2e-5,0 -6.59191,-3.25348 -7.4375,-3.65625 -0.20222,-0.0963 -0.57226,-0.20703 -1.03125,-0.3125 1.21414,-0.57427 5.04366,-1.12219 7.78125,-1.5 3.00838,-0.4152 3.32307,-0.44263 5.375,-0.375 2.11798,0.0698 3.3125,0.25 3.3125,0.25 -2e-5,0 -0.0773,-0.63741 1.03125,-0.90625 0.74362,-0.18035 5.15176,-0.66355 7.28125,-0.84375 2.05847,-0.17417 5.34324,-0.12432 7.25,0.65625 1.95459,0.80016 7.875,3.53125 7.875,3.53125 -2e-5,0 -6.55993,-3.30876 -7.40625,-3.71875 -0.20237,-0.0981 -0.57186,-0.2031 -1.03125,-0.3125 1.21517,-0.5639 5.01008,-1.1143 7.75,-1.46875 3.01091,-0.38952 3.32131,-0.39765 5.375,-0.3125 1.94439,0.0806 3.00663,0.25324 3.1875,0.28125 0.11916,-0.19086 0.38277,-0.74531 0.9375,-0.875 0.74426,-0.174 5.14993,-0.65047 7.28125,-0.8125 1.76662,-0.13427 4.4497,-0.12571 6.375,0.375 0.32,0.0832 0.6033,0.20127 0.875,0.3125 1.9546,0.80016 7.9063,3.5625 7.9063,3.5625 -10e-5,0 -6.5912,-3.34001 -7.4375,-3.75 -0.2024,-0.0981 -0.5719,-0.20311 -1.0313,-0.3125 1.2151,-0.5639 5.0413,-1.08306 7.7813,-1.4375 3.0109,-0.38953 3.3525,-0.4289 5.4062,-0.34375 2.1197,0.0879 3.3125,0.3125 3.3125,0.3125 0,0 -0.078,-0.64902 1.0313,-0.90625 0.7443,-0.17256 5.1495,-0.62336 7.2812,-0.78125 2.0606,-0.1526 5.3429,-0.0968 7.25,0.6875 1.955,0.80395 7.875,3.5 7.875,3.5 0,0 -6.5598,-3.27587 -7.4062,-3.6875 -0.2025,-0.0984 -0.5718,-0.20222 -1.0313,-0.3125 1.2154,-0.56154 5.0119,-1.12778 7.75,-1.5 3.009,-0.40905 3.3227,-0.41558 5.375,-0.34375 1.9431,0.068 3.0072,0.16485 3.1875,0.1875 0.1188,-0.1944 0.3846,-0.72881 0.9375,-0.875 0.7418,-0.19612 5.1311,-0.82878 7.25,-1.09375 1.7564,-0.21961 4.4053,-0.33231 6.3125,0.0312 0.3169,0.0604 0.6058,0.18938 0.875,0.28125 1.9362,0.66092 7.8438,2.9375 7.8438,2.9375 -1e-4,0 -6.5367,-2.80655 -7.375,-3.15625 -0.2005,-0.0836 -0.5762,-0.17333 -1.0313,-0.25 1.2037,-0.65046 5.0191,-1.37195 7.7188,-2 2.9667,-0.6902 3.2889,-0.75507 5.3125,-0.875 2.0886,-0.1238 3.2812,-0.0312 3.2812,-0.0312 0,1e-5 -0.087,-0.63205 1,-1.03125 0.7292,-0.2678 5.0472,-1.33797 7.125,-1.8125 2.0085,-0.45869 5.1679,-1.0293 7,-0.625 1.8781,0.41446 13.5782,3.01563 13.5782,3.01563 0,0 -12.3275,-3.02266 -13.1407,-3.26563 -0.1945,-0.0581 -0.5586,-0.10626 -1,-0.125 1.1676,-0.80369 3.5142,-1.6873 6.1094,-2.70312 1.6814,-0.65818 0.9237,-0.37659 2.7759,-1.0036 1.7536,-0.59366 2.4854,-1.01071 2.6304,-1.11299 0.3461,-0.20651 -0.356,-0.12188 -0.5442,-0.0424 z"
3854 id="path8093"
3855 inkscape:connector-curvature="0" />
3856 <path
3857 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6949);enable-background:new"
3858 d="m 1082.625,-275.125 c 1.873,0.39348 4.4961,1.14555 6.0313,1.96875 1.5352,0.82319 2.8222,1.056 5.375,2.5 2.5266,1.42926 4.7958,2.00696 6.9687,2.53125 2.3476,0.56642 5.4354,0.71523 8.8438,1.1875 -1.0889,-0.83975 -6.6074,-1.17245 -8.4063,-1.5625 -1.7989,-0.39006 -3.8941,-1.01616 -6.5937,-2.3125 -2.6997,-1.29634 -3.4944,-1.79896 -5.8125,-2.6875 -2.3182,-0.88854 -4.0044,-1.38314 -6.4063,-1.625 z"
3859 id="path8095"
3860 inkscape:connector-curvature="0" />
3861 <path
3862 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6961);enable-background:new"
3863 d="m 1051.4688,-270 c 1.9053,0.57759 4.5281,1.61572 6.0937,2.59375 1.5656,0.97802 2.8802,1.35981 5.5,3.125 2.593,1.74716 4.9859,2.70927 7.25,3.59375 2.4461,0.95557 5.6826,1.65713 9.4063,3.0625 -1.1896,-1.13784 -7.0631,-2.68675 -8.9375,-3.375 -1.8745,-0.68825 -4.0818,-1.5662 -6.875,-3.28125 -2.7933,-1.71504 -3.5736,-2.2839 -5.9375,-3.40625 -2.3641,-1.12234 -4.0567,-1.83455 -6.5,-2.3125 z"
3864 id="path8097"
3865 inkscape:connector-curvature="0" />
3866 <path
3867 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6957);enable-background:new"
3868 d="m 1020.2188,-266.84375 c 1.9119,0.63811 4.5812,1.75536 6.1562,2.8125 1.5751,1.05715 2.8956,1.50867 5.5313,3.40625 2.6086,1.87821 5.0284,3.03003 7.3125,4.0625 2.4677,1.11545 5.7645,2.1733 9.5312,3.84375 -1.2033,-1.22253 -7.2028,-3.31423 -9.0937,-4.125 -1.891,-0.81077 -4.0649,-1.89379 -6.875,-3.75 -2.8102,-1.8562 -3.6218,-2.47693 -6,-3.71875 -2.3783,-1.2418 -4.1107,-1.97569 -6.5625,-2.53125 z"
3869 id="path8099"
3870 inkscape:connector-curvature="0" />
3871 <path
3872 sodipodi:nodetypes="cssscscsscsssccscssssssscscsscsssscscssssssscscsscsssscscssssssscscsscsssscscssssssscscsscsssscscssssssscscsscsssccscsscscssscssssscsssssscssssscsssssscssssscsssssscssssscsssssscssssscsssssscssssscsszsszssszzcczzzczzzc"
3873 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6997);enable-background:new"
3874 d="m 1110.1719,-266.89063 c 0.1508,0.0486 0.688,0.631 0.1094,1.48438 -0.8101,1.19459 -5.7049,3.32429 -8.5625,4.125 -2.8449,0.79712 -6.2901,0.97774 -10.5625,-0.375 -4.3016,-1.36195 -5.4697,-2.46872 -10.6563,-4.3125 4.664,2.11517 6.1953,3.95233 10.125,5.34375 1.6207,0.57387 3.3671,0.9396 5.0625,1.03125 -0.4451,0.32563 -1.5303,0.9833 -3.5625,1.59375 -2.7955,0.83969 -6.6491,1.53378 -8.25,1.625 -1.5146,0.0863 -3.142,-0.51249 -3.4375,-0.625 0.1667,0.10308 0.3732,0.37734 -0.25,1.03125 -0.8993,0.94363 -6.1474,1.923 -9.125,2.25 -2.9643,0.32555 -6.5216,-0.016 -10.9062,-1.90625 -3.978,-1.71497 -5.339,-2.91536 -9.4063,-4.75 0,0 0,0.15625 0,0.15625 3.6431,2.09529 5.284,3.88327 8.875,5.5625 1.7302,0.80909 3.5917,1.40876 5.4063,1.71875 -0.5349,0.28676 -1.5578,0.71151 -3.4375,1.03125 -2.869,0.48796 -6.809,0.81614 -8.4375,0.75 -0.8507,-0.0345 -1.7286,-0.18437 -2.4063,-0.40625 -0.6848,-0.21488 -1.1897,-0.44467 -1.3125,-0.5 0.1694,0.10721 0.4311,0.40288 -0.2187,1.03125 -0.9097,0.87962 -6.2461,1.33638 -9.25,1.46875 -2.9905,0.13179 -6.5889,-0.45063 -11,-2.5625 -4.4412,-2.12626 -5.6415,-3.4016 -10.9063,-5.78125 4.7343,2.59704 6.2865,4.6291 10.3438,6.71875 1.6733,0.86185 3.4852,1.49425 5.25,1.9375 -0.4633,0.23332 -1.5894,0.68814 -3.6875,0.9375 -2.8863,0.34298 -6.8346,0.49288 -8.4688,0.375 -1.5462,-0.1115 -3.2312,-0.85696 -3.5312,-1 0.1691,0.12029 0.4138,0.41048 -0.2188,1 -0.9128,0.85073 -6.2441,1.26212 -9.25,1.375 -2.9925,0.11237 -6.5897,-0.49043 -11,-2.59375 -4.00125,-1.90823 -5.38803,-3.13783 -9.46875,-5.09375 -3e-5,0 0,0.15625 0,0.15625 3.65506,2.20392 5.29421,4.05255 8.90625,5.90625 1.74029,0.89315 3.637,1.52827 5.4688,1.96875 -0.54,0.2483 -1.5781,0.61533 -3.4688,0.84375 -2.88568,0.34858 -6.86605,0.52095 -8.5,0.40625 -0.85345,-0.0599 -1.72631,-0.25791 -2.40625,-0.5 -0.6871,-0.2353 -1.18935,-0.47226 -1.3125,-0.53125 0.16998,0.11227 0.46448,0.42225 -0.1875,1.03125 -0.91265,0.8525 -6.27533,1.29337 -9.28125,1.40625 -2.99246,0.11237 -6.59346,-0.52805 -11,-2.59375 -4.43653,-2.07978 -5.64688,-3.33171 -10.90625,-5.65625 4.72938,2.54749 6.29074,4.5778 10.34375,6.625 1.67155,0.84433 3.48554,1.46643 5.25,1.90625 -0.46323,0.23422 -1.5897,0.68407 -3.6875,0.9375 -2.88569,0.34858 -6.8362,0.56952 -8.46875,0.46875 -1.54456,-0.0953 -3.20031,-0.82885 -3.5,-0.96875 0.16899,0.11853 0.38192,0.40385 -0.25,1 -0.91186,0.86028 -6.24665,1.33025 -9.25,1.46875 -2.98995,0.1379 -6.56745,-0.45068 -10.96875,-2.46875 -3.99308,-1.83089 -5.36511,-3.0292 -9.4375,-4.90625 -2e-5,0 0,0.15625 0,0.15625 3.64761,2.13327 5.27033,3.93487 8.875,5.71875 1.73675,0.85951 3.60727,1.45014 5.4375,1.875 -0.53947,0.2529 -1.55063,0.64129 -3.4375,0.90625 -2.87978,0.40436 -6.83813,0.64562 -8.46875,0.5625 -0.85172,-0.0434 -1.7277,-0.20855 -2.40625,-0.4375 -0.68569,-0.22201 -1.1896,-0.44339 -1.3125,-0.5 0.16959,0.10899 0.4319,0.40965 -0.21875,1.03125 -0.91079,0.87014 -6.25021,1.39152 -9.25,1.5625 -2.98633,0.17021 -6.57381,-0.31577 -10.96875,-2.28125 -4.42489,-1.97888 -5.60596,-3.22819 -10.84375,-5.375 4.70997,2.38767 6.27017,4.38873 10.3125,6.34375 1.66715,0.80631 3.46043,1.39658 5.21875,1.78125 -0.46163,0.2487 -1.597,0.71225 -3.6875,1.03125 -2.8756,0.43876 -6.7804,0.7331 -8.40625,0.6875 -1.53823,-0.0431 -3.2328,-0.74522 -3.53125,-0.875 0.16833,0.11282 0.41057,0.41375 -0.21875,1.03125 -0.90812,0.8911 -6.20295,1.52825 -9.1875,1.8125 -2.97118,0.28298 -6.57342,-0.1758 -10.9375,-1.9375 -3.95934,-1.59831 -5.32915,-2.79487 -9.34375,-4.3125 3e-5,0 0,0.15625 0,0.15625 3.5959,1.81135 5.23831,3.58233 8.8125,5.15625 1.72207,0.75835 3.58748,1.28895 5.40625,1.625 -0.53609,0.27908 -1.56658,0.68763 -3.4375,1.0625 -2.85539,0.5721 -6.78942,1.01939 -8.40625,1.03125 -0.84451,0.006 -1.70608,-0.0809 -2.375,-0.25 -0.67591,-0.16151 -1.16009,-0.32923 -1.28125,-0.375 0.16722,0.094 0.42267,0.38348 -0.21875,1.0625 -0.89787,0.95052 -6.18648,1.91708 -9.125,2.4375 -2.92534,0.51809 -6.43215,0.37424 -10.71875,-1.03125 -4.3158,-1.41507 -5.47277,-2.52994 -10.5625,-3.96875 4.57685,1.75101 6.08855,3.56006 10.03125,5 1.62608,0.59389 3.36885,0.95565 5.09375,1.15625 -0.45285,0.29702 -1.55478,0.88339 -3.59375,1.46875 -2.80472,0.80517 -6.63886,1.57583 -8.21875,1.75 -1.49475,0.1648 -3.11623,-0.31681 -3.40625,-0.40625 0.16356,0.0901 0.39278,0.35993 -0.21875,1.0625 -0.88247,1.01385 -6.04452,2.37165 -8.9375,3.0625 -2.88002,0.68778 -6.3356,0.76002 -10.5625,-0.4375 -3.83485,-1.08645 -5.17258,-2.07237 -9.0625,-3.125 -10e-6,0 0,0.15625 0,0.15625 3.48418,1.39485 5.06941,2.9194 8.53125,4.03125 1.66793,0.53572 3.45578,0.78674 5.21875,0.875 -0.51964,0.35212 -1.50039,0.91452 -3.3125,1.53125 -2.76566,0.94125 -6.59024,1.93537 -8.15625,2.15625 -0.81794,0.11539 -1.6331,0.12283 -2.28125,0.0312 -0.65496,-0.0832 -1.1326,-0.21827 -1.25,-0.25 0.16204,0.0746 0.43399,0.34044 -0.1875,1.09375 -0.87,1.05453 -6.00963,2.65925 -8.875,3.4375 -2.85253,0.77476 -6.25912,0.9582 -10.4375,-0.0937 -4.20683,-1.05913 -5.35669,-2.04166 -10.34375,-3.15625 4.48454,1.45946 5.96935,3.13523 9.8125,4.25 1.58504,0.45977 3.28679,0.63825 4.96875,0.6875 -0.44157,0.33676 -1.51251,1.02773 -3.5,1.78125 -2.73393,1.03649 -6.45198,2.16269 -8,2.4375 -1.46462,0.26002 -3.05958,-0.11654 -3.34375,-0.1875 0.16025,0.0796 0.38044,0.32098 -0.21875,1.0625 -0.86466,1.07006 -5.91652,2.81815 -8.75,3.6875 -2.8208,0.86547 -6.2075,1.15631 -10.34375,0.21875 -3.75259,-0.85061 -5.04785,-1.71647 -8.875,-2.59375 0,0 0,0.15625 0,0.15625 3.42796,1.23779 4.98741,2.6323 8.375,3.53125 1.63216,0.43314 3.36704,0.58301 5.09375,0.5625 -0.50893,0.38417 -1.47675,1.02182 -3.25,1.75 -2.70634,1.11134 -6.43633,2.30781 -7.96875,2.625 -0.8004,0.16569 -1.61231,0.21862 -2.25,0.15625 0,0 0,0.51552 0,0.92229 0,0.26507 0,0.48396 0,0.48396 0.22645,-0.14468 0.44891,-0.27261 0.71875,-0.375 1.08052,-0.40998 2.17161,-0.21577 6,-1.6875 3.82843,-1.47174 5.22412,-2.00498 5.90625,-2.40625 0.6796,-0.39978 1.61165,-0.87937 2.21875,-1.53125 1.82685,-0.13775 3.57075,-0.49323 4.9375,-1 2.96812,-1.10052 4.87537,-1.80619 6.78125,-2.46875 1.90586,-0.66254 2.35409,-1.41487 3.40625,-1.78125 1.09155,-0.38011 2.19511,-0.16538 6.0625,-1.53125 3.86745,-1.36586 5.28316,-1.82708 5.96875,-2.21875 0.70109,-0.40052 1.70081,-0.93298 2.3125,-1.59375 1.9708,-0.0547 3.81685,-0.38463 5.28125,-0.875 3.00148,-1.00508 4.92615,-1.62171 6.84375,-2.25 1.5386,-0.5041 2.17402,-1.04677 2.90625,-1.4375 0.23016,-0.13431 0.47574,-0.25373 0.75,-0.34375 1.09823,-0.36048 2.18145,-0.0814 6.09375,-1.3125 3.91233,-1.23113 5.36605,-1.67295 6.0625,-2.03125 0.69388,-0.35697 1.63015,-0.79261 2.25,-1.40625 1.86521,-0.0227 3.63581,-0.26683 5.03125,-0.6875 3.03043,-0.91354 4.99238,-1.4301 6.9375,-1.96875 1.94511,-0.53864 2.42618,-1.26452 3.5,-1.5625 1.11401,-0.30915 2.21994,0.007 6.1875,-1.03125 3.96761,-1.03863 5.41758,-1.43273 6.125,-1.75 0.73487,-0.32959 1.81383,-0.75372 2.4375,-1.375 1.99774,0.116 3.85743,-0.0201 5.34375,-0.375 3.07811,-0.735 5.08344,-1.10094 7.0625,-1.5 1.58792,-0.32018 2.24429,-0.79055 3,-1.09375 0.23757,-0.1068 0.46695,-0.19276 0.75,-0.25 1.13347,-0.22919 2.30448,0.20893 6.34375,-0.5 4.03933,-0.70893 5.50025,-0.92709 6.21875,-1.1875 0.71586,-0.25944 1.70428,-0.56724 2.34375,-1.09375 1.92427,0.23949 3.74788,0.22453 5.1875,0 3.12633,-0.48762 5.15455,-0.70067 7.15625,-0.96875 2.00171,-0.26807 2.48869,-0.94514 3.59375,-1.09375 1.14639,-0.15418 2.27592,0.30157 6.34375,-0.21875 4.06784,-0.52032 5.56013,-0.69573 6.28125,-0.9375 0.7371,-0.24714 1.79809,-0.58623 2.4375,-1.125 2.05007,0.33553 3.97378,0.39796 5.5,0.21875 3.14231,-0.36896 5.17994,-0.55936 7.1875,-0.78125 1.61076,-0.17802 2.26467,-0.6082 3.03125,-0.84375 0.24094,-0.0855 0.49412,-0.1556 0.78125,-0.1875 1.14978,-0.12772 2.30129,0.34665 6.375,-0.125 4.07374,-0.47165 5.55909,-0.6106 6.28125,-0.84375 0.71946,-0.23227 1.70024,-0.47346 2.34375,-0.96875 1.93637,0.33346 3.77006,0.40424 5.21875,0.25 3.14602,-0.33495 5.17756,-0.51859 7.1875,-0.71875 2.00996,-0.20014 2.48414,-0.82639 3.59375,-0.9375 1.15114,-0.11528 2.29643,0.36506 6.375,-0.0625 4.07861,-0.42756 5.58886,-0.56209 6.3125,-0.78125 0.73915,-0.22386 1.79572,-0.51325 2.4375,-1.03125 2.0571,0.39867 4.00187,0.4934 5.53125,0.34375 3.14873,-0.3081 5.17584,-0.47325 7.1875,-0.65625 1.61407,-0.14682 2.2631,-0.56055 3.03125,-0.78125 0.24142,-0.0809 0.49353,-0.12991 0.78125,-0.15625 1.15211,-0.10545 2.29296,0.39275 6.375,0 4.08208,-0.39275 5.5889,-0.53084 6.3125,-0.75 0.7209,-0.21833 1.6997,-0.4477 2.3438,-0.9375 1.938,0.34999 3.7688,0.45438 5.2187,0.3125 3.1487,-0.3081 5.1758,-0.47325 7.1875,-0.65625 2.0116,-0.18299 2.5142,-0.83802 3.625,-0.9375 1.1523,-0.10323 2.2922,0.38483 6.375,0 4.0829,-0.38482 5.5887,-0.501 6.3125,-0.71875 0.7393,-0.22243 1.7956,-0.51449 2.4375,-1.03125 2.0574,0.40177 4.0029,0.50333 5.5313,0.34375 3.1466,-0.32852 5.1771,-0.5227 7.1875,-0.71875 1.613,-0.15729 2.2656,-0.63148 3.0312,-0.875 0.2407,-0.088 0.4632,-0.12137 0.75,-0.15625 1.1483,-0.1397 2.3167,0.33991 6.375,-0.25 4.0583,-0.58992 5.5618,-0.77714 6.2813,-1.03125 0.7167,-0.25316 1.6745,-0.55807 2.3125,-1.09375 1.9197,0.21194 3.7199,0.15141 5.1562,-0.0937 3.1191,-0.5324 5.1116,-0.92861 7.0938,-1.3125 1.9821,-0.38387 2.4743,-1.03965 3.5625,-1.28125 1.1288,-0.25066 2.2703,0.11629 6.25,-0.875 3.9796,-0.99128 5.4296,-1.4193 6.125,-1.78125 0.7223,-0.37601 1.7619,-0.87058 2.375,-1.53125 1.963,-0.012 3.7937,-0.29105 5.2187,-0.84375 2.9512,-1.14461 4.8732,-1.86942 6.6875,-2.75 1.4557,-0.70653 2.3348,-1.68641 2.5469,-1.98438 0.2122,-0.29796 0.1118,-0.7453 0.1379,-0.76675 0.043,-0.0352 0.3193,-0.085 0.479,-0.42844 0.8589,-1.84708 2.321,-5.64459 2.4352,-6.32945 0.1137,-0.68216 0.1638,-1.34774 0.2145,-1.74497 0.029,-0.22952 -0.1467,-0.86544 -0.1246,-0.92404 0.031,-0.0821 0.3045,-0.26528 0.3599,-0.51471 0.2663,-1.19833 0.089,-2.19129 -0.1251,-3.60893 -0.214,-1.41764 -0.9837,-4.62214 -1.6369,-5.47626 -0.6589,-0.86172 -1.2229,-1.01117 -1.7479,-1.00066 -0.2086,0.26976 0.1368,0.26309 0.1626,0.31261 0.6806,0.0508 0.934,0.36864 1.4192,0.89662 0.4852,0.52798 1.4428,3.93956 1.5794,5.38995 0.1366,1.45039 0.19,2.8602 -0.088,3.46864 -0.2781,0.60845 -0.9442,0.42864 -1.2366,0.49452 0.531,0.18589 0.8908,0.21322 0.9524,1.05768 0.059,0.81338 -0.1332,1.63969 -0.5198,2.80562 -0.3912,1.18001 -1.8452,4.34998 -2.2857,4.59877 -0.4523,0.25551 -0.9524,0.18199 -1.288,0.0511 z"
3875 id="path8101"
3876 inkscape:connector-curvature="0" />
3877 <path
3878 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6953);enable-background:new"
3879 d="m 988.75,-263.84375 c 1.91161,0.6344 4.55027,1.75841 6.125,2.8125 1.57477,1.05409 2.8961,1.48252 5.5313,3.375 2.6082,1.87314 5.0269,3.01522 7.3125,4.0625 2.4693,1.13147 5.7521,2.15474 9.5312,3.9375 -1.2072,-1.2584 -7.139,-3.36445 -9.0312,-4.1875 -1.8922,-0.82304 -4.128,-1.93049 -6.9375,-3.78125 -2.80961,-1.85075 -3.62224,-2.48154 -6.00005,-3.71875 -2.37782,-1.23719 -4.07988,-1.9492 -6.53125,-2.5 z"
3880 id="path8103"
3881 inkscape:connector-curvature="0" />
3882 <path
3883 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6993);enable-background:new"
3884 d="m 957.5,-260.78125 c 1.91,0.6181 4.58288,1.70934 6.15625,2.75 1.57339,1.04066 2.89608,1.48252 5.53125,3.375 2.60823,1.87315 5.02692,3.01521 7.3125,4.0625 2.46931,1.13147 5.75213,2.15475 9.53125,3.9375 -1.20728,-1.2584 -7.20154,-3.3957 -9.09375,-4.21875 -1.89217,-0.82304 -4.09666,-1.9305 -6.90625,-3.78125 -2.80958,-1.85075 -3.59295,-2.43932 -5.96875,-3.65625 -2.37578,-1.21691 -4.11321,-1.93885 -6.5625,-2.46875 z"
3885 id="path8105"
3886 inkscape:connector-curvature="0" />
3887 <path
3888 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6989);enable-background:new"
3889 d="m 926.09375,-257.375 c 1.90772,0.59745 4.55348,1.66384 6.125,2.6875 1.5715,1.02365 2.87022,1.43971 5.5,3.28125 2.60291,1.82273 5.02887,2.9722 7.3125,4 2.4672,1.11041 5.75535,2.09323 9.53125,3.84375 -1.20623,-1.2481 -7.1719,-3.31809 -9.0625,-4.125 -1.89058,-0.8069 -4.10242,-1.89104 -6.90625,-3.6875 -2.80385,-1.79644 -3.62704,-2.40251 -6,-3.59375 -2.37297,-1.19124 -4.05362,-1.90283 -6.5,-2.40625 z"
3890 id="path8107"
3891 inkscape:connector-curvature="0" />
3892 <path
3893 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6985);enable-background:new"
3894 d="m 894.90625,-253.5625 c 1.90213,0.55355 4.58701,1.58887 6.15625,2.59375 1.56923,1.00487 2.87401,1.40864 5.5,3.21875 2.59912,1.79164 5.00034,2.87189 7.28125,3.875 2.46428,1.08374 5.75984,2.04029 9.53125,3.75 -1.2048,-1.23507 -7.17416,-3.24478 -9.0625,-4.03125 -1.88832,-0.78647 -4.0752,-1.8308 -6.875,-3.59375 -2.79977,-1.76294 -3.59919,-2.36836 -5.96875,-3.53125 -2.36957,-1.16288 -4.12325,-1.83412 -6.5625,-2.28125 z"
3895 id="path8109"
3896 inkscape:connector-curvature="0" />
3897 <path
3898 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6965);enable-background:new"
3899 d="m 863.71875,-248.65625 c 1.88062,0.42909 4.50427,1.38038 6.0625,2.3125 1.55823,0.93211 2.85233,1.25776 5.46875,3 2.58971,1.72444 4.98067,2.70802 7.25,3.625 2.45176,0.99069 5.73959,1.87707 9.5,3.5 -1.20131,-1.20734 -7.15249,-3.06609 -9.03125,-3.78125 -1.87875,-0.71517 -4.0854,-1.68442 -6.875,-3.375 -2.78963,-1.69057 -3.58461,-2.22822 -5.9375,-3.28125 -2.35292,-1.05301 -4.02584,-1.71248 -6.4375,-2 z"
3900 id="path8111"
3901 inkscape:connector-curvature="0" />
3902 <path
3903 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6981);enable-background:new"
3904 d="m 833.15625,-241.375 c 1.84836,0.29644 4.46945,0.97632 6,1.78125 1.53058,0.80493 2.81374,1.05573 5.375,2.53125 2.53504,1.46046 4.89068,2.32509 7.125,3.0625 2.41399,0.79668 5.65711,1.46689 9.375,2.84375 -1.18771,-1.12873 -7.08772,-2.58975 -8.9375,-3.15625 -1.84977,-0.5665 -4.00342,-1.37392 -6.75,-2.84375 -2.74657,-1.46983 -3.50136,-1.92028 -5.8125,-2.78125 -2.31115,-0.86095 -4.00471,-1.32009 -6.375,-1.4375 z"
3905 id="path8113"
3906 inkscape:connector-curvature="0" />
3907 <path
3908 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6977);enable-background:new"
3909 d="m 802.90625,-232.3125 c 1.8222,0.21127 4.36576,0.80057 5.875,1.53125 1.50925,0.73066 2.75568,0.92998 5.28125,2.28125 2.49976,1.33746 4.83154,2.04843 7.03125,2.65625 2.37653,0.65667 5.56464,1.07288 9.21875,2.1875 -1.16735,-1.04496 -6.92888,-2.10329 -8.75,-2.5625 -1.82111,-0.45921 -3.95225,-1.12696 -6.65625,-2.4375 -2.70403,-1.31052 -3.47106,-1.7199 -5.75,-2.46875 -2.27895,-0.74883 -3.91325,-1.17931 -6.25,-1.1875 z"
3910 id="path8115"
3911 inkscape:connector-curvature="0" />
3912 <path
3913 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6973);enable-background:new"
3914 d="m 773.1875,-222.1875 c 1.81109,0.1787 4.32059,0.66506 5.8125,1.34375 1.49194,0.67869 2.7534,0.79822 5.25,2.0625 2.47107,1.25138 4.79005,1.89614 6.96875,2.4375 2.35387,0.58488 5.49134,0.89752 9.09375,1.84375 -1.15084,-0.99116 -6.85251,-1.7833 -8.65625,-2.1875 -1.80372,-0.4042 -3.91553,-1.02116 -6.59375,-2.25 -2.67818,-1.22884 -3.40345,-1.61089 -5.65625,-2.28125 -2.25279,-0.67034 -3.89627,-1.00232 -6.21875,-0.96875 z"
3915 id="path8117"
3916 inkscape:connector-curvature="0" />
3917 <path
3918 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6969);enable-background:new"
3919 d="m 743.5625,-211.1875 c 1.79281,0.12911 4.27313,0.54965 5.75,1.1875 1.4769,0.63785 2.7161,0.74156 5.1875,1.9375 2.44618,1.18372 4.72054,1.74666 6.875,2.21875 2.32767,0.51003 5.4196,0.68064 9,1.5625 -1.14379,-0.9706 -6.74759,-1.59065 -8.53125,-1.9375 -1.78367,-0.34684 -3.88285,-0.88756 -6.53125,-2.03125 -2.64841,-1.14368 -3.39495,-1.51631 -5.625,-2.125 -2.23008,-0.60868 -3.82594,-0.90966 -6.125,-0.8125 z"
3920 id="path8119"
3921 inkscape:connector-curvature="0" />
3922 <g
3923 style="fill:#ffffff;fill-opacity:1;filter:url(#filter7345)"
3924 id="g8121">
3925 <path
3926 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
3927 d="m 744.9375,-212.11731 c 0,0 7.22229,-3.22318 9.0625,-3.5 1.84021,-0.27682 3.35225,-0.003 6,0.5625 2.64775,0.56573 8.7357,2.21518 11.1875,3.375 2.4518,1.15982 5.3125,3.5625 5.3125,3.5625 0,0 -7.14644,-2.78019 -10.1875,-3.5625 -3.04106,-0.78231 -7.64461,-2.08374 -10.375,-2.3125 -2.73039,-0.22876 -11,1.875 -11,1.875 z"
3928 id="path8123"
3929 sodipodi:nodetypes="czzzczzc"
3930 inkscape:connector-curvature="0" />
3931 <path
3932 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3933 d="m 735.46875,-206.95416 c 0,0 3.65979,-2.22318 5.5,-2.5 1.84021,-0.27682 3.66475,0.24677 6.3125,0.8125 2.64775,0.56573 8.7357,2.21518 11.1875,3.375 2.4518,1.15982 6.5625,2.125 6.5625,2.125 0,0 -8.39644,-1.34269 -11.4375,-2.125 -3.04106,-0.78231 -7.95711,-2.33374 -10.6875,-2.5625 -2.73039,-0.22876 -7.4375,0.875 -7.4375,0.875 z"
3934 id="path8125"
3935 sodipodi:nodetypes="czzzczzc"
3936 inkscape:connector-curvature="0" />
3937 <path
3938 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3939 d="m 759.85042,-217.61116 c 0,0 8.5437,-3.29857 10.39778,-3.45786 1.85409,-0.1593 3.64166,0.4792 6.2481,1.21208 2.60644,0.73288 8.57724,2.76594 10.95036,4.07925 2.37312,1.31331 6.41417,2.53782 6.41417,2.53782 0,0 -8.29413,-1.87365 -11.27931,-2.84767 -2.98519,-0.97402 -7.79269,-2.83478 -10.50302,-3.23662 -2.71033,-0.40184 -12.22808,1.713 -12.22808,1.713 z"
3940 id="path8127"
3941 sodipodi:nodetypes="czzzczzc"
3942 inkscape:connector-curvature="0" />
3943 <path
3944 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3945 d="m 775.19813,-223.2266 c 0,0 7.77133,-2.78244 9.62831,-2.90349 1.85697,-0.12104 3.631,0.55417 6.22178,1.34062 2.59077,0.78645 8.5184,2.94217 10.86394,4.30412 2.34555,1.36195 6.36049,2.6695 6.36049,2.6695 0,0 -8.25373,-2.04423 -11.21821,-3.07958 -2.96447,-1.03535 -7.73259,-2.99481 -10.43406,-3.45243 -2.70147,-0.45763 -11.42225,1.12126 -11.42225,1.12126 z"
3946 id="path8129"
3947 sodipodi:nodetypes="czzzczzc"
3948 inkscape:connector-curvature="0" />
3949 <path
3950 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3951 d="m 789.64298,-227.95417 c 0,0 8.68256,-3.52031 10.54154,-3.60535 1.85897,-0.085 3.61958,0.62442 6.19463,1.46093 2.57505,0.83649 8.45979,3.10666 10.77851,4.5138 2.31872,1.40715 6.30757,2.79224 6.30757,2.79224 0,0 -8.21257,-2.20377 -11.15643,-3.29636 -2.94386,-1.09259 -7.67312,-3.14408 -10.36522,-3.65397 -2.69209,-0.50988 -12.3006,1.78871 -12.3006,1.78871 z"
3952 id="path8131"
3953 sodipodi:nodetypes="czzzczzc"
3954 inkscape:transform-center-x="13.852145"
3955 inkscape:transform-center-y="-4.3190906"
3956 inkscape:connector-curvature="0" />
3957 <path
3958 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3959 d="m 804.49513,-233.32948 c 0,0 7.80756,-2.58281 9.66654,-2.66785 1.85897,-0.085 3.61958,0.62442 6.19463,1.46093 2.57505,0.83649 8.45979,3.10666 10.77851,4.5138 2.31872,1.40715 6.30757,2.79224 6.30757,2.79224 0,0 -8.21257,-2.20377 -11.15643,-3.29636 -2.94386,-1.09259 -7.67312,-3.14408 -10.36522,-3.65397 -2.69209,-0.50988 -11.4256,0.85121 -11.4256,0.85121 z"
3960 id="path8133"
3961 sodipodi:nodetypes="czzzczzc"
3962 inkscape:transform-center-x="13.852145"
3963 inkscape:transform-center-y="-4.3190906"
3964 inkscape:connector-curvature="0" />
3965 <path
3966 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3967 d="m 819.55763,-237.57948 c 0,0 8.55756,-2.58281 10.41654,-2.66785 1.85897,-0.085 3.61958,0.62442 6.19463,1.46093 2.57505,0.83649 8.45979,3.10666 10.77851,4.5138 2.31872,1.40715 6.30757,2.79224 6.30757,2.79224 0,0 -8.21257,-2.20377 -11.15643,-3.29636 -2.94386,-1.09259 -7.67312,-3.14408 -10.36522,-3.65397 -2.69209,-0.50988 -12.1756,0.85121 -12.1756,0.85121 z"
3968 id="path8135"
3969 sodipodi:nodetypes="czzzczzc"
3970 inkscape:transform-center-x="13.852145"
3971 inkscape:transform-center-y="-4.3190906"
3972 inkscape:connector-curvature="0" />
3973 <path
3974 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3975 d="m 836.23395,-242.60125 c 0,0 6.96702,-1.98723 8.82784,-1.96757 1.86081,0.0197 3.57873,0.82702 6.10265,1.80705 2.52393,0.98 8.27166,3.57758 10.50756,5.11291 2.2359,1.53535 6.14053,3.14261 6.14053,3.14261 0,0 -8.07561,-2.66222 -10.95336,-3.91866 -2.87774,-1.25645 -7.48412,-3.5707 -10.14328,-4.23121 -2.65915,-0.66049 -10.48194,0.0549 -10.48194,0.0549 z"
3976 id="path8137"
3977 sodipodi:nodetypes="czzzczzc"
3978 inkscape:transform-center-x="13.64141"
3979 inkscape:transform-center-y="-4.9269042"
3980 inkscape:connector-curvature="0" />
3981 <path
3982 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3983 d="m 850.73028,-246.00461 c 0,0 7.68784,-2.02768 9.54782,-1.96854 1.85997,0.0592 3.56038,0.90279 6.06293,1.93616 2.50255,1.03334 8.19387,3.75232 10.39668,5.33475 2.20282,1.58245 6.07245,3.2722 6.07245,3.2722 0,0 -8.01729,-2.83298 -10.86772,-4.15022 -2.85043,-1.31723 -7.40666,-3.72872 -10.0512,-4.4455 -2.64454,-0.71678 -11.16096,0.0211 -11.16096,0.0211 z"
3984 id="path8139"
3985 sodipodi:nodetypes="czzzczzc"
3986 inkscape:transform-center-x="13.55068"
3987 inkscape:transform-center-y="-5.1542119"
3988 inkscape:connector-curvature="0" />
3989 <path
3990 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3991 d="m 864.82496,-249.21081 c 0,0 8.16952,-1.96906 10.02688,-1.85396 1.85735,0.11512 3.53158,1.00956 6.0019,2.11779 2.47031,1.10821 8.0772,3.99727 10.23138,5.64531 2.15418,1.64804 5.9712,3.45352 5.9712,3.45352 0,0 -7.92839,-3.07306 -10.73787,-4.4755 -2.80949,-1.40244 -7.29106,-3.94999 -9.91283,-4.74606 -2.62176,-0.79606 -11.58066,-0.1411 -11.58066,-0.1411 z"
3992 id="path8141"
3993 sodipodi:nodetypes="czzzczzc"
3994 inkscape:transform-center-x="13.41151"
3995 inkscape:transform-center-y="-5.4740887"
3996 inkscape:connector-curvature="0" />
3997 <path
3998 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
3999 d="m 881.38485,-251.60282 c 0,0 8.08536,-1.90809 9.93837,-1.73664 1.853,0.17147 3.4993,1.11633 5.93482,2.29908 2.43553,1.18271 7.95209,4.2407 10.05523,5.95339 2.10314,1.7127 5.86357,3.63326 5.86357,3.63326 0,0 -7.8314,-3.3124 -10.597,-4.7995 -2.76561,-1.48712 -7.16775,-4.16959 -9.76414,-5.04491 -2.59637,-0.87531 -11.43085,-0.30468 -11.43085,-0.30468 z"
4000 id="path8143"
4001 sodipodi:nodetypes="czzzczzc"
4002 inkscape:transform-center-x="13.258805"
4003 inkscape:transform-center-y="-5.79376"
4004 inkscape:connector-curvature="0" />
4005 <path
4006 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4007 d="m 896.58415,-254.34724 c 0,0 7.64166,-1.4277 9.49547,-1.26515 1.8538,0.16256 3.50462,1.0995 5.94579,2.27053 2.44118,1.171 7.97238,4.20246 10.08372,5.90502 2.11134,1.70258 5.88096,3.60505 5.88096,3.60505 0,0 -7.84723,-3.27474 -10.61995,-4.74855 -2.77271,-1.4738 -7.18769,-4.13509 -9.78825,-4.99793 -2.60055,-0.86282 -10.99774,-0.76897 -10.99774,-0.76897 z"
4008 id="path8145"
4009 sodipodi:nodetypes="czzzczzc"
4010 inkscape:transform-center-x="13.28378"
4011 inkscape:transform-center-y="-5.7433893"
4012 inkscape:connector-curvature="0" />
4013 <path
4014 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4015 d="m 911.45328,-255.98544 c 0,0 8.64166,-1.5527 10.49547,-1.39015 1.8538,0.16256 3.50462,1.0995 5.94579,2.27053 2.44118,1.171 7.97238,4.20246 10.08372,5.90502 2.11134,1.70258 5.88096,3.60505 5.88096,3.60505 0,0 -7.84723,-3.27474 -10.61995,-4.74855 -2.77271,-1.4738 -7.18769,-4.13509 -9.78825,-4.99793 -2.60055,-0.86282 -11.99774,-0.64397 -11.99774,-0.64397 z"
4016 id="path8147"
4017 sodipodi:nodetypes="czzzczzc"
4018 inkscape:transform-center-x="13.28378"
4019 inkscape:transform-center-y="-5.7433893"
4020 inkscape:connector-curvature="0" />
4021 <path
4022 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4023 d="m 927.70328,-258.29794 c 0,0 7.64166,-0.8652 9.49547,-0.70265 1.8538,0.16256 3.50462,1.0995 5.94579,2.27053 2.44118,1.171 7.97238,4.20246 10.08372,5.90502 2.11134,1.70258 5.88096,3.60505 5.88096,3.60505 0,0 -7.84723,-3.27474 -10.61995,-4.74855 -2.77271,-1.4738 -7.18769,-4.13509 -9.78825,-4.99793 -2.60055,-0.86282 -10.99774,-1.33147 -10.99774,-1.33147 z"
4024 id="path8149"
4025 sodipodi:nodetypes="czzzczzc"
4026 inkscape:transform-center-x="13.28378"
4027 inkscape:transform-center-y="-5.7433893"
4028 inkscape:connector-curvature="0" />
4029 <path
4030 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4031 d="m 942.82828,-259.48544 c 0,0 8.57916,-1.4902 10.43297,-1.32765 1.8538,0.16256 3.50462,1.0995 5.94579,2.27053 2.44118,1.171 7.97238,4.20246 10.08372,5.90502 2.11134,1.70258 5.88096,3.60505 5.88096,3.60505 0,0 -7.84723,-3.27474 -10.61995,-4.74855 -2.77271,-1.4738 -7.18769,-4.13509 -9.78825,-4.99793 -2.60055,-0.86282 -11.93524,-0.70647 -11.93524,-0.70647 z"
4032 id="path8151"
4033 sodipodi:nodetypes="czzzczzc"
4034 inkscape:transform-center-x="13.28378"
4035 inkscape:transform-center-y="-5.7433893"
4036 inkscape:connector-curvature="0" />
4037 <path
4038 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4039 d="m 959.07828,-261.54794 c 0,0 7.82916,-0.8027 9.68297,-0.64015 1.8538,0.16256 3.50462,1.0995 5.94579,2.27053 2.44118,1.171 7.97238,4.20246 10.08372,5.90502 2.11134,1.70258 5.88096,3.60505 5.88096,3.60505 0,0 -7.84723,-3.27474 -10.61995,-4.74855 -2.77271,-1.4738 -7.18769,-4.13509 -9.78825,-4.99793 -2.60055,-0.86282 -11.18524,-1.39397 -11.18524,-1.39397 z"
4040 id="path8153"
4041 sodipodi:nodetypes="czzzczzc"
4042 inkscape:transform-center-x="13.28378"
4043 inkscape:transform-center-y="-5.7433893"
4044 inkscape:connector-curvature="0" />
4045 <path
4046 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4047 d="m 974.45328,-262.79794 c 0,0 8.39166,-1.1777 10.24547,-1.01515 1.8538,0.16256 3.50462,1.0995 5.94579,2.27053 2.44118,1.171 7.97238,4.20246 10.08376,5.90502 2.1113,1.70258 5.8809,3.60505 5.8809,3.60505 0,0 -7.84721,-3.27474 -10.61993,-4.74855 -2.77271,-1.4738 -7.18769,-4.13509 -9.78825,-4.99793 -2.60055,-0.86282 -11.74774,-1.01897 -11.74774,-1.01897 z"
4048 id="path8155"
4049 sodipodi:nodetypes="czzzczzc"
4050 inkscape:transform-center-x="13.28378"
4051 inkscape:transform-center-y="-5.7433893"
4052 inkscape:connector-curvature="0" />
4053 <path
4054 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4055 d="m 990.64078,-264.86044 c 0,0 6.89166,-0.9902 8.74547,-0.82765 1.85385,0.16256 3.50465,1.0995 5.94575,2.27053 2.4412,1.171 7.9724,4.20246 10.0838,5.90502 2.1113,1.70258 5.8809,3.60505 5.8809,3.60505 0,0 -7.8472,-3.27474 -10.6199,-4.74855 -2.7727,-1.4738 -7.1877,-4.13509 -9.7883,-4.99793 -2.60053,-0.86282 -10.24772,-1.20647 -10.24772,-1.20647 z"
4056 id="path8157"
4057 sodipodi:nodetypes="czzzczzc"
4058 inkscape:transform-center-x="13.28378"
4059 inkscape:transform-center-y="-5.7433893"
4060 inkscape:connector-curvature="0" />
4061 <path
4062 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4063 d="m 1007.7658,-265.79794 c 0,0 6.8291,-1.1777 8.683,-1.01515 1.8538,0.16256 3.5046,1.0995 5.9457,2.27053 2.4412,1.171 7.9724,4.20246 10.0838,5.90502 2.1113,1.70258 5.8809,3.60505 5.8809,3.60505 0,0 -7.8472,-3.27474 -10.6199,-4.74855 -2.7727,-1.4738 -7.1877,-4.13509 -9.7883,-4.99793 -2.6005,-0.86282 -10.1852,-1.01897 -10.1852,-1.01897 z"
4064 id="path8159"
4065 sodipodi:nodetypes="czzzczzc"
4066 inkscape:transform-center-x="13.28378"
4067 inkscape:transform-center-y="-5.7433893"
4068 inkscape:connector-curvature="0" />
4069 <path
4070 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4071 d="m 1023.8908,-267.79794 c 0,0 6.0791,-0.4277 7.933,-0.26515 1.8538,0.16256 3.5046,1.0995 5.9457,2.27053 2.4412,1.171 7.9724,4.20246 10.0838,5.90502 2.1113,1.70258 5.8809,3.60505 5.8809,3.60505 0,0 -7.8472,-3.27474 -10.6199,-4.74855 -2.7727,-1.4738 -7.1877,-4.13509 -9.7883,-4.99793 -2.6005,-0.86282 -9.4352,-1.76897 -9.4352,-1.76897 z"
4072 id="path8161"
4073 sodipodi:nodetypes="czzzczzc"
4074 inkscape:transform-center-x="13.28378"
4075 inkscape:transform-center-y="-5.7433893"
4076 inkscape:connector-curvature="0" />
4077 <path
4078 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4079 d="m 1039.7033,-269.17294 c 0,0 6.4541,-0.6777 8.308,-0.51515 1.8538,0.16256 3.5046,1.0995 5.9457,2.27053 2.4412,1.171 7.9724,4.20246 10.0838,5.90502 2.1113,1.70258 5.8809,3.60505 5.8809,3.60505 0,0 -7.8472,-3.27474 -10.6199,-4.74855 -2.7727,-1.4738 -7.1877,-4.13509 -9.7883,-4.99793 -2.6005,-0.86282 -9.8102,-1.51897 -9.8102,-1.51897 z"
4080 id="path8163"
4081 sodipodi:nodetypes="czzzczzc"
4082 inkscape:transform-center-x="13.28378"
4083 inkscape:transform-center-y="-5.7433893"
4084 inkscape:connector-curvature="0" />
4085 <path
4086 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4087 d="m 1055.2718,-271.03319 c 0,0 5.4976,-0.90945 7.3578,-0.85348 1.8601,0.056 3.5619,0.89674 6.0661,1.92586 2.5044,1.0291 8.2003,3.7384 10.4058,5.31709 2.2055,1.57871 6.078,3.2619 6.078,3.2619 0,0 -8.022,-2.81939 -10.8748,-4.13178 -2.8526,-1.31238 -7.4129,-3.71613 -10.0587,-4.42843 -2.6457,-0.71228 -8.9742,-1.09116 -8.9742,-1.09116 z"
4088 id="path8165"
4089 sodipodi:nodetypes="czzzczzc"
4090 inkscape:transform-center-x="13.55813"
4091 inkscape:transform-center-y="-5.1360724"
4092 inkscape:connector-curvature="0" />
4093 <path
4094 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4095 d="m 1072.7007,-273.48537 c 0,0 4.5472,-1.15581 6.408,-1.18621 1.8607,-0.0304 3.5996,0.73049 6.1489,1.64231 2.5494,0.91177 8.3649,3.35386 10.6414,4.8285 2.2763,1.47468 6.2227,2.97636 6.2227,2.97636 0,0 -8.1442,-2.44411 -11.0547,-3.62272 -2.9105,-1.1786 -7.5774,-3.36815 -10.2534,-3.95691 -2.6759,-0.58875 -8.1129,-0.68133 -8.1129,-0.68133 z"
4096 id="path8167"
4097 sodipodi:nodetypes="czzzczzc"
4098 inkscape:transform-center-x="13.74758"
4099 inkscape:transform-center-y="-4.6370147"
4100 inkscape:connector-curvature="0" />
4101 <path
4102 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4103 d="m 1087.1585,-276.5244 c 0,0 5.96,-1.77355 7.8202,-1.83024 1.86,-0.0567 3.6096,0.67955 6.1715,1.55525 2.562,0.87566 2.5226,0.85713 5.3335,1.49015 2.7969,0.62986 7.0767,1.51313 7.0767,1.51313 0,0 -3.6155,-0.0163 -6.7923,-0.46614 -3.1155,-0.44119 -7.3743,-1.69825 -10.0584,-2.24913 -2.6839,-0.55088 -9.5512,-0.013 -9.5512,-0.013 z"
4104 id="path8169"
4105 sodipodi:nodetypes="czzzczzc"
4106 inkscape:transform-center-x="13.79933"
4107 inkscape:transform-center-y="-4.4842392"
4108 inkscape:connector-curvature="0" />
4109 <path
4110 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
4111 d="m 1099.25,-279.92981 c 0.1612,0.26862 11.2081,-4.60046 12.1875,-4.6875 0.9794,-0.087 2,3.125 2,3.125 0,0 -0.7751,-1.50434 -2.875,-1.0625 -2.0999,0.44184 -11.3009,2.67141 -11.3125,2.625 z"
4112 id="path8171"
4113 sodipodi:nodetypes="czczc"
4114 inkscape:connector-curvature="0" />
4115 </g>
4116 <path
4117 sodipodi:nodetypes="czscsssscssssscsssscssssscsssscssssscsssscssssscsssscssssscsssscssccsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscc"
4118 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7333);enable-background:new"
4119 d="m 1107.4532,-284.0938 c -0.4187,0.21283 -0.1556,0.0939 -0.6472,0.30581 -0.4861,0.20954 -1.7234,0.57439 -4.0796,1.45895 -3.3311,1.25057 -5.8302,2.15344 -7.0259,3.0661 -1.5361,0.0213 -3.7205,0.23331 -5.6563,0.71875 -2.9815,0.74766 -4.8552,1.17401 -6.75,1.59375 -1.8948,0.41972 -1.6755,0.64219 -2.875,0.875 -1.2966,0.25166 -1.7214,-0.009 -5.4375,0.78125 -3.4899,0.74214 -8.8948,1.93107 -10.1562,2.6875 -1.5839,-0.18079 -3.8675,-0.32178 -5.8438,-0.0312 -3.0404,0.44695 -4.9162,0.67276 -6.8437,0.90625 -0.6554,0.0794 -1.0411,0.20078 -1.3438,0.28125 -0.4262,0.13165 -0.6858,0.26002 -1.375,0.34375 -1.3116,0.15936 -1.7622,-0.15683 -5.5312,0.28125 -3.5539,0.41308 -9.0054,1.27282 -10.25,1.9375 -1.599,-0.2973 -3.8578,-0.53419 -5.8438,-0.34375 -3.0588,0.29331 -4.972,0.48399 -6.9062,0.65625 -1.9343,0.17226 -1.6887,0.42237 -2.9063,0.53125 -1.3162,0.11769 -1.7598,-0.16363 -5.5312,0.25 -3.5419,0.38844 -9.0079,1.20927 -10.2813,1.875 -1.5989,-0.2947 -3.88718,-0.50701 -5.87501,-0.3125 -3.05824,0.29924 -4.94113,0.48024 -6.875,0.65625 -0.65749,0.0598 -1.04004,0.17856 -1.34375,0.25 -0.42765,0.11895 -0.68351,0.21807 -1.375,0.28125 -1.31596,0.12025 -1.75976,-0.19488 -5.53125,0.21875 -3.55614,0.39001 -9.00554,1.23916 -10.25,1.90625 -1.59863,-0.29419 -3.85984,-0.52372 -5.84375,-0.3125 -3.0556,0.32532 -4.97404,0.52624 -6.90625,0.71875 -1.93221,0.1925 -1.68987,0.44088 -2.90625,0.5625 -1.31488,0.13146 -1.76298,-0.16454 -5.53125,0.28125 -3.53887,0.41865 -8.97768,1.29217 -10.25,1.96875 -1.59755,-0.28105 -3.85996,-0.42043 -5.84375,-0.1875 -3.05198,0.35836 -4.94508,0.56786 -6.875,0.78125 -0.6562,0.0726 -1.04066,0.17269 -1.34375,0.25 -0.42677,0.12722 -0.68491,0.2672 -1.375,0.34375 -1.31333,0.14568 -1.76746,-0.17402 -5.53125,0.3125 -3.54889,0.45875 -8.97863,1.41902 -10.21875,2.125 -1.59305,-0.24424 -3.83381,-0.38135 -5.8125,-0.125 -3.04759,0.39481 -4.95071,0.64845 -6.875,0.90625 -1.92428,0.25779 -1.72611,0.49353 -2.9375,0.65625 -1.30946,0.1759 -1.74719,-0.10438 -5.5,0.46875 -3.52429,0.53824 -8.92315,1.69917 -10.1875,2.4375 -1.5875,-0.20354 -3.8455,-0.25473 -5.8125,0.0937 -3.02617,0.53612 -4.89889,0.86169 -6.8125,1.1875 -0.65061,0.11077 -1.01371,0.27094 -1.3125,0.375 -0.42067,0.16488 -0.66345,0.3313 -1.34375,0.46875 -1.29465,0.26159 -1.72712,-0.006 -5.4375,0.8125 -3.49853,0.77195 -8.84595,2.38293 -10.0625,3.21875 -1.56278,-0.0775 -3.75758,0.0853 -5.6875,0.59375 -2.97244,0.78313 -4.81761,1.23209 -6.6875,1.75 -1.86988,0.5179 -1.6666,0.76728 -2.84375,1.09375 -1.27246,0.3529 -1.69703,0.10709 -5.34375,1.1875 -3.4247,1.01463 -8.64944,2.93317 -9.875,3.84375 -1.53883,0.0127 -3.71983,0.27222 -5.625,0.875 -2.93106,0.92734 -4.75031,1.45842 -6.59375,2.0625 -0.62676,0.20538 -0.99173,0.39258 -1.28125,0.53125 -0.40763,0.21361 -0.65334,0.40875 -1.3125,0.625 -1.25446,0.41154 -1.68611,0.18904 -5.28125,1.4375 -3.38985,1.17717 -8.59498,3.2137 -9.78125,4.15625 -1.52389,0.0597 -3.65005,0.39487 -5.53125,1.0625 -2.89739,1.02829 -4.69908,1.67548 -6.53125,2.3125 -1.83217,0.63701 -1.62785,0.84854 -2.78125,1.25 -1.24678,0.43396 -1.66361,0.19972 -5.21875,1.5625 -3.33867,1.2798 -8.48715,3.48255 -9.6875,4.46875 -1.50718,0.10769 -3.63569,0.4988 -5.5,1.21875 -2.86818,1.1076 -4.6238,1.78156 -6.4375,2.46875 -0.61666,0.23363 -0.99641,0.44203 -1.28125,0.59375 0,0 0,1.09375 0,1.09375 0.11178,-0.22236 0.38599,-0.81743 0.90625,-1.09375 0.69797,-0.37072 4.81363,-1.99337 6.8125,-2.71875 1.65686,-0.60125 4.15389,-1.32868 5.96875,-1.3125 0.30162,0.003 0.58762,0.0509 0.84375,0.0937 1.84249,0.30825 7.46875,1.5625 7.46875,1.5625 -10e-6,0 -6.23349,-1.64675 -7.03125,-1.84375 -0.19079,-0.0471 -0.53572,-0.0687 -0.96875,-0.0625 1.14546,-0.86971 4.761,-2.39351 7.34375,-3.4375 2.83822,-1.14727 3.11681,-1.25182 5.0625,-1.65625 2.0083,-0.41744 3.15625,-0.5 3.15625,-0.5 0,1e-5 -0.0824,-0.60114 0.96875,-1.125 0.7051,-0.35141 4.88702,-1.8924 6.90625,-2.5625 1.9519,-0.64773 5.0574,-1.3585 6.875,-1 1.86323,0.3675 7.53125,1.8125 7.53125,1.8125 1e-5,0 -6.287,-1.87111 -7.09375,-2.09375 -0.19292,-0.0533 -0.53084,-0.086 -0.96875,-0.0937 1.15834,-0.83288 4.79444,-2.19532 7.40625,-3.15625 2.87016,-1.05601 3.16734,-1.1618 5.125,-1.53125 1.85349,-0.34979 2.85884,-0.42548 3.03125,-0.4375 0.1136,-0.21724 0.37745,-0.81002 0.90625,-1.0625 0.70944,-0.33874 4.92607,-1.71275 6.96875,-2.3125 1.69317,-0.49711 4.24077,-1.03677 6.09375,-0.90625 0.30795,0.0217 0.61349,0.0973 0.875,0.15625 1.88118,0.42432 7.59375,2.03125 7.59375,2.03125 1e-5,0 -6.34174,-2.06525 -7.15625,-2.3125 -0.19479,-0.0591 -0.55788,-0.10394 -1,-0.125 1.16949,-0.79755 4.86302,-2.05622 7.5,-2.9375 2.89781,-0.96847 3.23301,-1.00332 5.21875,-1.28125 2.04965,-0.28689 3.1875,-0.3125 3.1875,-0.3125 -2e-5,0 -0.0727,-0.60697 1,-1.0625 0.7196,-0.30557 4.99098,-1.50075 7.0625,-2 2.00244,-0.48258 5.19849,-0.92829 7.0625,-0.40625 1.91078,0.53515 7.71875,2.5 7.71875,2.5 0,0 -6.42266,-2.42351 -7.25,-2.71875 -0.19784,-0.0706 -0.58216,-0.14039 -1.03125,-0.1875 1.1879,-0.72865 4.91527,-1.77408 7.59375,-2.5 2.94342,-0.79775 3.29208,-0.77083 5.3125,-0.90625 1.91289,-0.12823 2.94705,-0.0711 3.125,-0.0625 0.11728,-0.20366 0.39176,-0.77948 0.9375,-0.96875 0.73219,-0.25394 5.07852,-1.04789 7.1875,-1.375 1.74813,-0.27111 4.40088,-0.4847 6.3125,-0.0937 0.31766,0.065 0.60522,0.18551 0.875,0.28125 1.94074,0.68873 7.84375,3.09375 7.84375,3.09375 1e-5,0 -6.53471,-2.95077 -7.375,-3.3125 -0.20097,-0.0865 -0.57513,-0.16679 -1.03125,-0.25 1.2065,-0.63318 5.02956,-1.3956 7.75,-1.90625 2.98953,-0.56119 3.30023,-0.52954 5.34375,-0.53125 2.10926,-0.002 3.3125,0.125 3.3125,0.125 0,1e-5 -0.0727,-0.63119 1.03125,-0.9375 0.74052,-0.20547 5.12612,-0.83387 7.25,-1.0625 2.05302,-0.22099 5.31863,-0.25222 7.21875,0.46875 1.94779,0.73907 7.84375,3.375 7.84375,3.375 2e-5,0 -6.56288,-3.17897 -7.40625,-3.5625 -0.20168,-0.0917 -0.54221,-0.18621 -1,-0.28125 1.21092,-0.60188 4.98442,-1.24884 7.71875,-1.65625 3.0048,-0.44772 3.32551,-0.4517 5.375,-0.40625 1.94045,0.043 3.00699,0.19423 3.1875,0.21875 0.11892,-0.19316 0.3839,-0.76583 0.9375,-0.90625 0.74271,-0.18838 5.15429,-0.73428 7.28125,-0.9375 1.76303,-0.16842 4.42009,-0.23429 6.34375,0.25 0.31968,0.0805 0.60351,0.20359 0.875,0.3125 1.95293,0.78349 7.90625,3.46875 7.90625,3.46875 -2e-5,0 -6.59191,-3.25348 -7.4375,-3.65625 -0.20222,-0.0963 -0.57226,-0.20703 -1.03125,-0.3125 1.21414,-0.57427 5.04366,-1.12219 7.78125,-1.5 3.00838,-0.4152 3.32307,-0.44263 5.375,-0.375 2.11798,0.0698 3.3125,0.25 3.3125,0.25 -2e-5,0 -0.0772,-0.63741 1.03125,-0.90625 0.74362,-0.18035 5.15176,-0.66355 7.28125,-0.84375 2.05847,-0.17417 5.34324,-0.12432 7.25,0.65625 1.95459,0.80016 7.875,3.53125 7.875,3.53125 -2e-5,0 -6.55993,-3.30876 -7.40625,-3.71875 -0.20237,-0.0981 -0.57186,-0.2031 -1.03125,-0.3125 1.21517,-0.5639 5.01008,-1.1143 7.75,-1.46875 3.01091,-0.38952 3.32131,-0.39765 5.375,-0.3125 1.94439,0.0806 3.00663,0.25324 3.1875,0.28125 0.11916,-0.19086 0.38277,-0.74531 0.9375,-0.875 0.74426,-0.174 5.14993,-0.65047 7.28125,-0.8125 1.76662,-0.13427 4.44971,-0.12571 6.37501,0.375 0.32,0.0832 0.6033,0.20127 0.875,0.3125 1.9546,0.80016 7.9063,3.5625 7.9063,3.5625 -1e-4,0 -6.5912,-3.34001 -7.4375,-3.75 -0.2024,-0.0981 -0.5719,-0.20311 -1.0313,-0.3125 1.2151,-0.5639 5.0413,-1.08306 7.7813,-1.4375 3.0109,-0.38953 3.3525,-0.4289 5.4062,-0.34375 2.1197,0.0879 3.3125,0.3125 3.3125,0.3125 0,0 -0.078,-0.64902 1.0313,-0.90625 0.7443,-0.17256 5.1495,-0.62336 7.2812,-0.78125 2.0606,-0.1526 5.3429,-0.0968 7.25,0.6875 1.955,0.80395 7.875,3.5 7.875,3.5 0,0 -6.5598,-3.27587 -7.4062,-3.6875 -0.2025,-0.0984 -0.5718,-0.20222 -1.0313,-0.3125 1.2154,-0.56154 5.0119,-1.12778 7.75,-1.5 3.009,-0.40905 3.3227,-0.41558 5.375,-0.34375 1.9431,0.068 3.0072,0.16485 3.1875,0.1875 0.1188,-0.1944 0.3846,-0.72881 0.9375,-0.875 0.7418,-0.19612 5.1311,-0.82878 7.25,-1.09375 1.7564,-0.21961 4.4053,-0.33231 6.3125,0.0312 0.3169,0.0604 0.6058,0.18938 0.875,0.28125 1.9362,0.66092 7.8438,2.9375 7.8438,2.9375 -10e-5,0 -6.5367,-2.80655 -7.375,-3.15625 -0.2005,-0.0836 -0.5762,-0.17333 -1.0313,-0.25 1.2037,-0.65046 5.0191,-1.37195 7.7188,-2 2.9667,-0.6902 3.2889,-0.75507 5.3125,-0.875 2.0886,-0.1238 3.2812,-0.0312 3.2812,-0.0312 0,1e-5 -0.087,-0.63205 1,-1.03125 0.7292,-0.2678 5.0472,-1.33797 7.125,-1.8125 2.0085,-0.45869 5.1679,-1.0293 7,-0.625 1.8781,0.41446 13.5782,3.01563 13.5782,3.01563 0,0 -12.3275,-3.02266 -13.1407,-3.26563 -0.1945,-0.0581 -0.5586,-0.10626 -1,-0.125 1.1676,-0.80369 3.5142,-1.6873 6.1094,-2.70312 1.6814,-0.65818 0.9237,-0.37659 2.7759,-1.0036 1.7536,-0.59366 2.4854,-1.01071 2.6304,-1.11299 0.3461,-0.20651 -0.356,-0.12188 -0.5442,-0.0424 z"
4120 id="path8173"
4121 inkscape:connector-curvature="0" />
4122 <path
4123 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7285);enable-background:new"
4124 d="m 1082.625,-275.125 c 1.873,0.39348 4.4961,1.14555 6.0313,1.96875 1.5352,0.82319 2.8222,1.056 5.375,2.5 2.5266,1.42926 4.7958,2.00696 6.9687,2.53125 2.3476,0.56642 5.4354,0.71523 8.8438,1.1875 -1.0889,-0.83975 -6.6074,-1.17245 -8.4063,-1.5625 -1.7989,-0.39006 -3.8941,-1.01616 -6.5937,-2.3125 -2.6997,-1.29634 -3.4944,-1.79896 -5.8125,-2.6875 -2.3182,-0.88854 -4.0044,-1.38314 -6.4063,-1.625 z"
4125 id="path8175"
4126 inkscape:connector-curvature="0" />
4127 <path
4128 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7289);enable-background:new"
4129 d="m 1051.4688,-270 c 1.9053,0.57759 4.5281,1.61572 6.0937,2.59375 1.5656,0.97802 2.8802,1.35981 5.5,3.125 2.593,1.74716 4.9859,2.70927 7.25,3.59375 2.4461,0.95557 5.6826,1.65713 9.4063,3.0625 -1.1896,-1.13784 -7.0631,-2.68675 -8.9375,-3.375 -1.8745,-0.68825 -4.0818,-1.5662 -6.875,-3.28125 -2.7933,-1.71504 -3.5736,-2.2839 -5.9375,-3.40625 -2.3641,-1.12234 -4.0567,-1.83455 -6.5,-2.3125 z"
4130 id="path8177"
4131 inkscape:connector-curvature="0" />
4132 <path
4133 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7293);enable-background:new"
4134 d="m 1020.2188,-266.84375 c 1.9119,0.63811 4.5812,1.75536 6.1562,2.8125 1.5751,1.05715 2.8956,1.50867 5.5313,3.40625 2.6086,1.87821 5.0284,3.03003 7.3125,4.0625 2.4677,1.11545 5.7645,2.1733 9.5312,3.84375 -1.2033,-1.22253 -7.2028,-3.31423 -9.0937,-4.125 -1.891,-0.81077 -4.0649,-1.89379 -6.875,-3.75 -2.8102,-1.8562 -3.6218,-2.47693 -6,-3.71875 -2.3783,-1.2418 -4.1107,-1.97569 -6.5625,-2.53125 z"
4135 id="path8179"
4136 inkscape:connector-curvature="0" />
4137 <path
4138 sodipodi:nodetypes="cssscscsscsssccscssssssscscsscsssscscssssssscscsscsssscscssssssscscsscsssscscssssssscscsscsssscscssssssscscsscsssccscsscscssscssssscsssssscssssscsssssscssssscsssssscssssscsssssscssssscsssssscssssscsszsszssszzcczzzczzzc"
4139 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7337);enable-background:new"
4140 d="m 1110.1719,-266.89063 c 0.1508,0.0486 0.688,0.631 0.1094,1.48438 -0.8101,1.19459 -5.7049,3.32429 -8.5625,4.125 -2.8449,0.79712 -6.2901,0.97774 -10.5625,-0.375 -4.3016,-1.36195 -5.4697,-2.46872 -10.6563,-4.3125 4.664,2.11517 6.1953,3.95233 10.125,5.34375 1.6207,0.57387 3.3671,0.9396 5.0625,1.03125 -0.4451,0.32563 -1.5303,0.9833 -3.5625,1.59375 -2.7955,0.83969 -6.6491,1.53378 -8.25,1.625 -1.5146,0.0863 -3.142,-0.51249 -3.4375,-0.625 0.1667,0.10308 0.3732,0.37734 -0.25,1.03125 -0.8993,0.94363 -6.1474,1.923 -9.125,2.25 -2.9643,0.32555 -6.5216,-0.016 -10.9062,-1.90625 -3.978,-1.71497 -5.339,-2.91536 -9.4063,-4.75 0,0 0,0.15625 0,0.15625 3.6431,2.09529 5.284,3.88327 8.875,5.5625 1.7302,0.80909 3.5917,1.40876 5.4063,1.71875 -0.5349,0.28676 -1.5578,0.71151 -3.4375,1.03125 -2.869,0.48796 -6.809,0.81614 -8.4375,0.75 -0.8507,-0.0345 -1.7286,-0.18437 -2.4063,-0.40625 -0.6848,-0.21488 -1.1897,-0.44467 -1.3125,-0.5 0.1694,0.10721 0.4311,0.40288 -0.2187,1.03125 -0.9097,0.87962 -6.2461,1.33638 -9.25,1.46875 -2.9905,0.13179 -6.5889,-0.45063 -11,-2.5625 -4.4412,-2.12626 -5.6415,-3.4016 -10.9063,-5.78125 4.7343,2.59704 6.2865,4.6291 10.3438,6.71875 1.6733,0.86185 3.4852,1.49425 5.25,1.9375 -0.4633,0.23332 -1.5894,0.68814 -3.6875,0.9375 -2.8863,0.34298 -6.8346,0.49288 -8.4688,0.375 -1.5462,-0.1115 -3.2312,-0.85696 -3.5312,-1 0.1691,0.12029 0.4138,0.41048 -0.2188,1 -0.9128,0.85073 -6.2441,1.26212 -9.25,1.375 -2.9925,0.11237 -6.5897,-0.49043 -11,-2.59375 -4.00125,-1.90823 -5.38803,-3.13783 -9.46875,-5.09375 -3e-5,0 0,0.15625 0,0.15625 3.65506,2.20392 5.29421,4.05255 8.90625,5.90625 1.74029,0.89315 3.637,1.52827 5.4688,1.96875 -0.54,0.2483 -1.5781,0.61533 -3.4688,0.84375 -2.88568,0.34858 -6.86605,0.52095 -8.5,0.40625 -0.85345,-0.0599 -1.72631,-0.25791 -2.40625,-0.5 -0.6871,-0.2353 -1.18935,-0.47226 -1.3125,-0.53125 0.16998,0.11227 0.46448,0.42225 -0.1875,1.03125 -0.91265,0.8525 -6.27533,1.29337 -9.28125,1.40625 -2.99246,0.11237 -6.59346,-0.52805 -11,-2.59375 -4.43653,-2.07978 -5.64688,-3.33171 -10.90625,-5.65625 4.72938,2.54749 6.29074,4.5778 10.34375,6.625 1.67155,0.84433 3.48554,1.46643 5.25,1.90625 -0.46323,0.23422 -1.5897,0.68407 -3.6875,0.9375 -2.88569,0.34858 -6.8362,0.56952 -8.46875,0.46875 -1.54456,-0.0953 -3.20031,-0.82885 -3.5,-0.96875 0.16899,0.11853 0.38192,0.40385 -0.25,1 -0.91186,0.86028 -6.24665,1.33025 -9.25,1.46875 -2.98995,0.1379 -6.56745,-0.45068 -10.96875,-2.46875 -3.99308,-1.83089 -5.36511,-3.0292 -9.4375,-4.90625 -2e-5,0 0,0.15625 0,0.15625 3.64761,2.13327 5.27033,3.93487 8.875,5.71875 1.73675,0.85951 3.60727,1.45014 5.4375,1.875 -0.53947,0.2529 -1.55063,0.64129 -3.4375,0.90625 -2.87978,0.40436 -6.83813,0.64562 -8.46875,0.5625 -0.85172,-0.0434 -1.7277,-0.20855 -2.40625,-0.4375 -0.68569,-0.22201 -1.1896,-0.44339 -1.3125,-0.5 0.16959,0.10899 0.4319,0.40965 -0.21875,1.03125 -0.91079,0.87014 -6.25021,1.39152 -9.25,1.5625 -2.98633,0.17021 -6.57381,-0.31577 -10.96875,-2.28125 -4.42489,-1.97888 -5.60596,-3.22819 -10.84375,-5.375 4.70997,2.38767 6.27017,4.38873 10.3125,6.34375 1.66715,0.80631 3.46043,1.39658 5.21875,1.78125 -0.46163,0.2487 -1.597,0.71225 -3.6875,1.03125 -2.8756,0.43876 -6.7804,0.7331 -8.40625,0.6875 -1.53823,-0.0431 -3.2328,-0.74522 -3.53125,-0.875 0.16833,0.11282 0.41057,0.41375 -0.21875,1.03125 -0.90812,0.8911 -6.20295,1.52825 -9.1875,1.8125 -2.97118,0.28298 -6.57342,-0.1758 -10.9375,-1.9375 -3.95934,-1.59831 -5.32915,-2.79487 -9.34375,-4.3125 3e-5,0 0,0.15625 0,0.15625 3.5959,1.81135 5.23831,3.58233 8.8125,5.15625 1.72207,0.75835 3.58748,1.28895 5.40625,1.625 -0.53609,0.27908 -1.56658,0.68763 -3.4375,1.0625 -2.85539,0.5721 -6.78942,1.01939 -8.40625,1.03125 -0.84451,0.006 -1.70608,-0.0809 -2.375,-0.25 -0.67591,-0.16151 -1.16009,-0.32923 -1.28125,-0.375 0.16722,0.094 0.42267,0.38348 -0.21875,1.0625 -0.89787,0.95052 -6.18648,1.91708 -9.125,2.4375 -2.92534,0.51809 -6.43215,0.37424 -10.71875,-1.03125 -4.3158,-1.41507 -5.47277,-2.52994 -10.5625,-3.96875 4.57685,1.75101 6.08855,3.56006 10.03125,5 1.62608,0.59389 3.36885,0.95565 5.09375,1.15625 -0.45285,0.29702 -1.55478,0.88339 -3.59375,1.46875 -2.80472,0.80517 -6.63886,1.57583 -8.21875,1.75 -1.49475,0.1648 -3.11623,-0.31681 -3.40625,-0.40625 0.16356,0.0901 0.39278,0.35993 -0.21875,1.0625 -0.88247,1.01385 -6.04452,2.37165 -8.9375,3.0625 -2.88002,0.68778 -6.3356,0.76002 -10.5625,-0.4375 -3.83485,-1.08645 -5.17258,-2.07237 -9.0625,-3.125 -10e-6,0 0,0.15625 0,0.15625 3.48418,1.39485 5.06941,2.9194 8.53125,4.03125 1.66793,0.53572 3.45578,0.78674 5.21875,0.875 -0.51964,0.35212 -1.50039,0.91452 -3.3125,1.53125 -2.76566,0.94125 -6.59024,1.93537 -8.15625,2.15625 -0.81794,0.11539 -1.6331,0.12283 -2.28125,0.0312 -0.65496,-0.0832 -1.1326,-0.21827 -1.25,-0.25 0.16204,0.0746 0.43399,0.34044 -0.1875,1.09375 -0.87,1.05453 -6.00963,2.65925 -8.875,3.4375 -2.85253,0.77476 -6.25912,0.9582 -10.4375,-0.0937 -4.20683,-1.05913 -5.35669,-2.04166 -10.34375,-3.15625 4.48454,1.45946 5.96935,3.13523 9.8125,4.25 1.58504,0.45977 3.28679,0.63825 4.96875,0.6875 -0.44157,0.33676 -1.51251,1.02773 -3.5,1.78125 -2.73393,1.03649 -6.45198,2.16269 -8,2.4375 -1.46462,0.26002 -3.05958,-0.11654 -3.34375,-0.1875 0.16025,0.0796 0.38044,0.32098 -0.21875,1.0625 -0.86466,1.07006 -5.91652,2.81815 -8.75,3.6875 -2.8208,0.86547 -6.2075,1.15631 -10.34375,0.21875 -3.75259,-0.85061 -5.04785,-1.71647 -8.875,-2.59375 0,0 0,0.15625 0,0.15625 3.42796,1.23779 4.98741,2.6323 8.375,3.53125 1.63216,0.43314 3.36704,0.58301 5.09375,0.5625 -0.50893,0.38417 -1.47675,1.02182 -3.25,1.75 -2.70634,1.11134 -6.43633,2.30781 -7.96875,2.625 -0.8004,0.16569 -1.61231,0.21862 -2.25,0.15625 0,0 0,0.51552 0,0.92229 0,0.26507 0,0.48396 0,0.48396 0.22645,-0.14468 0.44891,-0.27261 0.71875,-0.375 1.08052,-0.40998 2.17161,-0.21577 6,-1.6875 3.82843,-1.47174 5.22412,-2.00498 5.90625,-2.40625 0.6796,-0.39978 1.61165,-0.87937 2.21875,-1.53125 1.82685,-0.13775 3.57075,-0.49323 4.9375,-1 2.96812,-1.10052 4.87537,-1.80619 6.78125,-2.46875 1.90586,-0.66254 2.35409,-1.41487 3.40625,-1.78125 1.09155,-0.38011 2.19511,-0.16538 6.0625,-1.53125 3.86745,-1.36586 5.28316,-1.82708 5.96875,-2.21875 0.70109,-0.40052 1.70081,-0.93298 2.3125,-1.59375 1.9708,-0.0547 3.81685,-0.38463 5.28125,-0.875 3.00148,-1.00508 4.92615,-1.62171 6.84375,-2.25 1.5386,-0.5041 2.17402,-1.04677 2.90625,-1.4375 0.23016,-0.13431 0.47574,-0.25373 0.75,-0.34375 1.09823,-0.36048 2.18145,-0.0814 6.09375,-1.3125 3.91233,-1.23113 5.36605,-1.67295 6.0625,-2.03125 0.69388,-0.35697 1.63015,-0.79261 2.25,-1.40625 1.86521,-0.0227 3.63581,-0.26683 5.03125,-0.6875 3.03043,-0.91354 4.99238,-1.4301 6.9375,-1.96875 1.94511,-0.53864 2.42618,-1.26452 3.5,-1.5625 1.11401,-0.30915 2.21994,0.007 6.1875,-1.03125 3.96761,-1.03863 5.41758,-1.43273 6.125,-1.75 0.73487,-0.32959 1.81383,-0.75372 2.4375,-1.375 1.99774,0.116 3.85743,-0.0201 5.34375,-0.375 3.07811,-0.735 5.08344,-1.10094 7.0625,-1.5 1.58792,-0.32018 2.24429,-0.79055 3,-1.09375 0.23757,-0.1068 0.46695,-0.19276 0.75,-0.25 1.13347,-0.22919 2.30448,0.20893 6.34375,-0.5 4.03933,-0.70893 5.50025,-0.92709 6.21875,-1.1875 0.71586,-0.25944 1.70428,-0.56724 2.34375,-1.09375 1.92427,0.23949 3.74788,0.22453 5.1875,0 3.12633,-0.48762 5.15455,-0.70067 7.15625,-0.96875 2.00171,-0.26807 2.48869,-0.94514 3.59375,-1.09375 1.14639,-0.15418 2.27592,0.30157 6.34375,-0.21875 4.06784,-0.52032 5.56013,-0.69573 6.28125,-0.9375 0.7371,-0.24714 1.79809,-0.58623 2.4375,-1.125 2.05007,0.33553 3.97378,0.39796 5.5,0.21875 3.14231,-0.36896 5.17994,-0.55936 7.1875,-0.78125 1.61076,-0.17802 2.26467,-0.6082 3.03125,-0.84375 0.24094,-0.0855 0.49412,-0.1556 0.78125,-0.1875 1.14978,-0.12772 2.30129,0.34665 6.375,-0.125 4.07374,-0.47165 5.55909,-0.6106 6.28125,-0.84375 0.71946,-0.23227 1.70024,-0.47346 2.34375,-0.96875 1.93637,0.33346 3.77006,0.40424 5.21875,0.25 3.14602,-0.33495 5.17756,-0.51859 7.1875,-0.71875 2.00996,-0.20014 2.48414,-0.82639 3.59375,-0.9375 1.15114,-0.11528 2.29643,0.36506 6.375,-0.0625 4.07861,-0.42756 5.58886,-0.56209 6.3125,-0.78125 0.73915,-0.22386 1.79572,-0.51325 2.4375,-1.03125 2.0571,0.39867 4.00187,0.4934 5.53125,0.34375 3.14873,-0.3081 5.17584,-0.47325 7.1875,-0.65625 1.61407,-0.14682 2.2631,-0.56055 3.03125,-0.78125 0.24142,-0.0809 0.49353,-0.12991 0.78125,-0.15625 1.15211,-0.10545 2.29296,0.39275 6.375,0 4.08208,-0.39275 5.5889,-0.53084 6.3125,-0.75 0.7209,-0.21833 1.6997,-0.4477 2.3438,-0.9375 1.938,0.34999 3.7688,0.45438 5.2187,0.3125 3.1487,-0.3081 5.1758,-0.47325 7.1875,-0.65625 2.0116,-0.18299 2.5142,-0.83802 3.625,-0.9375 1.1523,-0.10323 2.2922,0.38483 6.375,0 4.0829,-0.38482 5.5887,-0.501 6.3125,-0.71875 0.7393,-0.22243 1.7956,-0.51449 2.4375,-1.03125 2.0574,0.40177 4.0029,0.50333 5.5313,0.34375 3.1466,-0.32852 5.1771,-0.5227 7.1875,-0.71875 1.613,-0.15729 2.2656,-0.63148 3.0312,-0.875 0.2407,-0.088 0.4632,-0.12137 0.75,-0.15625 1.1483,-0.1397 2.3167,0.33991 6.375,-0.25 4.0583,-0.58992 5.5618,-0.77714 6.2813,-1.03125 0.7167,-0.25316 1.6745,-0.55807 2.3125,-1.09375 1.9197,0.21194 3.7199,0.15141 5.1562,-0.0937 3.1191,-0.5324 5.1116,-0.92861 7.0938,-1.3125 1.9821,-0.38387 2.4743,-1.03965 3.5625,-1.28125 1.1288,-0.25066 2.2703,0.11629 6.25,-0.875 3.9796,-0.99128 5.4296,-1.4193 6.125,-1.78125 0.7223,-0.37601 1.7619,-0.87058 2.375,-1.53125 1.963,-0.012 3.7937,-0.29105 5.2187,-0.84375 2.9512,-1.14461 4.8732,-1.86942 6.6875,-2.75 1.4557,-0.70653 2.3348,-1.68641 2.5469,-1.98438 0.2122,-0.29796 0.1118,-0.7453 0.1379,-0.76675 0.043,-0.0352 0.3193,-0.085 0.479,-0.42844 0.8589,-1.84708 2.321,-5.64459 2.4352,-6.32945 0.1137,-0.68216 0.1638,-1.34774 0.2145,-1.74497 0.029,-0.22952 -0.1467,-0.86544 -0.1246,-0.92404 0.031,-0.0821 0.3045,-0.26528 0.3599,-0.51471 0.2663,-1.19833 0.089,-2.19129 -0.1251,-3.60893 -0.214,-1.41764 -0.9837,-4.62214 -1.6369,-5.47626 -0.6589,-0.86172 -1.2229,-1.01117 -1.7479,-1.00066 -0.2086,0.26976 0.1368,0.26309 0.1626,0.31261 0.6806,0.0508 0.934,0.36864 1.4192,0.89662 0.4852,0.52798 1.2218,3.85117 1.3584,5.30156 0.1366,1.45039 0.19,2.8602 -0.088,3.46864 -0.2781,0.60845 -0.7232,0.51703 -1.0156,0.58291 0.531,0.18589 0.6698,0.12483 0.7314,0.96929 0.059,0.81338 -0.1332,1.63969 -0.5198,2.80562 -0.3912,1.18001 -1.8452,4.34998 -2.2857,4.59877 -0.4523,0.25551 -0.7314,0.27038 -1.067,0.13944 z"
4141 id="path8181"
4142 inkscape:connector-curvature="0" />
4143 <path
4144 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7297);enable-background:new"
4145 d="m 988.75,-263.84375 c 1.91161,0.6344 4.55027,1.75841 6.125,2.8125 1.57477,1.05409 2.8961,1.48252 5.5313,3.375 2.6082,1.87314 5.0269,3.01522 7.3125,4.0625 2.4693,1.13147 5.7521,2.15474 9.5312,3.9375 -1.2072,-1.2584 -7.139,-3.36445 -9.0312,-4.1875 -1.8922,-0.82304 -4.128,-1.93049 -6.9375,-3.78125 -2.80961,-1.85075 -3.62224,-2.48154 -6.00005,-3.71875 -2.37782,-1.23719 -4.07988,-1.9492 -6.53125,-2.5 z"
4146 id="path8183"
4147 inkscape:connector-curvature="0" />
4148 <path
4149 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7301);enable-background:new"
4150 d="m 957.5,-260.78125 c 1.91,0.6181 4.58288,1.70934 6.15625,2.75 1.57339,1.04066 2.89608,1.48252 5.53125,3.375 2.60823,1.87315 5.02692,3.01521 7.3125,4.0625 2.46931,1.13147 5.75213,2.15475 9.53125,3.9375 -1.20728,-1.2584 -7.20154,-3.3957 -9.09375,-4.21875 -1.89217,-0.82304 -4.09666,-1.9305 -6.90625,-3.78125 -2.80958,-1.85075 -3.59295,-2.43932 -5.96875,-3.65625 -2.37578,-1.21691 -4.11321,-1.93885 -6.5625,-2.46875 z"
4151 id="path8185"
4152 inkscape:connector-curvature="0" />
4153 <path
4154 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7305);enable-background:new"
4155 d="m 926.09375,-257.375 c 1.90772,0.59745 4.55348,1.66384 6.125,2.6875 1.5715,1.02365 2.87022,1.43971 5.5,3.28125 2.60291,1.82273 5.02887,2.9722 7.3125,4 2.4672,1.11041 5.75535,2.09323 9.53125,3.84375 -1.20623,-1.2481 -7.1719,-3.31809 -9.0625,-4.125 -1.89058,-0.8069 -4.10242,-1.89104 -6.90625,-3.6875 -2.80385,-1.79644 -3.62704,-2.40251 -6,-3.59375 -2.37297,-1.19124 -4.05362,-1.90283 -6.5,-2.40625 z"
4156 id="path8187"
4157 inkscape:connector-curvature="0" />
4158 <path
4159 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7309);enable-background:new"
4160 d="m 894.90625,-253.5625 c 1.90213,0.55355 4.58701,1.58887 6.15625,2.59375 1.56923,1.00487 2.87401,1.40864 5.5,3.21875 2.59912,1.79164 5.00034,2.87189 7.28125,3.875 2.46428,1.08374 5.75984,2.04029 9.53125,3.75 -1.2048,-1.23507 -7.17416,-3.24478 -9.0625,-4.03125 -1.88832,-0.78647 -4.0752,-1.8308 -6.875,-3.59375 -2.79977,-1.76294 -3.59919,-2.36836 -5.96875,-3.53125 -2.36957,-1.16288 -4.12325,-1.83412 -6.5625,-2.28125 z"
4161 id="path8189"
4162 inkscape:connector-curvature="0" />
4163 <path
4164 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7313);enable-background:new"
4165 d="m 863.71875,-248.65625 c 1.88062,0.42909 4.50427,1.38038 6.0625,2.3125 1.55823,0.93211 2.85233,1.25776 5.46875,3 2.58971,1.72444 4.98067,2.70802 7.25,3.625 2.45176,0.99069 5.73959,1.87707 9.5,3.5 -1.20131,-1.20734 -7.15249,-3.06609 -9.03125,-3.78125 -1.87875,-0.71517 -4.0854,-1.68442 -6.875,-3.375 -2.78963,-1.69057 -3.58461,-2.22822 -5.9375,-3.28125 -2.35292,-1.05301 -4.02584,-1.71248 -6.4375,-2 z"
4166 id="path8191"
4167 inkscape:connector-curvature="0" />
4168 <path
4169 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7317);enable-background:new"
4170 d="m 833.15625,-241.375 c 1.84836,0.29644 4.46945,0.97632 6,1.78125 1.53058,0.80493 2.81374,1.05573 5.375,2.53125 2.53504,1.46046 4.89068,2.32509 7.125,3.0625 2.41399,0.79668 5.65711,1.46689 9.375,2.84375 -1.18771,-1.12873 -7.08772,-2.58975 -8.9375,-3.15625 -1.84977,-0.5665 -4.00342,-1.37392 -6.75,-2.84375 -2.74657,-1.46983 -3.50136,-1.92028 -5.8125,-2.78125 -2.31115,-0.86095 -4.00471,-1.32009 -6.375,-1.4375 z"
4171 id="path8193"
4172 inkscape:connector-curvature="0" />
4173 <path
4174 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7321);enable-background:new"
4175 d="m 802.90625,-232.3125 c 1.8222,0.21127 4.36576,0.80057 5.875,1.53125 1.50925,0.73066 2.75568,0.92998 5.28125,2.28125 2.49976,1.33746 4.83154,2.04843 7.03125,2.65625 2.37653,0.65667 5.56464,1.07288 9.21875,2.1875 -1.16735,-1.04496 -6.92888,-2.10329 -8.75,-2.5625 -1.82111,-0.45921 -3.95225,-1.12696 -6.65625,-2.4375 -2.70403,-1.31052 -3.47106,-1.7199 -5.75,-2.46875 -2.27895,-0.74883 -3.91325,-1.17931 -6.25,-1.1875 z"
4176 id="path8195"
4177 inkscape:connector-curvature="0" />
4178 <path
4179 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7329);enable-background:new"
4180 d="m 773.1875,-222.1875 c 1.81109,0.1787 4.32059,0.66506 5.8125,1.34375 1.49194,0.67869 2.7534,0.79822 5.25,2.0625 2.47107,1.25138 4.79005,1.89614 6.96875,2.4375 2.35387,0.58488 5.49134,0.89752 9.09375,1.84375 -1.15084,-0.99116 -6.85251,-1.7833 -8.65625,-2.1875 -1.80372,-0.4042 -3.91553,-1.02116 -6.59375,-2.25 -2.67818,-1.22884 -3.40345,-1.61089 -5.65625,-2.28125 -2.25279,-0.67034 -3.89627,-1.00232 -6.21875,-0.96875 z"
4181 id="path8197"
4182 inkscape:connector-curvature="0" />
4183 <path
4184 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7325);enable-background:new"
4185 d="m 743.5625,-211.1875 c 1.79281,0.12911 4.27313,0.54965 5.75,1.1875 1.4769,0.63785 2.7161,0.74156 5.1875,1.9375 2.44618,1.18372 4.72054,1.74666 6.875,2.21875 2.32767,0.51003 5.4196,0.68064 9,1.5625 -1.14379,-0.9706 -6.74759,-1.59065 -8.53125,-1.9375 -1.78367,-0.34684 -3.88285,-0.88756 -6.53125,-2.03125 -2.64841,-1.14368 -3.39495,-1.51631 -5.625,-2.125 -2.23008,-0.60868 -3.82594,-0.90966 -6.125,-0.8125 z"
4186 id="path8199"
4187 inkscape:connector-curvature="0" />
4188 </g>
4189 </g>
4190 <path
4191 sodipodi:nodetypes="ccccccccc"
4192 id="path8201"
4193 d="m 863.87812,475.6679 c 1.64212,-3.218 3.51781,-5.73529 4.86136,-9.84898 0.79872,-3.65789 3.31204,-2.03073 7.26047,-8.3969 1.40193,-2.2395 5.47653,0.39136 8.9651,-2.39911 1.27072,-0.80319 2.88488,-0.40431 4.48256,-0.0631 3.76539,1.31896 5.82576,3.70355 8.33376,5.80837 6.13906,5.97023 20.53414,7.94327 23.48604,6.31346 1.43405,-2.90474 7.88128,-5.40888 12.37437,-11.11168 0.74811,-1.12267 11.72936,-8.74446 14.64721,-6.56599"
4194 style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4195 inkscape:connector-curvature="0" />
4196 <path
4197 sodipodi:nodetypes="ccccccccccc"
4198 id="path8203"
4199 d="m 888.50059,465.25071 c 7.36341,-3.23297 13.8109,-8.9084 20.70813,-13.38452 3.31057,-1.96954 6.86983,3.21601 10.796,3.59866 2.29773,-0.21813 3.7129,1.20259 5.68211,1.6415 5.15636,1.31779 2.39793,3.86488 9.97526,6.43972 6.15561,1.7204 8.9074,-6.79847 14.89975,-7.3236 4.87739,-0.50299 8.09892,-0.31603 11.61675,-0.25254 3.92696,0.13889 4.07855,-3.4976 6.06092,-5.3033 2.98056,-2.80522 7.15561,-1.84972 10.14485,-4.7409 1.01754,-1.38468 1.95458,-3.01085 2.73459,-5.10809 0.88201,-2.00034 3.04006,0.30598 4.79823,1.26269"
4200 style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4201 inkscape:connector-curvature="0" />
4202 <path
4203 id="path8994"
4204 d="m 403.27922,1056.3058 56.56854,-42.4264 72.12489,14.1421 -46.66904,52.3259 -53.74012,7.0711 -28.28427,-31.1127 z"
4205 style="display:inline;overflow:visible;visibility:visible;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter9048);enable-background:accumulate"
4206 inkscape:connector-curvature="0" />
4207 <path
4208 sodipodi:nodetypes="czzzzzzcccccccccczczz"
4209 id="path4189"
4210 d="m 542.27183,1060.5719 c -1.40727,18.8012 -1.1449,32.751 2.08174,49.3033 3.22666,16.5523 16.40609,45.9073 20.33441,63.1837 3.92621,17.2671 2.69413,38.3097 -12.45944,51.1483 -15.31761,12.9774 -42.05128,21.5989 -67.83231,15.7337 -25.78105,-5.8652 -69.54907,-49.2234 -88.59019,-70.2283 -19.11214,-21.0833 -63.76086,-93.8506 -77.93853,-124.2758 -14.17767,-30.4251 -12.65961,-36.7186 -8.11972,-45.52972 -9.36672,-24.5205 -12.41371,-50.06681 -33.71245,-75.57664 30.32547,3.11444 43.88028,26.95633 60.12568,47.13975 -5.52989,-48.07603 -18.05471,-64.4165 -28.37395,-90.7243 29.9943,6.08165 50.57936,31.87239 63.97979,72.7125 9.55415,-3.91791 18.23776,-9.37294 30.18741,-9.0612 -11.2975,-41.6958 -17.94946,-69.91584 -36.68725,-101.06994 53.44196,5.67033 83.65702,80.63932 78.97142,87.9608 9.97797,-2.24399 19.00565,-6.53038 30.43653,-5.65167 -11.24897,-38.34702 -21.04781,-76.8679 -3.65971,-118.64819 0,0 48.28678,65.43688 54.38966,85.80578 6.10287,20.3689 1.51881,38.70051 1.51881,38.70051 0,0 16.95957,31.0853 20.29392,51.09414 3.3731,20.24138 -3.53269,59.10328 -4.94582,77.98328 z"
4211 style="display:inline;opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4212 inkscape:connector-curvature="0" />
4213 <path
4214 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,995.28646,23.53493)"
4215 clip-path="url(#clipPath3631)"
4216 sodipodi:nodetypes="cccccccccccccccccccccc"
4217 id="path4191"
4218 d="m 719.5,738.69519 18.31177,15.43196 44.41103,-15.38821 23.2772,-25.54375 11.46397,19.22065 30.67161,12.78354 25.09737,5.72837 L 892,723.19519 908.02309,747.02126 947,752.19519 l 10.24541,-6.19852 6.75471,8.6982 25.49988,11.00032 2,-40.5 L 955.94866,710.6576 923.45591,689.1305 883.0038,677.66492 861.69668,662.13148 840,685.19519 755.02878,638.61208 722,676.69519 l -2.5,62 z"
4219 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter3587);enable-background:accumulate"
4220 inkscape:connector-curvature="0" />
4221 <path
4222 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,822.28931,10.93589)"
4223 sodipodi:nodetypes="ccssscsssssssssssssccccscccccccccsscccccccccccssscccccccccccccccsccccssssssssssssscccsssc"
4224 clip-path="url(#clipPath3677)"
4225 id="path4193"
4226 d="m 584,696.5 -6.5625,17.15625 c 0,0 -7.81152,20.36488 -15.6875,43.65625 -3.93799,11.64568 -7.88302,24.04145 -10.9375,35.125 -3.05448,11.08355 -5.33586,20.37986 -5.5,28.28125 -0.39807,19.16196 5.74653,34.8883 8.9375,41.75 -0.77153,3.55523 -1.99137,9.45432 -3.34375,18.09375 -1.92042,12.26821 -3.71827,27.15441 -2.375,39.875 1.38209,13.08835 6.81222,28.18765 12.59375,43.03125 5.78153,14.8436 12.05435,29.22711 15.21875,38.03125 6.63206,18.4519 9.99296,31.5763 11.3125,48.5 0.58135,7.4561 -0.24227,20.336 -1.25,33.375 -1.00773,13.039 -2.18661,26.3014 -1.6875,36.9688 0.98911,21.1398 9.32798,46.8347 33.375,57.9374 22.77483,10.5154 55.32682,11.7022 83.4375,-3.4374 16.15992,-8.7034 30.07634,-27.0976 43.375,-46.9063 13.29866,-19.8087 24.96917,-41.0534 31.9375,-54.9063 15.35292,-30.5212 39.39353,-115.46418 45.625,-152.7187 3.01859,-18.04653 3.92166,-29.06555 2.625,-38.03125 -0.97853,-6.76604 -3.82819,-12.1474 -6.875,-16.21875 2.04274,-27.50791 -0.73207,-51.36878 11.96875,-79.40625 L 840.75,763.375 l -23.8125,9.3125 c -17.48975,6.83753 -28.90164,19.04536 -36.59375,32.0625 -0.32251,0.54577 -0.56314,1.10776 -0.875,1.65625 0.22203,-22.51521 4.40784,-37.63759 6.59375,-58.6875 l 1.96875,-19 L 771,737.375 c -30.59449,15.55571 -45.69489,48.19321 -49.71875,90.21875 -4.24532,-0.62547 -8.8314,-1.01965 -13.8125,-0.84375 -0.29149,-39.18036 -0.39629,-67.03685 8.59375,-99.375 l 5.59375,-20.125 -19.4375,7.65625 c -30.90937,12.20394 -47.85954,41.93073 -56.625,68.375 -4.38273,13.22214 -6.74582,25.80121 -7.59375,35.9375 -0.23203,2.77373 -0.31106,5.31132 -0.3125,7.71875 -3.24187,-0.0364 -6.42052,0.13589 -10.0625,0.5 0.0416,-39.00473 -3.48424,-79.75415 -32.28125,-116.5 L 584,696.5 Z m 5.8125,43.8125 c 16.80691,30.64383 17.47451,63.96728 16.9375,99.75 l -0.21875,15.0625 12.03493,-6.53921 c 8.66205,-3.13302 19.56058,-0.22752 31.93382,-0.83579 l 14.67465,9.3566 -6.3309,-25.7941 c -0.0897,-0.22997 -0.22046,-0.41669 -0.25,-0.71875 -0.19951,-2.03986 -0.22232,-5.47307 0.125,-9.625 0.69464,-8.30386 2.78957,-19.58524 6.625,-31.15625 5.15532,-15.55294 13.48801,-31.19248 25.125,-42.53125 -4.68381,28.63798 -3.21559,60.25934 -3.01164,95.80514 l -2.76593,13.26164 15.49632,-7.59803 c 9.0294,-2.75771 17.18897,-0.34996 29.28125,1.09375 l 13.24632,9.44423 L 741.09375,840 c 1.44793,-30.97177 8.22149,-53.67808 20.71875,-68.875 -2.98688,19.77884 -5.43043,41.7848 0.3125,78.34375 l 1.06552,6.37318 -2.93815,11.51685 10.61711,-8.16818 9.18973,10.22198 -1.54828,-10.4636 L 781.9375,852 c 5.70102,-13.21149 10.17282,-26.21337 16.34375,-36.65625 0.95986,-1.62434 2.03153,-3.06436 3.0625,-4.5625 -3.68066,21.15535 -2.42716,40.20815 -4.09375,57.78125 l -4.68014,7.80698 7.39889,0.22427 c 3.22005,3.48361 3.8675,3.85068 4.5625,8.65625 0.695,4.80557 0.31862,14.40035 -2.5625,31.625 -5.56799,33.28792 -31.84562,77.83981 -43.7404,101.4864 -6.60491,13.1304 -18.52833,57.4859 -31.12335,76.2465 -12.59502,18.7605 -28.53137,39.7673 -37.17204,44.4209 -21.49052,11.5742 -44.55594,25.5059 -60.61889,18.0895 -14.37486,-6.637 -23.03969,-21.1927 -23.81407,-37.7433 -0.38311,-8.188 0.61279,-21.3092 1.625,-34.4062 1.01221,-13.0971 11.28891,-22.5708 15.42339,-36.5626 5.37229,-18.1808 -1.44687,-36.5944 -12.5,-53.93745 -6.48655,-10.17778 -23.9768,-24.2579 -29.54839,-38.5625 -5.57159,-14.3046 -10.36751,-29.00315 -11.28125,-37.65625 -0.92621,-8.77113 0.4225,-23.02502 2.21875,-34.5 1.79625,-11.47497 3.84375,-20.28125 3.84375,-20.28125 l 9.42278,-3.6152 -10.48528,-3.8848 c 0,0 -8.49889,-15.3101 -8.09375,-34.8125 0.0711,-3.42316 1.83626,-12.72805 4.71875,-23.1875 2.88249,-10.45945 6.76466,-22.55271 10.625,-33.96875 3.04439,-9.00308 5.78063,-16.60345 8.34375,-23.6875 z"
4227 style="display:inline;opacity:0.58775509;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3898);enable-background:new"
4228 inkscape:connector-curvature="0" />
4229 <g
4230 transform="translate(276,136)"
4231 clip-path="url(#clipPath3622)"
4232 id="g3617"
4233 style="display:inline;enable-background:new">
4234 <path
4235 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter9024);enable-background:accumulate"
4236 d="m -15.66751,843.48852 -49.49748,-15.55635 -26.87005,52.3259 41.01219,45.25484 49.49747,-38.18377 -14.14213,-43.84062 z"
4237 id="path4195"
4238 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,-52.200498,74.09707)"
4239 inkscape:connector-curvature="0" />
4240 <path
4241 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter9020);enable-background:accumulate"
4242 d="m 118.70648,859.93048 -55.154328,-46.66904 -43.84062,36.76955 33.94113,53.74011 -13.596814,85.46203 -39.44536579,28.29217 -41.01220021,11.3137 -2.82842,46.669 56.56854,25.4559 18.943987,-69.65 23.45655,-58.85663 46.347541,-72.61491 16.62,-39.91188 z"
4243 id="path4197"
4244 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,-46.92842,75.511284)"
4245 sodipodi:nodetypes="ccccccccccccc"
4246 inkscape:connector-curvature="0" />
4247 </g>
4248 <path
4249 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,229.07158,211.51128)"
4250 id="path4199"
4251 d="m -70.82184,932.58397 60.81118,-26.87005 100.40916,31.1127 -63.63961,31.11269 -82.02438,-16.97056 -15.55635,-18.38478 z"
4252 style="display:inline;overflow:visible;visibility:visible;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter9044);enable-background:accumulate"
4253 inkscape:connector-curvature="0" />
4254 <path
4255 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,822.28931,10.93589)"
4256 clip-path="url(#clipPath4177)"
4257 sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccczzzcccccc"
4258 id="path4201"
4259 d="m 583.0625,715.75 c -12.10609,34.44974 -26.7145,68.53333 -31.75,104.84375 -0.83208,14.92867 4.58915,29.15943 8.84375,43.0625 -5.91624,27.20126 -10.13681,56.89995 1.15625,83.125 13.51717,38.16085 35.00147,75.68215 32.42279,117.46825 -0.9483,29.2942 -9.01444,60.9941 5.38971,88.2817 10.19864,19.3348 33.13956,27.3117 53.96785,27.6676 27.86219,1.1741 56.46261,-11.6216 72.0009,-35.2613 22.59549,-29.3717 41.80051,-61.4973 55.23865,-96.0598 16.89053,-45.506 29.6718,-92.56072 37.93402,-140.3989 1.8244,-12.94106 3.10108,-27.46985 -4.57892,-38.82255 -3.43115,-7.33632 0.0421,-15.56014 -0.68457,-23.30977 0.674,-24.99466 4.01232,-50.66376 16.65332,-72.59648 -17.73313,6.4446 -35.07268,16.55971 -44.00307,33.86425 -3.93508,6.70955 -7.60482,13.57413 -11.37193,20.38575 -3.54999,-30.01408 3.71963,-59.64828 6.78125,-89.28125 -20.16604,9.05463 -36.87672,25.65522 -44.17495,46.682 -6.30463,15.58003 -8.80222,32.31718 -10.26255,49.03675 -8.25334,-1.51925 -16.68447,-2.10155 -25.0625,-1.5 -0.96308,-38.69787 -0.46696,-79.40715 10.96875,-115.90625 -18.68113,6.21776 -35.16621,18.73551 -45.62803,35.38723 -13.85254,20.87979 -21.2614,45.75395 -23.05947,70.61277 0.58534,4.32454 -0.0613,11.84009 -6.34375,9.875 -5.33118,0.0176 -10.62908,0.67883 -15.9375,1.09375 1.14784,-39.38148 -3.34144,-81.6282 -27.0625,-114.21875 -3.06071,-3.63717 -5.63685,-7.68438 -8.625,-11.34375 -0.9375,2.4375 -1.875,4.875 -2.8125,7.3125 z m 7.75,13.84375 c 18.56527,29.29629 22.4825,64.82012 22.125,98.875 0.20409,5.17526 -0.51656,11.8292 0.125,16.0625 12.31856,-6.10275 26.73912,-2.4399 39.78125,-2.1875 2.31712,1.22325 3.1921,1.65243 1.90625,-1.40625 -4.16455,-13.95285 -1.84828,-28.613 1.80504,-42.40764 6.36687,-26.29064 20.62828,-51.08798 42.81996,-67.02986 -8.61709,37.23706 -5.71658,76.56161 -6.09375,113.96875 12.25344,-6.9099 27.27879,-3.44613 40.03125,-0.25 3.39222,3.5348 2.28935,-0.72948 2.1875,-3.8125 -0.48309,-21.37058 4.13133,-43.06963 13.6875,-62.15625 5.96266,-10.68727 14.24338,-19.80379 22.4375,-28.875 -7.87156,33.8381 -9.2029,69.33593 -2.71875,103.5 1.72485,-1.41118 4.60681,-0.45414 5.65625,-0.375 9.68369,-21.23682 16.35112,-45.38062 34.89016,-60.74185 1.87329,-0.37122 -1.44818,8.52495 -1.48391,11.8981 -3.53488,21.84581 -7.17516,44.14234 -8.78421,66.21911 -8.78379,2.34171 2.84835,2.32354 3.46875,4.0625 7.92311,10.5658 4.66299,24.40472 3.63165,36.35334 -7.06405,45.03355 -22.14231,87.36194 -35.95355,130.6798 -12.07476,32.9493 -27.3742,58.8525 -47.88808,87.2015 -10.95257,13.5514 -23.24472,27.8513 -40.84375,32.5 -20.15601,6.2413 -44.20676,10.8769 -62.59956,0.046 -17.28966,-12.3414 -21.02393,-35.7089 -19.26226,-55.6864 0.0488,-15.8262 4.93886,-28.5121 4.4106,-43.4918 -0.53824,-15.2629 -2.29135,-30.5647 -6.54261,-46.8663 -4.25126,-16.30162 -9.04325,-24.91794 -16.11906,-41.57338 -7.24111,-17.04456 -15.07015,-36.74863 -18.20542,-56.28842 -1.74948,-18.62714 2.89171,-37.12262 5.78125,-55.25 3.29623,-2.83696 -1.59799,-5.19659 -2.3125,-8.1875 -7.60113,-17.01508 -8.40747,-36.7749 -2.74234,-54.55998 7.1302,-25.0723 15.76087,-49.63241 24.67984,-74.12752 0.70833,1.30208 1.41667,2.60417 2.125,3.90625 z"
4260 style="display:inline;opacity:0.58775509;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter4105);enable-background:new"
4261 inkscape:connector-curvature="0" />
4262 <path
4263 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,995.28646,23.53493)"
4264 clip-path="url(#clipPath3631)"
4265 sodipodi:nodetypes="cccccccc"
4266 id="path4203"
4267 d="m 735.05635,733.03834 2.75542,21.08881 44.41103,-15.38821 4.85063,-22.38975 -3.93617,-22.05222 -22.45163,-36.59301 -8.28004,30.30494 -17.34924,45.02944 z"
4268 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter4130);enable-background:accumulate"
4269 inkscape:connector-curvature="0" />
4270 <path
4271 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,995.28646,23.53493)"
4272 clip-path="url(#clipPath3631)"
4273 sodipodi:nodetypes="cccccccc"
4274 id="path4205"
4275 d="m 831.81321,730.29452 15.82237,14.90486 20.85473,2.89994 -1.59029,-39.92598 8.32561,-30.50842 -7.16499,-6.34106 -21.69669,20.9424 -14.55074,38.02826 z"
4276 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter4141);enable-background:accumulate"
4277 inkscape:connector-curvature="0" />
4278 <g
4279 transform="translate(276,136)"
4280 clip-path="url(#clipPath8338)"
4281 style="display:inline;filter:url(#filter8333);enable-background:new"
4282 id="g8317">
4283 <path
4284 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4285 d="m 964.00012,754.69487 18.42881,7.46479 9.07107,-36.96447 -14.87031,4.83886 -12.62957,24.66082 z"
4286 id="path4209"
4287 sodipodi:nodetypes="ccccc"
4288 clip-path="none"
4289 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,719.28646,-112.46507)"
4290 inkscape:connector-curvature="0" />
4291 <rect
4292 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4293 id="rect8315"
4294 width="182"
4295 height="177"
4296 x="-55"
4297 y="757.19519" />
4298 </g>
4299 <g
4300 transform="translate(276,136)"
4301 clip-path="url(#clipPath8359)"
4302 style="display:inline;filter:url(#filter8354);enable-background:new"
4303 id="g8346">
4304 <path
4305 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4306 d="m 910.14441,746.31415 32.61295,5.17393 -0.36119,-23.87619 7.18853,-29.68221 -8.45112,-5.26365 -21.82194,26.51077 -9.16723,27.13735 z"
4307 id="path4207"
4308 sodipodi:nodetypes="ccccccc"
4309 clip-path="none"
4310 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,719.28646,-112.46507)"
4311 inkscape:connector-curvature="0" />
4312 <rect
4313 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4314 id="rect8344"
4315 width="165"
4316 height="176"
4317 x="-22"
4318 y="696.19519" />
4319 </g>
4320 <path
4321 sodipodi:nodetypes="czzzzzzcccccccccczczz"
4322 id="path8848"
4323 d="m 1036.164,1071.8338 c 6.7941,18.9028 10.4937,33.2997 11.8903,51.2119 1.3966,17.9123 -3.7827,51.8008 -2.9005,70.6561 0.8818,18.8452 8.1337,40.099 27.3446,48.9689 19.4189,8.9658 49.3193,10.2113 74.1199,-3.1456 24.8006,-13.357 57.401,-70.3255 70.9742,-97.3087 13.6239,-27.0839 38.7611,-114.4974 44.6608,-149.76859 5.8998,-35.27121 2.5506,-41.30077 -4.6174,-49.05549 2.6403,-27.84015 -1.4998,-54.93543 13.1096,-87.18618 -30.249,11.8257 -37.3823,40.1607 -48.3189,65.50508 -8.0009,-50.93293 0.2092,-71.27319 3.3189,-101.21936 -29.0647,14.77791 -42.8615,47.11402 -45,92.85714 -10.9239,-1.3042 -21.3914,-4.43423 -33.5714,-0.71429 -0.264,-46.02334 -1.4635,-76.88941 8.9106,-114.20649 -53.2554,21.02686 -62.9472,106.5941 -56.0535,112.77792 -10.8828,0.535 -21.371,-1.2973 -32.8571,2.85715 0.6389,-42.57135 -0.2605,-84.90861 -30,-122.85715 0,0 -30.958,80.92234 -31.4286,103.57143 -0.4705,22.64909 9.4516,40.16588 9.4516,40.16588 0,0 -8.568,36.74051 -6.2986,58.23223 2.2959,21.74142 20.4429,59.67622 27.2655,78.65812 z"
4324 style="display:inline;opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4325 inkscape:connector-curvature="0" />
4326 <path
4327 transform="translate(276,136)"
4328 clip-path="url(#clipPath3631)"
4329 sodipodi:nodetypes="cccccccccccccccccccccc"
4330 id="path3635"
4331 d="m 719.5,738.69519 18.31177,15.43196 44.41103,-15.38821 23.2772,-25.54375 11.46397,19.22065 30.67161,12.78354 25.09737,5.72837 L 892,723.19519 908.02309,747.02126 947,752.19519 l 10.24541,-6.19852 6.75471,8.6982 25.49988,11.00032 2,-40.5 L 955.94866,710.6576 923.45591,689.1305 883.0038,677.66492 861.69668,662.13148 840,685.19519 755.02878,638.61208 722,676.69519 l -2.5,62 z"
4332 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter3587);enable-background:accumulate"
4333 inkscape:connector-curvature="0" />
4334 <path
4335 sodipodi:nodetypes="ccssscsssssssssssssccccscccccccccsscccccccccccssscccccccccccccccsccccssssssssssssscccsssc"
4336 clip-path="url(#clipPath3677)"
4337 id="path3669"
4338 d="m 584,696.5 -6.5625,17.15625 c 0,0 -7.81152,20.36488 -15.6875,43.65625 -3.93799,11.64568 -7.88302,24.04145 -10.9375,35.125 -3.05448,11.08355 -5.33586,20.37986 -5.5,28.28125 -0.39807,19.16196 5.74653,34.8883 8.9375,41.75 -0.77153,3.55523 -1.99137,9.45432 -3.34375,18.09375 -1.92042,12.26821 -3.71827,27.15441 -2.375,39.875 1.38209,13.08835 6.81222,28.18765 12.59375,43.03125 5.78153,14.8436 12.05435,29.22711 15.21875,38.03125 6.63206,18.4519 9.99296,31.5763 11.3125,48.5 0.58135,7.4561 -0.24227,20.336 -1.25,33.375 -1.00773,13.039 -2.18661,26.3014 -1.6875,36.9688 0.98911,21.1398 9.32798,46.8347 33.375,57.9374 22.77483,10.5154 55.32682,11.7022 83.4375,-3.4374 16.15992,-8.7034 30.07634,-27.0976 43.375,-46.9063 13.29866,-19.8087 24.96917,-41.0534 31.9375,-54.9063 15.35292,-30.5212 39.39353,-115.46418 45.625,-152.7187 3.01859,-18.04653 3.92166,-29.06555 2.625,-38.03125 -0.97853,-6.76604 -3.82819,-12.1474 -6.875,-16.21875 2.04274,-27.50791 -0.73207,-51.36878 11.96875,-79.40625 L 840.75,763.375 l -23.8125,9.3125 c -17.48975,6.83753 -28.90164,19.04536 -36.59375,32.0625 -0.32251,0.54577 -0.56314,1.10776 -0.875,1.65625 0.22203,-22.51521 4.40784,-37.63759 6.59375,-58.6875 l 1.96875,-19 L 771,737.375 c -30.59449,15.55571 -45.69489,48.19321 -49.71875,90.21875 -4.24532,-0.62547 -8.8314,-1.01965 -13.8125,-0.84375 -0.29149,-39.18036 -0.39629,-67.03685 8.59375,-99.375 l 5.59375,-20.125 -19.4375,7.65625 c -30.90937,12.20394 -47.85954,41.93073 -56.625,68.375 -4.38273,13.22214 -6.74582,25.80121 -7.59375,35.9375 -0.23203,2.77373 -0.31106,5.31132 -0.3125,7.71875 -3.24187,-0.0364 -6.42052,0.13589 -10.0625,0.5 0.0416,-39.00473 -3.48424,-79.75415 -32.28125,-116.5 L 584,696.5 Z m 5.8125,43.8125 c 16.80691,30.64383 17.47451,63.96728 16.9375,99.75 l -0.21875,15.0625 12.03493,-6.53921 c 8.66205,-3.13302 19.56058,-0.22752 31.93382,-0.83579 l 14.67465,9.3566 -6.3309,-25.7941 c -0.0897,-0.22997 -0.22046,-0.41669 -0.25,-0.71875 -0.19951,-2.03986 -0.22232,-5.47307 0.125,-9.625 0.69464,-8.30386 2.78957,-19.58524 6.625,-31.15625 5.15532,-15.55294 13.48801,-31.19248 25.125,-42.53125 -4.68381,28.63798 -3.21559,60.25934 -3.01164,95.80514 l -2.76593,13.26164 15.49632,-7.59803 c 9.0294,-2.75771 17.18897,-0.34996 29.28125,1.09375 l 13.24632,9.44423 L 741.09375,840 c 1.44793,-30.97177 8.22149,-53.67808 20.71875,-68.875 -2.98688,19.77884 -5.43043,41.7848 0.3125,78.34375 l 1.06552,6.37318 -2.93815,11.51685 10.61711,-8.16818 9.18973,10.22198 -1.54828,-10.4636 L 781.9375,852 c 5.70102,-13.21149 10.17282,-26.21337 16.34375,-36.65625 0.95986,-1.62434 2.03153,-3.06436 3.0625,-4.5625 -3.68066,21.15535 -2.42716,40.20815 -4.09375,57.78125 l -4.68014,7.80698 7.39889,0.22427 c 3.22005,3.48361 3.8675,3.85068 4.5625,8.65625 0.695,4.80557 0.31862,14.40035 -2.5625,31.625 -5.56799,33.28792 -31.79272,123.1659 -43.6875,146.8125 -6.60491,13.1304 -18.02998,33.8957 -30.625,52.6563 -12.59502,18.7605 -27.35933,35.5338 -36,40.1874 -21.49052,11.5742 -48.7808,10.2602 -64.84375,2.8438 -14.37486,-6.637 -20.53812,-23.4494 -21.3125,-40 -0.38311,-8.188 0.61279,-21.3092 1.625,-34.4062 1.01221,-13.0971 11.28891,-22.5708 15.42339,-36.5626 5.37229,-18.1808 -1.44687,-36.5944 -12.5,-53.93745 -6.48655,-10.17778 -23.9768,-24.2579 -29.54839,-38.5625 -5.57159,-14.3046 -10.36751,-29.00315 -11.28125,-37.65625 -0.92621,-8.77113 0.4225,-23.02502 2.21875,-34.5 1.79625,-11.47497 3.84375,-20.28125 3.84375,-20.28125 l 9.42278,-3.6152 -10.48528,-3.8848 c 0,0 -8.49889,-15.3101 -8.09375,-34.8125 0.0711,-3.42316 1.83626,-12.72805 4.71875,-23.1875 2.88249,-10.45945 6.76466,-22.55271 10.625,-33.96875 3.04439,-9.00308 5.78063,-16.60345 8.34375,-23.6875 z"
4339 style="display:inline;opacity:0.58775509;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3898);enable-background:new"
4340 transform="translate(450.03125,73.843964)"
4341 inkscape:connector-curvature="0" />
4342 <g
4343 transform="translate(276,136)"
4344 clip-path="url(#clipPath3636)"
4345 id="g3628">
4346 <path
4347 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter9024);enable-background:accumulate"
4348 d="m 824.48651,818.48242 -49.49748,-15.55635 -26.87005,52.3259 41.01219,45.25484 49.49747,-38.18377 -14.14213,-43.84062 z"
4349 id="path8988"
4350 inkscape:connector-curvature="0" />
4351 <path
4352 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter9020);enable-background:accumulate"
4353 d="m 964.49365,855.25197 -55.15433,-46.66904 -43.84062,36.76955 33.94113,53.74011 7.07106,66.46804 -50.91168,35.35537 -41.0122,11.3137 -2.82842,46.669 56.56854,25.4559 63.63961,-76.3676 24.04163,-94.75227 8.48528,-57.98276 z"
4354 id="path8990"
4355 inkscape:connector-curvature="0" />
4356 </g>
4357 <path
4358 id="path8992"
4359 d="m 1045.3322,1043.5779 60.8112,-26.8701 100.4091,31.1127 -63.6396,31.1127 -82.0244,-16.9706 -15.5563,-18.3847 z"
4360 style="display:inline;overflow:visible;visibility:visible;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter9044);enable-background:accumulate"
4361 inkscape:connector-curvature="0" />
4362 <path
4363 clip-path="url(#clipPath4177)"
4364 sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccczzzcccccc"
4365 id="path4149"
4366 d="m 583.0625,715.75 c -12.10609,34.44974 -26.7145,68.53333 -31.75,104.84375 -0.83208,14.92867 4.58915,29.15943 8.84375,43.0625 -5.91624,27.20126 -10.13681,56.89995 1.15625,83.125 13.51717,38.16085 35.00147,75.68215 32.42279,117.46825 -0.9483,29.2942 -9.01444,60.9941 5.38971,88.2817 10.19864,19.3348 33.13956,27.3117 53.96785,27.6676 27.86219,1.1741 56.46261,-11.6216 72.0009,-35.2613 22.59549,-29.3717 41.80051,-61.4973 55.23865,-96.0598 16.89053,-45.506 29.6718,-92.56072 37.93402,-140.3989 1.8244,-12.94106 3.10108,-27.46985 -4.57892,-38.82255 -3.43115,-7.33632 0.0421,-15.56014 -0.68457,-23.30977 0.674,-24.99466 4.01232,-50.66376 16.65332,-72.59648 -17.73313,6.4446 -35.07268,16.55971 -44.00307,33.86425 -3.93508,6.70955 -7.60482,13.57413 -11.37193,20.38575 -3.54999,-30.01408 3.71963,-59.64828 6.78125,-89.28125 -20.16604,9.05463 -36.87672,25.65522 -44.17495,46.682 -6.30463,15.58003 -8.80222,32.31718 -10.26255,49.03675 -8.25334,-1.51925 -16.68447,-2.10155 -25.0625,-1.5 -0.96308,-38.69787 -0.46696,-79.40715 10.96875,-115.90625 -18.68113,6.21776 -35.16621,18.73551 -45.62803,35.38723 -13.85254,20.87979 -21.2614,45.75395 -23.05947,70.61277 0.58534,4.32454 -0.0613,11.84009 -6.34375,9.875 -5.33118,0.0176 -10.62908,0.67883 -15.9375,1.09375 1.14784,-39.38148 -3.34144,-81.6282 -27.0625,-114.21875 -3.06071,-3.63717 -5.63685,-7.68438 -8.625,-11.34375 -0.9375,2.4375 -1.875,4.875 -2.8125,7.3125 z m 7.75,13.84375 c 18.56527,29.29629 22.4825,64.82012 22.125,98.875 0.20409,5.17526 -0.51656,11.8292 0.125,16.0625 12.31856,-6.10275 26.73912,-2.4399 39.78125,-2.1875 2.31712,1.22325 3.1921,1.65243 1.90625,-1.40625 -4.16455,-13.95285 -1.84828,-28.613 1.80504,-42.40764 6.36687,-26.29064 20.62828,-51.08798 42.81996,-67.02986 -8.61709,37.23706 -5.71658,76.56161 -6.09375,113.96875 12.25344,-6.9099 27.27879,-3.44613 40.03125,-0.25 3.39222,3.5348 2.28935,-0.72948 2.1875,-3.8125 -0.48309,-21.37058 4.13133,-43.06963 13.6875,-62.15625 5.96266,-10.68727 14.24338,-19.80379 22.4375,-28.875 -7.87156,33.8381 -9.2029,69.33593 -2.71875,103.5 1.72485,-1.41118 4.60681,-0.45414 5.65625,-0.375 9.68369,-21.23682 16.35112,-45.38062 34.89016,-60.74185 1.87329,-0.37122 -1.44818,8.52495 -1.48391,11.8981 -3.53488,21.84581 -3.2972,44.17323 -4.90625,66.25 -1.31238,1.37679 2.84835,2.32354 3.46875,4.0625 7.92311,10.5658 3.12294,24.83149 2.0916,36.78011 -7.06405,45.03355 -21.76553,88.37934 -35.57677,131.69714 -12.07476,32.9493 -30.7197,63.08 -51.23358,91.429 -10.95257,13.5514 -23.24472,27.8513 -40.84375,32.5 -20.15601,6.2413 -43.57595,5.1744 -61.96875,-5.6562 -17.28966,-12.3414 -21.02393,-35.7089 -19.26226,-55.6864 0.0488,-15.8262 2.37211,-27.8008 7.91747,-42.8053 5.54535,-15.0045 2.47105,-31.3317 -1.78021,-47.6333 -4.25126,-16.3016 -12.17903,-26.26002 -21.82158,-42.20417 -9.64255,-15.94415 -17.6369,-36.03734 -20.77217,-55.57713 -1.74948,-18.62714 2.89171,-37.12262 5.78125,-55.25 3.29623,-2.83696 -1.59799,-5.19659 -2.3125,-8.1875 -7.60113,-17.01508 -8.40747,-36.7749 -2.74234,-54.55998 7.1302,-25.0723 15.76087,-49.63241 24.67984,-74.12752 0.70833,1.30208 1.41667,2.60417 2.125,3.90625 z"
4367 style="display:inline;opacity:0.58775509;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter4185);enable-background:new"
4368 transform="translate(450.03125,73.843964)"
4369 inkscape:connector-curvature="0" />
4370 <path
4371 transform="translate(276,136)"
4372 clip-path="url(#clipPath3631)"
4373 sodipodi:nodetypes="cccccccc"
4374 id="path3902"
4375 d="m 735.05635,733.03834 2.75542,21.08881 44.41103,-15.38821 4.85063,-22.38975 -3.93617,-22.05222 -22.45163,-36.59301 -8.28004,30.30494 -17.34924,45.02944 z"
4376 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter4130);enable-background:accumulate"
4377 inkscape:connector-curvature="0" />
4378 <path
4379 transform="translate(276,136)"
4380 clip-path="url(#clipPath3631)"
4381 sodipodi:nodetypes="cccccccc"
4382 id="path4135"
4383 d="m 831.81321,730.29452 15.82237,14.90486 20.85473,2.89994 -1.59029,-39.92598 8.32561,-30.50842 -7.16499,-6.34106 -21.69669,20.9424 -14.55074,38.02826 z"
4384 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter4141);enable-background:accumulate"
4385 inkscape:connector-curvature="0" />
4386 <g
4387 transform="translate(276,136)"
4388 clip-path="url(#clipPath8392)"
4389 style="filter:url(#filter8379)"
4390 id="g8367">
4391 <path
4392 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4393 d="m 910.14441,746.31415 32.61295,5.17393 -0.36119,-23.87619 7.18853,-29.68221 -8.45112,-5.26365 -21.82194,26.51077 -9.16723,27.13735 z"
4394 id="path4145"
4395 sodipodi:nodetypes="ccccccc"
4396 clip-path="none"
4397 inkscape:connector-curvature="0" />
4398 <rect
4399 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4400 id="rect8365"
4401 width="123.03658"
4402 height="172.53406"
4403 x="877.51953"
4404 y="650.19098" />
4405 </g>
4406 <g
4407 transform="translate(276,136)"
4408 clip-path="url(#clipPath8417)"
4409 style="filter:url(#filter8404)"
4410 id="g8400">
4411 <path
4412 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4413 d="m 964.00012,754.69487 18.42881,7.46479 9.07107,-36.96447 -14.87031,4.83886 -12.62957,24.66082 z"
4414 id="path4147"
4415 sodipodi:nodetypes="ccccc"
4416 clip-path="none"
4417 inkscape:connector-curvature="0" />
4418 <rect
4419 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4420 id="rect8398"
4421 width="142.12846"
4422 height="125.1579"
4423 x="924.89569"
4424 y="677.06104" />
4425 </g>
4426 </g> 952 </g>
4427 <rect 953 <g transform="matrix(.9991 .27421 -.11493 2.3838 2962.6 1209.8)" clip-path="url(#fx)">
4428 id="rect6247" 954 <path d="M1056.2-278.8c4.145-1.479 10 3.125 10 3.125.899.28 2.725-.894 2.624-1.686 0 0-1.55-1.86-.374-2.939s5.296 1.507 7.5 1.625 5.562-.23 7-.75 1.113-1.425 2.625-1.75 5.119 1.038 7.06 1.169 4.649.334 5.815-.169.178-1.16 1.875-1.875 7.76-.957 9.625-.125 1.81.52 2.625 3 7.44 5.163-1.125 13.375-59.378 13.786-65.625 2.75 6.23-14.271 10.375-15.75z" enable-background="new" filter="url(#fw)" opacity=".75"/>
4429 width="440" 955 <path d="M1058.5-275.43c4.145-1.479 10 3.125 10 3.125.899.28 2.725-.894 2.624-1.686 0 0-1.55-1.86-.374-2.939s5.296 1.507 7.5 1.625 5.562-.23 7-.75 1.113-1.425 2.625-1.75 5.119 1.038 7.06 1.169 4.649.334 5.815-.169.178-1.16 1.875-1.875 7.76-.957 9.625-.125 1.81.52 2.625 3 7.44 5.163-1.125 13.375-59.378 13.786-65.625 2.75 6.23-14.271 10.375-15.75z" enable-background="new" filter="url(#fv)" opacity=".75"/>
4430 height="376"
4431 x="548"
4432 y="205.32275"
4433 style="opacity:1;fill:none;fill-opacity:1;stroke:#f8d615;stroke-width:18;stroke-linejoin:miter;stroke-miterlimit:1;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
4434 <rect
4435 style="opacity:1;fill:none;fill-opacity:1;stroke:#f83615;stroke-width:18;stroke-linejoin:miter;stroke-miterlimit:1;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
4436 id="rect6676"
4437 width="1684"
4438 height="1292"
4439 x="56"
4440 y="53.322754" />
4441 <rect
4442 style="opacity:1;fill:url(#pattern5557);fill-opacity:1;stroke:#f815bb;stroke-width:13.34657478;stroke-linejoin:miter;stroke-miterlimit:1;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
4443 id="rect6731"
4444 width="522.56604"
4445 height="1182.4679"
4446 x="3493.3721"
4447 y="87.178711" />
4448 <g
4449 id="g7477"
4450 transform="matrix(0.53474256,0,0,1,1882.7509,3.0962157)">
4451 <rect
4452 y="99.705269"
4453 x="3039.4895"
4454 height="902.66437"
4455 width="818.51605"
4456 id="rect6979"
4457 style="opacity:1;fill:#ffffff;fill-opacity:1;stroke:#f8d615;stroke-width:18;stroke-linejoin:miter;stroke-miterlimit:1;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
4458 <g
4459 clip-path="url(#clipPath6975)"
4460 id="g4303-9"
4461 style="display:inline;enable-background:new"
4462 transform="matrix(1.8806916,0,0,2.3994874,1997.8763,-394.32602)">
4463 <path
4464 inkscape:connector-curvature="0"
4465 style="display:inline;opacity:0.5;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter11361-3);enable-background:new"
4466 d="m 304.64285,526.6479 c -10,0.35715 -18.21428,2.85714 -18.21428,2.85714 l 7.5,6.07143 10.35714,3.57143 16.07143,0.35714 22.5,-5.35714 7.85714,1.07143 20.35715,-2.14286 -10.35715,6.78572 c 5.45923,-1.02361 17.39329,3.56911 9.64286,5.35714 -1.74,0.40142 13.92857,-4.64285 13.92857,-4.64285 l 2.5,-4.64287 3.57143,-9.28571 11.42857,0 18.21428,-4.64286 3.57144,-4.99999 -16.07144,1.07142 -12.14285,2.14286 -14.64286,-5 -70.6921,16.70774 -5.37933,-5.27917 z"
4467 id="path10326-6"
4468 sodipodi:nodetypes="cccccccccsccccccccccc"
4469 transform="matrix(10.726753,0,0,10.726753,-2882.1235,-4565.4583)"
4470 inkscape:export-filename="/home/cheeseness/Documents/LCA09/mascot/tuz_new.png"
4471 inkscape:export-xdpi="142.10527"
4472 inkscape:export-ydpi="142.10527" />
4473 <g
4474 style="display:inline;opacity:1;enable-background:new"
4475 id="g7882-9"
4476 transform="matrix(0.71084,-0.1937433,0.262963,0.9648058,503.68027,136.48399)">
4477 <path
4478 inkscape:connector-curvature="0"
4479 sodipodi:nodetypes="czzzzcc"
4480 id="path7876-3"
4481 d="m 245.12255,100.05344 c 0,0 -47.12811,-31.646921 -67.21465,-35.800939 -20.03792,-4.143963 -38.4729,-3.317578 -51.93364,13.607323 -13.46074,16.924901 -12.07739,61.265196 -13.53554,86.969546 -1.45815,25.70435 2.54945,70.17701 17.6046,88.66552 15.05516,18.4885 45.88634,13.58502 49.92695,21.4137 2.21283,4.28736 65.15228,-174.85515 65.15228,-174.85515 z"
4482 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient7904-7);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
4483 <path
4484 inkscape:connector-curvature="0"
4485 sodipodi:nodetypes="czzzzzc"
4486 id="path7878-3"
4487 d="m 135.37935,82.017807 c 0,0 26.34355,1.938783 37.63307,13.903188 11.41494,12.097335 13.73457,21.331515 15.29586,37.734585 1.56337,16.42499 -0.84957,28.41812 -7.81382,36.03734 -6.96425,7.61922 -1.00429,19.58332 -25.91605,12.07107 -24.91176,-7.51225 -27.03224,-27.78298 -26.51523,-46.30475 0.51721,-18.52898 7.31617,-53.441433 7.31617,-53.441433 z"
4488 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient7906-6);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
4489 <path
4490 inkscape:connector-curvature="0"
4491 sodipodi:nodetypes="czccssc"
4492 id="path7880-8"
4493 d="m 135.648,81.927211 c 0,0 -4.64465,16.365075 0.58825,28.563099 5.48794,12.79254 27.22425,44.26007 27.22425,54.65565 l 22.65625,-5 c 2.54218,-6.96644 3.21052,-15.75206 2.1875,-26.5 -1.56129,-16.40307 -3.8663,-25.62141 -15.28125,-37.718749 -9.65488,-10.232047 -31.59311,-13.374857 -37.375,-14 z"
4494 style="display:inline;opacity:1;fill:url(#radialGradient7908-0);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
4495 </g>
4496 <path
4497 inkscape:connector-curvature="0"
4498 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4499 d="m 845.03125,1154.7776 c -4.28571,0.7143 -27.62815,3.6181 -57.85714,10 -30.22899,6.3819 -57.31395,4.9661 -135.78608,17.3296 -79.85178,12.5808 -94.06436,42.5423 -108.12225,47.0643 -14.70014,4.7286 -145.37739,-65.8225 -145.37739,-65.8225 l 4.28572,-94.2857 c 0,0 85.88551,-16.2009 112.14285,-33.5714 26.25735,-17.3705 45.58238,-49.66602 59.28572,-71.42861 13.70334,-21.76259 32.85714,-71.42858 32.85714,-71.42858 l 238.57143,262.14289 z"
4500 id="path7917-0"
4501 sodipodi:nodetypes="czzzcczzcc" />
4502 <path
4503 inkscape:connector-curvature="0"
4504 style="display:inline;overflow:visible;visibility:visible;opacity:0.5;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8888-6);enable-background:accumulate"
4505 d="m 332.34019,898.38549 -32.73181,-61.29956 -37.61734,45.10646 c 2.17675,1.31711 5.77425,-20.85603 45.6004,-64.41708 l 24.74875,80.61018 z"
4506 id="path7919-5"
4507 clip-path="url(#clipPath8658-06)"
4508 sodipodi:nodetypes="ccccc"
4509 transform="translate(276,136)" />
4510 <path
4511 inkscape:connector-curvature="0"
4512 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient6951);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8892-7);enable-background:accumulate"
4513 d="m 200.81833,863.03015 146.3711,-51.61879 243.95184,226.27414 -241.83052,140.0072 -181.01934,-87.6813 32.52692,-226.98125 z"
4514 id="path7923-6"
4515 clip-path="url(#clipPath2833-2)"
4516 sodipodi:nodetypes="cccccc"
4517 transform="translate(276,136)" />
4518 <path
4519 inkscape:connector-curvature="0"
4520 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#0f0f0f;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4521 d="m 642.88839,640.13471 c 0,0 -29.55406,40.57305 -47.85714,74.28571 -18.30309,33.71267 -58.62109,126.35694 -70.35714,171.07143 -11.7594,44.80344 -62.5,123.57145 -62.5,123.57145 l 76.07143,18.2143 c 0,0 11.80712,-12.8234 31.07142,-46.07146 19.2643,-33.24808 60.35715,-138.57143 60.35715,-138.57143 l 13.21428,-202.5 z"
4522 id="path7921-6"
4523 sodipodi:nodetypes="czzcczcc" />
4524 <path
4525 inkscape:connector-curvature="0"
4526 style="display:inline;overflow:visible;visibility:visible;opacity:0.4;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8856-2);enable-background:accumulate"
4527 d="m 430.28131,381.94122 c -7.07106,2.82843 -236.18124,32.15181 -236.18124,32.15181 l -39.63961,359.83304 90.19849,92.63961 52.3259,-114.5513 100.46804,-186.39192 32.82842,-183.68124 z"
4528 id="path7925-4"
4529 sodipodi:nodetypes="ccccccc"
4530 clip-path="url(#clipPath3665-9)"
4531 transform="translate(276,136)" />
4532 <path
4533 inkscape:connector-curvature="0"
4534 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4535 d="m 969.67051,1164.0346 c 0,0 23.25628,11.3937 36.06779,20.4761 12.6974,9.0015 29.4724,24.6491 41.6924,37.3605 12.3055,12.8002 20.1127,22.5987 41.5327,24.1608 21.4322,1.5629 53.2824,-8.7876 73.296,-24.6642 20.0135,-15.8766 45.6469,-69.2328 45.6469,-69.2328 l -127.1608,-143.0717"
4536 id="path7927-0"
4537 sodipodi:nodetypes="czzzzcc" />
4538 <path
4539 inkscape:connector-curvature="0"
4540 style="display:inline;overflow:visible;visibility:visible;opacity:0.75;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8860-3);enable-background:accumulate"
4541 d="M 331.34019,641.50471 216.17367,835.36467 260.2153,925.96265 357.79603,732.21539 331.34019,641.50471 Z"
4542 id="path7929-0"
4543 clip-path="url(#clipPath8642-9)"
4544 sodipodi:nodetypes="ccccc"
4545 transform="translate(276,136)" />
4546 <g
4547 style="display:inline;opacity:1;enable-background:new"
4548 id="g7931-4"
4549 transform="matrix(0.9934486,0.1142802,-0.1142802,0.9934486,-9.24324,588.09054)"
4550 inkscape:transform-center-x="-347.89063"
4551 inkscape:transform-center-y="-28.255779">
4552 <path
4553 inkscape:connector-curvature="0"
4554 style="display:inline;opacity:1;fill:#bcb786;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4555 d="m 1049.205,-282.26672 -0.09,0.008 c -1.3874,0.88445 -6.6033,1.6072 -6.629,9.52344 -0.024,7.42525 15.0129,17.09146 17.1563,18.09375 1.7302,0.80909 3.5916,1.40876 5.4063,1.71875 l 1.4374,0.21875 c 1.9197,0.21194 3.72,0.15141 5.1563,-0.0937 3.1191,-0.5324 5.1116,-0.92861 7.0937,-1.3125 1.9821,-0.38387 2.4743,-1.03965 3.5626,-1.28125 1.1287,-0.25066 2.2702,0.11629 6.25,-0.875 3.9795,-0.99128 5.4294,-1.4193 6.125,-1.78125 0.7222,-0.37601 1.7617,-0.87058 2.375,-1.53125 1.9629,-0.012 3.7937,-0.29105 5.2187,-0.84375 2.9512,-1.14461 4.8732,-1.86942 6.6875,-2.75 1.4557,-0.70653 2.3191,-1.70203 2.5312,-2 0.2123,-0.29796 0.099,-0.72855 0.125,-0.75 0.043,-0.0352 0.3405,-0.094 0.5,-0.4375 0.859,-1.84708 2.3232,-5.62764 2.4376,-6.3125 0.1137,-0.68215 0.168,-1.35277 0.2187,-1.75 0.029,-0.22951 -0.1471,-0.8789 -0.125,-0.9375 0.031,-0.082 0.2883,-0.25057 0.3437,-0.5 0.2663,-1.19832 0.089,-2.20736 -0.125,-3.625 -0.2139,-1.41764 -0.9716,-4.61463 -1.625,-5.46875 -0.4194,-0.54857 -0.7993,-0.7925 -1.1562,-0.90625 -0.067,-0.0173 -0.1239,-0.0467 -0.1875,-0.0625 -0.021,-0.004 -0.042,0.003 -0.062,0 -0.3116,-0.0755 -0.6085,-0.15867 -1.1562,-0.21875 -0.9855,-0.10812 -2.4247,-0.2594 -3.9688,-0.25 -0.5147,0.003 -1.0371,0.0476 -1.5625,0.0937 -3.5589,0.31228 -9.0098,0.99108 -10.2187,1.625 -1.6331,-0.33402 -3.9482,-0.61223 -5.9376,-0.46875 -3.064,0.22097 -4.9677,0.34219 -6.9062,0.46875 -1.9384,0.12655 -1.6861,0.38864 -2.9062,0.46875 -1.3191,0.0866 -1.7869,-0.22325 -5.5626,0.0937 -3.5457,0.29772 -8.9806,0.99317 -10.2187,1.625 -1.6334,-0.33451 -3.9459,-0.61239 -5.9375,-0.46875 -3.0642,0.22098 -4.9678,0.37344 -6.9062,0.5 -0.6592,0.043 -1.0424,0.12393 -1.3438,0.1875 z"
4556 id="path7933-6" />
4557 <g
4558 clip-path="url(#clipPath7616-1)"
4559 style="display:inline;filter:url(#filter7610-9);enable-background:new"
4560 id="g7935-2"
4561 transform="matrix(0.9975712,-0.06965428,0.06965428,0.9975712,872.72062,140.02502)">
4562 <path
4563 inkscape:connector-curvature="0"
4564 sodipodi:nodetypes="ccssscsssscscsscsssccscssccsscssscc"
4565 id="path7937-6"
4566 d="m 229.94262,-409.12268 c -3.55781,0.05 -9.0242,0.36009 -10.30334,0.90414 -1.60609,-0.44747 -3.90316,-0.88131 -5.89995,-0.87674 -3.07199,0.007 -4.96469,0.009 -6.90727,0 -0.66047,-0.003 -1.04759,0.0672 -1.35267,0.10959 0,0 0,1.09593 0,1.09593 0.11972,-0.17947 0.39252,-0.69046 0.94975,-0.76715 0.74758,-0.10289 5.16928,-0.15123 7.31019,-0.1096 1.7746,0.0345 4.45523,0.27427 6.38921,0.95895 0.3214,0.11378 0.61925,0.27378 0.89219,0.41097 1.96342,0.98693 7.94336,4.30154 7.94336,4.30154 0,0 -6.63275,-3.94768 -7.48287,-4.43853 -0.20331,-0.11739 -0.57464,-0.25769 -1.03609,-0.41098 1.22063,-0.44779 5.07597,-0.61971 7.82823,-0.71235 3.0245,-0.10182 3.34776,-0.0896 5.41069,0.19179 2.12931,0.29043 3.33851,0.60276 3.33851,0.60276 -1e-5,0 -0.0784,-0.64118 1.03609,-0.79455 0.74757,-0.10289 5.16929,-0.15123 7.31019,-0.1096 2.0695,0.0403 5.36605,0.40716 7.2814,1.36992 1.00332,0.50433 3.03564,1.56863 4.79535,2.53571 l 0.0956,-0.0194 c 0,0 -3.58034,-2.16242 -4.43047,-2.65327 -0.20331,-0.11739 -0.57463,-0.25769 -1.03609,-0.41098 1.22062,-0.44779 5.04719,-0.61971 7.79945,-0.71235 3.0245,-0.10182 3.34775,-0.0896 5.41069,0.19179 1.95316,0.2664 3.01292,0.53006 3.19461,0.57536 0,0 -0.0271,-0.31146 -0.0271,-0.31146 -0.40903,-0.13645 -0.71424,-0.23335 -1.40038,-0.35748 -1.30081,-0.23533 -3.39912,-0.60156 -5.50857,-0.56398 -3.57195,0.0636 -9.05328,0.35596 -10.30334,0.90414 -1.60583,-0.44695 -3.87662,-0.8813 -5.87117,-0.87674 -3.07199,0.007 -4.99348,0.009 -6.93605,0 -1.94256,-0.009 -1.71268,0.27907 -2.93558,0.27398 -1.32191,-0.005 -1.76612,-0.35463 -5.55459,-0.30138 0,0 0,0 0,0"
4567 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
4568 <path
4569 inkscape:connector-curvature="0"
4570 id="path7939-7"
4571 d="m 206.1989,-407.47878 c 1.92021,0.81706 4.57715,2.19283 6.15897,3.39739 1.58184,1.20456 2.90757,1.77368 5.55459,3.91795 0.88557,0.71738 1.74865,1.34985 2.59193,1.92174 l 0.54057,-0.19011 c -0.71323,-0.48339 -1.46776,-1.02031 -2.26909,-1.62203 -2.82223,-2.11921 -3.62655,-2.80973 -6.01507,-4.27414 -2.38854,-1.4644 -4.09948,-2.36576 -6.5619,-3.1508 0,0 0,0 0,0"
4572 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4573 sodipodi:nodetypes="cssccsscc" />
4574 <path
4575 inkscape:connector-curvature="0"
4576 id="path7941-5"
4577 d="m 237.79963,-407.47878 c 1.92021,0.81706 4.60594,2.19283 6.18775,3.39739 0.81307,0.61916 1.55849,1.07042 2.45046,1.65401 l 0.649,-0.11666 c -0.79831,-0.57637 -1.57177,-1.09435 -2.69653,-1.78394 -2.38854,-1.4644 -4.12826,-2.36576 -6.59068,-3.1508 0,0 0,0 0,0"
4578 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4579 sodipodi:nodetypes="csccscc" />
4580 </g>
4581 <g
4582 clip-path="url(#clipPath7606-1)"
4583 id="g7943-6">
4584 <path
4585 inkscape:connector-curvature="0"
4586 style="display:inline;opacity:0.75;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7578-4);enable-background:new"
4587 d="m 1056.25,-278.80481 c 4.1446,-1.47877 10,3.125 10,3.125 0.899,0.28092 2.7251,-0.89447 2.6243,-1.68614 0,0 -1.5503,-1.86062 -0.3743,-2.93886 1.176,-1.07824 5.296,1.50738 7.5,1.625 2.204,0.11762 5.5621,-0.22941 7,-0.75 1.4379,-0.52059 1.1129,-1.42459 2.625,-1.75 1.5121,-0.32541 5.1189,1.03754 7.0605,1.16883 1.9416,0.13129 4.6481,0.33427 5.8145,-0.16883 1.1664,-0.5031 0.1782,-1.15921 1.875,-1.875 1.6968,-0.71579 7.7602,-0.95662 9.625,-0.125 1.8648,0.83162 1.8099,0.5192 2.625,3 0.8151,2.4808 7.4398,5.16285 -1.125,13.375 -8.5648,8.21215 -59.3779,13.78594 -65.625,2.75 -6.2471,-11.03594 6.2304,-14.27123 10.375,-15.75 z"
4588 id="path7945-9"
4589 sodipodi:nodetypes="czzzzzzzzzzzzzz" />
4590 <path
4591 inkscape:connector-curvature="0"
4592 style="display:inline;opacity:0.75;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7594-8);enable-background:new"
4593 d="m 1058.5,-275.42981 c 4.1446,-1.47877 10,3.125 10,3.125 0.899,0.28092 2.7251,-0.89447 2.6243,-1.68614 0,0 -1.5503,-1.86062 -0.3743,-2.93886 1.176,-1.07824 5.296,1.50738 7.5,1.625 2.204,0.11762 5.5621,-0.22941 7,-0.75 1.4379,-0.52059 1.1129,-1.42459 2.625,-1.75 1.5121,-0.32541 5.1189,1.03754 7.0605,1.16883 1.9416,0.13129 4.6481,0.33427 5.8145,-0.16883 1.1664,-0.5031 0.1782,-1.15921 1.875,-1.875 1.6968,-0.71579 7.7602,-0.95662 9.625,-0.125 1.8648,0.83162 1.8099,0.5192 2.625,3 0.8151,2.4808 7.4398,5.16285 -1.125,13.375 -8.5648,8.21215 -59.3779,13.78594 -65.625,2.75 -6.2471,-11.03594 6.2304,-14.27123 10.375,-15.75 z"
4594 id="path7947-8"
4595 sodipodi:nodetypes="czzzzzzzzzzzzzz" />
4596 </g>
4597 </g>
4598 <path
4599 inkscape:connector-curvature="0"
4600 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#101414;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4601 d="m 628.24553,347.99185 c -3.80443,-25.26423 -16.80972,-50.63802 -17.1568,-75.52523 -0.18626,-13.35552 3.27285,-26.57091 13.75553,-39.55405 36.34702,-65.29583 116.94091,-84.69468 185.93466,-91.46542 86.92239,-11.0168 184.91267,17.94007 233.37138,95.40128 54.124,75.7333 56.6747,172.53912 80.612,259.52795 29.4378,127.1276 54.7791,256.21414 60.3922,386.85035 -3.0634,78.18185 -8.4263,165.18417 -60.5032,228.13417 -48.0265,50.3574 -122.7864,50.053 -187.06985,59.0023 -90.55539,4.655 -184.35153,-16.1458 -261.7839,-64.1982 -64.77564,-37.94 -95.73019,-113.47867 -97.2794,-186.01962 -8.38917,-79.87516 26.39152,-153.80851 51.6204,-227.15961 7.47061,-82.76107 9.41286,-166.24775 9.65334,-249.38484 -0.83682,-32.19544 -7.08953,-63.81733 -11.54636,-95.60908 z"
4602 id="path7949-7"
4603 sodipodi:nodetypes="cscccccccccccc" />
4604 <path
4605 inkscape:connector-curvature="0"
4606 style="display:inline;overflow:visible;visibility:visible;opacity:0.25;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8940-3);enable-background:accumulate"
4607 d="m 311.83409,415.43155 9.8995,121.62237 -60.10408,136.47161 15.55635,174.65537 c 15.61326,61.8792 32.18545,98.66905 74.37615,117.05383 4.31911,-36.23998 -38.61152,-142.95988 -39.24264,-189.11984 -0.63145,-46.18445 10.83034,-108.60786 30.67767,-158.29647 20.04835,-50.19188 36.89674,-44.84642 42.12489,-92.59293 5.22815,-47.74651 -17.4264,-149.39192 -17.4264,-149.39192 l -55.86144,39.59798 z"
4608 id="path7951-2"
4609 sodipodi:nodetypes="ccccczzzcc"
4610 clip-path="url(#clipPath8616-5)"
4611 transform="translate(276,136)" />
4612 <path
4613 inkscape:connector-curvature="0"
4614 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient6953);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4615 d="m 1010.0312,655.49186 c 0,0 16.7552,37.01806 28.7015,53.95395 11.9462,16.93589 52.7271,56.04605 52.7271,56.04605 l 52.5972,-127.58975"
4616 id="path7953-8"
4617 sodipodi:nodetypes="czcc" />
4618 <path
4619 inkscape:connector-curvature="0"
4620 style="display:inline;overflow:visible;visibility:visible;opacity:0.07999998;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8822-2);enable-background:accumulate"
4621 d="m 730.31998,536.56864 c 0,8.48528 42.54774,58.46803 42.54774,58.46803 l 12.60659,-28.76954 -55.15433,-29.69849 z"
4622 id="path7955-2"
4623 sodipodi:nodetypes="cccc"
4624 clip-path="url(#clipPath8209-6)"
4625 transform="translate(276,136)" />
4626 <g
4627 transform="translate(450.03125,73.843964)"
4628 style="display:inline;opacity:1;enable-background:new"
4629 id="g7957-9"
4630 clip-path="url(#clipPath3998-6)">
4631 <g
4632 transform="translate(-174.03125,62.156036)"
4633 style="filter:url(#filter3677-5)"
4634 id="g7959-9">
4635 <g
4636 id="g7961-6"
4637 style="filter:url(#filter3785-4)">
4638 <path
4639 inkscape:connector-curvature="0"
4640 sodipodi:nodetypes="czzzzzzzzzz"
4641 id="path7963-0"
4642 d="m 425.88244,476.99186 c 10.80543,-1.47866 24.74401,3.35451 44.64286,3.21428 19.89885,-0.14023 57.45322,-16.91122 82.14285,-17.14286 24.68963,-0.23164 62.7517,12.28406 79.28572,15 16.53402,2.71594 22.84832,-0.15852 27.49999,7.85715 4.65167,8.01567 1.92671,10.74724 -10.35714,20.71429 -12.28385,9.96705 -40.78968,12.63632 -66.07143,12.85714 -25.28234,0.22082 -70.38129,7.07852 -95.35714,3.92856 -24.97585,-3.14996 -56.93756,-7.82267 -68.92857,-17.85714 -11.99101,-10.03447 -19.85084,-16.73182 -17.5,-23.92857 2.35084,-7.19675 13.83743,-3.16419 24.64286,-4.64285 z"
4643 style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
4644 <rect
4645 y="412.60312"
4646 x="343.6539"
4647 height="181.01935"
4648 width="381.83765"
4649 id="rect7965-2"
4650 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
4651 </g>
4652 <g
4653 id="g7967-7"
4654 style="filter:url(#filter3785-4)">
4655 <path
4656 inkscape:connector-curvature="0"
4657 sodipodi:nodetypes="czzzcc"
4658 id="path7969-6"
4659 d="m 687.14286,452.36218 c -10.46169,9.71443 -86.9796,19.00514 -100.71429,29.28572 -13.73469,10.28058 -14.75252,12.88826 -12.14286,20 2.60966,7.11174 6.54527,9.40572 25.71429,8.57142 19.16902,-0.8343 98.57143,-27.62172 98.57143,-21.42857 l -11.42857,-36.42857 z"
4660 style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4661 transform="translate(174.03125,-62.156036)" />
4662 <rect
4663 y="344.82138"
4664 x="702.86414"
4665 height="162.63455"
4666 width="207.8894"
4667 id="rect7971-1"
4668 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
4669 </g>
4670 </g>
4671 <g
4672 transform="translate(-174.03125,62.156036)"
4673 style="display:inline;opacity:0.18000004;enable-background:new"
4674 id="g7973-3">
4675 <g
4676 id="g7975-2"
4677 style="filter:url(#filter3785-4)">
4678 <path
4679 inkscape:connector-curvature="0"
4680 sodipodi:nodetypes="czzzzzzzzzz"
4681 id="path7977-1"
4682 d="m 425.88244,476.99186 c 10.80543,-1.47866 24.74401,3.35451 44.64286,3.21428 19.89885,-0.14023 57.45322,-16.91122 82.14285,-17.14286 24.68963,-0.23164 62.7517,12.28406 79.28572,15 16.53402,2.71594 22.84832,-0.15852 27.49999,7.85715 4.65167,8.01567 1.92671,10.74724 -10.35714,20.71429 -12.28385,9.96705 -40.78968,12.63632 -66.07143,12.85714 -25.28234,0.22082 -70.38129,7.07852 -95.35714,3.92856 -24.97585,-3.14996 -56.93756,-7.82267 -68.92857,-17.85714 -11.99101,-10.03447 -19.85084,-16.73182 -17.5,-23.92857 2.35084,-7.19675 13.83743,-3.16419 24.64286,-4.64285 z"
4683 style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
4684 <rect
4685 y="412.60312"
4686 x="343.6539"
4687 height="181.01935"
4688 width="381.83765"
4689 id="rect7979-5"
4690 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
4691 </g>
4692 <g
4693 id="g7981-9"
4694 style="filter:url(#filter3785-4)">
4695 <path
4696 inkscape:connector-curvature="0"
4697 sodipodi:nodetypes="czzzcc"
4698 id="path7983-9"
4699 d="m 687.14286,452.36218 c -10.46169,9.71443 -86.9796,19.00514 -100.71429,29.28572 -13.73469,10.28058 -14.75252,12.88826 -12.14286,20 2.60966,7.11174 6.54527,9.40572 25.71429,8.57142 19.16902,-0.8343 98.57143,-27.62172 98.57143,-21.42857 l -11.42857,-36.42857 z"
4700 style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4701 transform="translate(174.03125,-62.156036)" />
4702 <rect
4703 y="344.82138"
4704 x="702.86414"
4705 height="162.63455"
4706 width="207.8894"
4707 id="rect7985-1"
4708 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
4709 </g>
4710 </g>
4711 </g>
4712 <path
4713 inkscape:connector-curvature="0"
4714 style="display:inline;overflow:visible;visibility:visible;opacity:0.75;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8802-7);enable-background:accumulate"
4715 d="M 582.65599,-7.4183011 695.79307,78.848726 804.68752,337.64981 842.87128,545.5392 963.07944,637.46308 c 0,0 -12.72793,-287.08535 -19.799,-313.95541 C 936.20938,296.63761 793.37381,-69.643698 793.37381,-69.643698 L 582.65599,-7.4183011 Z"
4716 id="path7987-4"
4717 clip-path="url(#clipPath8604-69)"
4718 sodipodi:nodetypes="cccccscc"
4719 transform="translate(276,136)" />
4720 <path
4721 inkscape:connector-curvature="0"
4722 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient6955);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4723 d="m 964.13839,239.599 c 0,0 8.67732,10.89662 24.10715,11.96428 15.42986,1.06766 49.72166,-39.95267 70.17856,-52.14285 20.4793,-12.20353 47.0464,-26.60225 63.9286,-20.35714 16.8821,6.2451 22.1578,26.43609 27.8571,48.03571 5.6994,21.59961 6.7186,61.81389 -2.6785,92.85715 -9.3972,31.04325 -50.5033,73.10375 -65.3572,103.39285 -14.8539,30.2891 -11.6071,39.82143 -11.6071,39.82143"
4724 id="path7989-9"
4725 sodipodi:nodetypes="czzzzzzc" />
4726 <path
4727 inkscape:connector-curvature="0"
4728 style="display:inline;opacity:1;fill:url(#radialGradient3315-5);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4729 d="m 1124.4955,207.63471 c -15.8928,-0.89286 -49.7188,12.10583 -66.0714,24.28572 -16.4386,12.2439 -29.2209,24.1144 -29.2857,52.14285 -0.065,28.20604 13.1191,39.07641 29.1071,46.96429 15.988,7.88789 33.6862,7.11928 51.9643,-11.78571 18.2782,-18.905 14.2857,-111.60715 14.2857,-111.60715 z"
4730 id="path7991-1"
4731 sodipodi:nodetypes="czzzzc" />
4732 <ellipse
4733 ry="73.928574"
4734 rx="86.428574"
4735 cy="237.00504"
4736 cx="385"
4737 style="display:inline;overflow:visible;visibility:visible;opacity:0.75;fill:url(#radialGradient3543-4);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter4120-7);enable-background:accumulate"
4738 id="path7993-0"
4739 transform="matrix(0.9434749,-0.1239943,0.1440089,1.0957669,451.94827,134.5988)"
4740 clip-path="url(#clipPath4100-3)" />
4741 <path
4742 inkscape:connector-curvature="0"
4743 transform="translate(450.03125,73.843964)"
4744 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient3915-6);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4745 d="m 527.60588,407.44884 c 0,0 -122.04144,38.40348 -187.51434,9.63181 -65.47289,-28.77166 -74.37725,-124.71847 -74.37725,-124.71847 0,0 73.38158,-80.50393 129.92078,-83.61476 55.82705,-3.07164 90.57386,20.14332 114.87001,65.85171 24.352,45.81348 17.1008,132.84971 17.1008,132.84971 z"
4746 id="path7995-7"
4747 sodipodi:nodetypes="csczzc"
4748 mask="url(#mask3684-3)" />
4749 <path
4750 inkscape:connector-curvature="0"
4751 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#linearGradient6957);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4752 d="m 772.17411,393.349 c 0,0 36.21754,-27.38247 51.60714,-35.89286 15.17734,-8.39301 25.71428,-11.60714 35.89285,-11.60714 l -15.53571,66.96428"
4753 id="path7997-5"
4754 sodipodi:nodetypes="czcc" />
4755 <circle
4756 r="36.25"
4757 cy="306.64789"
4758 cx="409.28571"
4759 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient3933-8);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4760 id="path7999-8"
4761 transform="translate(449.49554,74.915393)" />
4762 <path
4763 inkscape:connector-curvature="0"
4764 style="display:inline;overflow:visible;visibility:visible;opacity:0.3;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8806-6);enable-background:accumulate"
4765 d="m 311.83409,415.43155 9.8995,121.62237 -60.10408,136.47161 15.55635,174.65537 c 15.61326,61.8792 32.18545,98.66905 74.37615,117.05383 4.31911,-36.23998 8.68161,-72.36764 -31.24264,-223.11984 l 17.67767,-69.29647 72.12489,-138.59293 -42.4264,-158.39192 -55.86144,39.59798 z"
4766 id="path8001-7"
4767 sodipodi:nodetypes="cccccccccc"
4768 clip-path="url(#clipPath8616-5)"
4769 transform="translate(276,136)" />
4770 <path
4771 inkscape:connector-curvature="0"
4772 style="display:inline;overflow:visible;visibility:visible;opacity:0.5;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8826-9);enable-background:accumulate"
4773 d="m 635.21025,581.13004 c -14.14214,12.72792 39.23347,34.58015 76.36753,24.04163 37.13406,-10.53852 104.64487,-35.56437 103.23759,-79.19596 -1.40728,-43.63158 -76.36753,-128.69343 -76.36753,-128.69343 L 635.21025,581.13004 Z"
4774 id="path8003-0"
4775 sodipodi:nodetypes="czzcc" />
4776 <circle
4777 r="23.214285"
4778 cy="306.64789"
4779 cx="410"
4780 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient3991-0);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4781 id="path8005-4"
4782 transform="translate(449.67411,74.915393)" />
4783 <circle
4784 r="7.5"
4785 cy="303.07648"
4786 cx="414.28571"
4787 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter3981-7);enable-background:accumulate"
4788 id="path8007-8"
4789 transform="translate(451.99554,73.486821)" />
4790 <path
4791 inkscape:connector-curvature="0"
4792 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient4112-7);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4793 d="m 789.31696,478.349 c 0,0 7.02281,19.56859 -1.07143,35 -8.09424,15.43141 -42.32317,38.98822 -67.49999,50 -25.30972,11.06991 -85.473,32.96393 -101.78572,41.96428 -16.46148,9.08243 -18.21428,12.67857 -18.21428,12.67857 0,0 -7.14693,-19.06441 28.74999,-51.7857 36.17211,-32.97214 142.02712,-48.0495 159.82143,-87.85715 z"
4794 id="path8009-0"
4795 sodipodi:nodetypes="czzzczc" />
4796 <g
4797 style="display:inline;opacity:1;enable-background:new"
4798 id="g8011-4"
4799 transform="translate(780.74553,74.55825)">
4800 <path
4801 inkscape:connector-curvature="0"
4802 transform="translate(-329.81481,0)"
4803 clip-path="url(#clipPath3999-0)"
4804 sodipodi:nodetypes="czzczzzszc"
4805 id="path8013-2"
4806 d="m 179.64286,267.36218 c -22.41044,39.70292 -60.6161,115.78029 -69.28571,149.64286 -8.64721,33.7751 -8.77199,66.41654 -0.35715,86.42858 8.3602,19.88213 26.16398,35.6328 40.71428,41.42856 -0.59638,-14.37587 14.37295,-43.28583 72.85715,-72.5 58.62627,-29.28514 78.38163,-27.13086 103.57142,-47.14286 25.63006,-20.36176 8.20587,-79.64664 3.21429,-93.92857 -4.99158,-14.28193 -1.23663,-3.37974 -1.94602,-5.09301 -10.68928,-25.81592 -34.21432,-54.4303 -64.48255,-64.54984 -30.26823,-10.11954 -65.01776,-4.84837 -84.28571,5.71428 z"
4807 style="display:inline;opacity:1;fill:url(#radialGradient3585-2);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
4808 <ellipse
4809 ry="134.00607"
4810 rx="64.715881"
4811 cy="338.07648"
4812 cx="183.57143"
4813 transform="matrix(0.8823874,0.4705236,-0.4705236,0.8823874,-166.62245,2.387362)"
4814 id="path8015-9"
4815 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient4060-5);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
4816 <ellipse
4817 ry="134.00607"
4818 rx="64.715881"
4819 cy="338.07648"
4820 cx="183.57143"
4821 transform="matrix(0.8823874,0.4705236,-0.4705236,0.8823874,-162.19388,-18.755495)"
4822 id="path8017-6"
4823 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient4062-9);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
4824 <path
4825 inkscape:connector-curvature="0"
4826 transform="translate(-329.81481,3e-7)"
4827 clip-path="url(#clipPath3999-0)"
4828 sodipodi:nodetypes="czzczzzszc"
4829 id="path8019-1"
4830 d="m 179.64286,267.36218 c -22.41044,39.70292 -60.6161,115.78029 -69.28571,149.64286 -8.64721,33.7751 -8.77199,66.41654 -0.35715,86.42858 8.3602,19.88213 26.16398,35.6328 40.71428,41.42856 -0.59638,-14.37587 14.37295,-43.28583 72.85715,-72.5 58.62627,-29.28514 78.38163,-27.13086 103.57142,-47.14286 25.63006,-20.36176 8.20587,-79.64664 3.21429,-93.92857 -4.99158,-14.28193 -1.23663,-3.37974 -1.94602,-5.09301 -10.68928,-25.81592 -34.21432,-54.4303 -64.48255,-64.54984 -30.26823,-10.11954 -65.01776,-4.84837 -84.28571,5.71428 z"
4831 style="display:inline;opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient6959);stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter4079-1);enable-background:new" />
4832 </g>
4833 <circle
4834 r="19.704132"
4835 cy="398.07648"
4836 cx="310.71429"
4837 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4838 id="path8021-0"
4839 transform="translate(452.55663,72.581273)" />
4840 <circle
4841 r="19.704132"
4842 cy="398.07648"
4843 cx="310.71429"
4844 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient4056-5);fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient6961);stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter4083-9);enable-background:accumulate"
4845 id="path8023-4"
4846 transform="translate(450.55663,72.581273)" />
4847 <circle
4848 r="19.704132"
4849 cy="398.07648"
4850 cx="310.71429"
4851 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient4119-7);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4852 id="path8025-2"
4853 transform="translate(450.55663,72.581273)" />
4854 <ellipse
4855 ry="44.547726"
4856 rx="72.079735"
4857 cy="377.42877"
4858 cx="429.56738"
4859 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient4868-3);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter4002-6);enable-background:accumulate"
4860 id="path8027-2"
4861 transform="matrix(0.9969564,-0.07796167,0.07796167,0.9969564,436.61877,125.29509)"
4862 inkscape:transform-center-x="-47.231976"
4863 inkscape:transform-center-y="-3.6935079" />
4864 <ellipse
4865 ry="22.627417"
4866 rx="36.611931"
4867 cy="391.21735"
4868 cx="437.6991"
4869 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:url(#radialGradient4876-9);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:bevel;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter4010-1);enable-background:accumulate"
4870 id="path8029-2"
4871 transform="matrix(1.4357951,-0.06999104,0.06999104,1.4357951,235.18065,-63.86546)"
4872 inkscape:transform-center-x="-20.955902"
4873 inkscape:transform-center-y="-13.056625" />
4874 <g
4875 transform="translate(450.03125,73.843964)"
4876 id="g8031-0"
4877 style="display:inline;opacity:1;filter:url(#filter4053-9);enable-background:new">
4878 <circle
4879 r="3.2142856"
4880 cy="401.82648"
4881 cx="413.66071"
4882 id="path8033-5"
4883 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient6963);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
4884 <circle
4885 r="3.2142856"
4886 cy="401.82648"
4887 cx="413.66071"
4888 transform="translate(13.125009,8.1249913)"
4889 id="path8035-5"
4890 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient6965);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
4891 <circle
4892 r="3.2142856"
4893 cy="401.82648"
4894 cx="413.66071"
4895 transform="translate(32.946437,7.4999913)"
4896 id="path8037-2"
4897 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient6967);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
4898 <circle
4899 r="3.2142856"
4900 cy="401.82648"
4901 cx="413.66071"
4902 transform="translate(24.910723,-10.267866)"
4903 id="path8039-9"
4904 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient6969);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
4905 <circle
4906 r="3.2142856"
4907 cy="401.82648"
4908 cx="413.66071"
4909 transform="translate(47.589294,-0.6250087)"
4910 id="path8041-0"
4911 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:url(#linearGradient6971);stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
4912 </g>
4913 <path
4914 inkscape:connector-curvature="0"
4915 style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4916 d="m 896.20301,482.92837 c 0.98509,4.35008 4.53707,6.17948 7.38673,7.89182 4.46068,2.51292 6.52016,1.52211 9.15451,-0.75761 1.60195,-1.92117 10.68311,-4.69865 15.59423,-7.07107 4.32961,-1.45891 8.9033,-5.35873 13.38452,-8.33376 3.39514,-1.62724 5.34664,0.35464 7.82868,1.01015 2.94412,0.71661 4.41117,2.17175 6.06092,3.53554 2.39616,1.17519 -0.9279,3.14313 3.283,4.29314 1.19091,0.21794 2.41695,0.57645 3.28299,-0.50507"
4917 id="path8043-2"
4918 sodipodi:nodetypes="ccccccccc" />
4919 <path
4920 inkscape:connector-curvature="0"
4921 style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4922 d="m 910.85021,475.35223 c 2.31494,-0.032 3.17778,0.64253 5.49271,-0.82075 3.45564,-3.08113 5.40254,-3.14477 7.95495,-4.41942 3.02657,-1.31523 6.5357,8.15169 10.10153,9.84899 2.39509,-0.82142 1.28914,1.79379 1.45209,2.65165 0.0571,2.64684 2.80694,3.67806 4.35628,5.42957 3.31604,2.25549 7.37523,6.29546 11.11168,5.3033 6.44525,-2.93107 10.27922,-1.28146 16.28871,-7.38674 0.70405,-1.18134 -0.58425,-6.8946 3.09359,-7.19734 2.52399,0.25338 4.16667,0.0502 6.06092,0.56822 5.441,2.11719 7.73778,6.45 14.71034,7.95495 6.1829,0.96639 7.61264,3.79426 13.88959,5.05076"
4923 id="path8045-8"
4924 sodipodi:nodetypes="cccccccccccc" />
4925 <path
4926 inkscape:connector-curvature="0"
4927 style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4928 d="m 876.98133,483.52197 c 2.39858,-0.7938 6.10613,4.1921 8.17313,7.04568 0.59281,2.67952 1.15377,5.48645 0.75761,12.12183 0.78513,2.41754 2.68049,3.03095 4.79823,3.283 3.11745,-0.53678 5.87669,-1.3243 7.3236,-3.03046 1.8716,-1.94167 5.31253,2.39394 8.08122,4.04061 3.61009,1.91209 7.77378,1.97886 11.8693,2.27284 1.70358,-0.23064 2.3704,4.51515 3.28299,8.08123 0.38414,4.37806 -0.88544,6.89569 -1.76776,9.84898 -0.2943,2.49655 2.9885,3.52974 6.31345,4.54569 3.18244,0.74124 6.54424,1.66184 9.09137,1.76777 5.14186,0.87491 8.08874,2.69052 12.12183,4.04061 2.23914,0.81655 3.26019,2.24216 4.54569,3.53553"
4929 id="path8047-3"
4930 sodipodi:nodetypes="ccccccccccccc" />
4931 <path
4932 inkscape:connector-curvature="0"
4933 style="display:inline;opacity:0.25;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter8814-5);enable-background:new"
4934 d="m 332,187.69519 c 0,0 57.5,-25.5 57.5,-28 0,-2.5 5.5,-52 5.5,-52 0,0 91,-48.500001 91.5,-50.500001 0.5,-2 86,-62.0000004 86,-62.0000004 L 386.5,17.195189 311,123.19519 l 21,64.5 z"
4935 id="path8049-8"
4936 clip-path="url(#clipPath8514-8)"
4937 transform="translate(276,136)" />
4938 <path
4939 inkscape:connector-curvature="0"
4940 style="display:inline;overflow:visible;visibility:visible;opacity:0.25;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4941 d="m 1697.2846,722.5514 c 0,0 -115.9655,73.5391 -123.0365,77.78174 -7.0711,4.24264 -230.5169,137.17872 -230.5169,137.17872 l 4.2427,39.59798 216.3747,-100.40917 117.3797,-101.82337 15.5563,-52.3259 z"
4942 id="path8051-0" />
4943 <path
4944 inkscape:connector-curvature="0"
4945 style="display:inline;overflow:visible;visibility:visible;opacity:0.5;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8810-3);enable-background:accumulate"
4946 d="m 528.91587,556.85291 c -5.65685,-1.41421 -181.01933,74.95332 -181.01933,74.95332 l -33.94113,181.01934 51.09546,193.94823 257.2031,67.6813 c 0,0 206.47518,152.735 212.13203,148.4924 5.65686,-4.2426 168.2914,-193.7473 168.2914,-193.7473 L 842.87128,845.35248 796.20224,667.16157 528.91587,556.85291 Z"
4947 id="path8053-4"
4948 clip-path="url(#clipPath8610-9)"
4949 sodipodi:nodetypes="cccccscccc"
4950 transform="translate(276,136)" />
4951 <path
4952 inkscape:connector-curvature="0"
4953 style="display:inline;opacity:1;fill:#0c0c0c;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
4954 d="m 1097.6433,613.88997 c 0,0 22.6195,-6.50681 35.7427,-5.87273 13.1233,0.63409 30.6416,1.93862 43.7089,12.18619 13.0673,10.24756 25.0677,27.14007 34.1124,58.36965 9.0446,31.22958 1.6983,99.25201 -6.1761,143.34735 -7.8743,44.09534 -28.2651,106.11298 -45,140 -16.7348,33.88702 -49.7977,77.49517 -60.5694,89.87617 -11.3642,13.062 -56.2059,36.4262 -79.4306,42.2667 5.3034,-10.6066 48.8998,-50.5889 35,-60.7143 -14.0189,-10.2123 -45.76,45.9824 -84.2931,29.0332 21.38231,-13.1321 41.7794,-51.1861 34.0406,-66.59448 -7.84024,-15.61039 -30.70492,48.75758 -93.53553,37.01288 30.05204,-27.5267 55.40706,-70.90401 41.2627,-82.9797 -14.41516,-12.30687 -60.46175,54.2932 -60.46175,54.2932 0,0 -2.8219,-41.70123 13.7732,-68.60737 16.63935,-26.97787 79.65297,-81.61527 99.55308,-111.70342 19.9002,-30.08814 33.6126,-66.00902 42.1355,-92.51794 8.5228,-26.50892 15.8009,-77.09954 15.8009,-77.09954"
4955 id="path8055-0"
4956 sodipodi:nodetypes="czzzzzzczczczczzzc" />
4957 <path
4958 inkscape:connector-curvature="0"
4959 style="display:inline;overflow:visible;visibility:visible;opacity:0.25;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8818-1);enable-background:accumulate"
4960 d="m 770.74639,609.17881 -50.91169,97.58074 -79.90307,111.01576 34.64824,71.41778 42.42641,79.19597 72.12489,-45.25484 14.14214,-192.33305 21.2132,-138.59292 -14.14214,-90.15612 -39.59798,107.12668 z"
4961 id="path8057-9"
4962 clip-path="url(#clipPath8622-5)"
4963 sodipodi:nodetypes="cccccccccc"
4964 transform="translate(276,136)" />
4965 <path
4966 inkscape:connector-curvature="0"
4967 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter8810-3);enable-background:accumulate"
4968 d="m 295,846.19519 6.64488,-68.92285 c 0,0 90.31951,89.00457 162.35512,122.92285 72.03561,33.91828 308,62 308,62 l 154,-26 -36,162.00001 -286,26 -298,-89 -11,-189.00001 z"
4969 id="path8059-1"
4970 clip-path="url(#clipPath8906-9)"
4971 sodipodi:nodetypes="cczcccccc"
4972 transform="translate(276,136)" />
4973 <path
4974 inkscape:connector-curvature="0"
4975 transform="translate(450.03125,73.843964)"
4976 style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter3587-1);enable-background:new"
4977 d="m 405.79629,845.99023 74.95332,65.05383 2.49963,16.8804 19.40336,10.15891 6.49204,23.05109 31.70905,-8.3711 14.84924,48.08324 c 12.25652,12.7279 89.79344,-113.1097 55.86143,38.1838 l -60.81118,16.2635 -89.20292,-94.69286 -62.82503,-53.79963 7.07106,-60.81118 z"
4978 id="path8061-9"
4979 sodipodi:nodetypes="cccccccccccc"
4980 clip-path="url(#clipPath3602-4)" />
4981 <path
4982 inkscape:connector-curvature="0"
4983 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#121212;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate"
4984 d="m 1159.317,918.349 c 54.2857,-1.42857 126.035,-15.05199 170,-26.78572 44.0527,-11.75714 125.8863,-36.34724 175.357,-57.85714 49.3393,-21.45272 113.6038,-59.2816 154.2859,-92.14285 40.5081,-32.72069 52.3899,-55.81981 60.7142,-33.57143 8.3691,22.36779 -16.4069,56.32562 -37.8571,81.07143 -21.6042,24.9234 -52.7314,52.70533 -98.9287,89.28571 -46.1973,36.58038 -156.0825,101.58463 -212.8571,128.5714 -57.066,27.1254 -128.2033,58.2385 -172.1428,72.5001 -43.9395,14.2616 -131.4286,31.0714 -131.4286,31.0714 L 1159.317,918.349 Z"
4985 id="path8063-6"
4986 sodipodi:nodetypes="czzzzzzzzcc" />
4987 <path
4988 inkscape:connector-curvature="0"
4989 transform="translate(450.03125,73.843964)"
4990 style="display:inline;overflow:visible;visibility:visible;opacity:0.5;fill:url(#linearGradient6973);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter3779-4);enable-background:accumulate"
4991 d="m 1241.5965,652.95007 c 0,0 -64.7215,54.33706 -145.6639,98.99494 -82.0244,45.25484 -284.25704,93.3381 -284.25704,93.3381 0,0 -15.10137,21.05196 45.25489,28.28428 60.35626,7.23232 224.08195,-53.30069 278.60015,-96.16654 54.5182,-42.86585 120.2081,-111.72286 120.2081,-111.72286 l -14.1422,-12.72792 z"
4992 id="path8065-2"
4993 sodipodi:nodetypes="czczzcc"
4994 clip-path="url(#clipPath3992-4)" />
4995 <g
4996 transform="translate(450.03125,73.843964)"
4997 style="display:inline;opacity:1;enable-background:new"
4998 id="g8067-5"
4999 clip-path="url(#clipPath3986-7)">
5000 <g
5001 transform="translate(-174.03125,62.156036)"
5002 style="filter:url(#filter3677-5)"
5003 id="g8069-4">
5004 <g
5005 style="filter:url(#filter3785-4)"
5006 id="g8071-4">
5007 <path
5008 inkscape:connector-curvature="0"
5009 sodipodi:nodetypes="czzccccc"
5010 id="path8073-9"
5011 d="m 1094.2857,725.93361 c 0,0 -0.2961,26.16091 4.6428,37.85715 4.9389,11.69624 20.0381,26.48665 28.5715,31.42857 8.5334,4.94192 18.9286,8.57142 18.9286,8.57142 l 117.8571,-115 17.8572,-75.71428 -96.4286,38.57143 -91.4286,74.28571 z"
5012 style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
5013 transform="translate(174.03125,-62.156036)" />
5014 <rect
5015 y="486.14224"
5016 x="1197.8389"
5017 height="309.71277"
5018 width="333.75412"
5019 id="rect8075-9"
5020 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
5021 </g>
5022 </g>
5023 <g
5024 transform="translate(-174.03125,62.156036)"
5025 style="display:inline;opacity:0.18000004;enable-background:new"
5026 id="g8077-3">
5027 <g
5028 style="filter:url(#filter3785-4)"
5029 id="g8079-6">
5030 <path
5031 inkscape:connector-curvature="0"
5032 sodipodi:nodetypes="czzccccc"
5033 id="path8081-0"
5034 d="m 1094.2857,725.93361 c 0,0 -0.2961,26.16091 4.6428,37.85715 4.9389,11.69624 20.0381,26.48665 28.5715,31.42857 8.5334,4.94192 18.9286,8.57142 18.9286,8.57142 l 117.8571,-115 17.8572,-75.71428 -96.4286,38.57143 -91.4286,74.28571 z"
5035 style="display:inline;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
5036 transform="translate(174.03125,-62.156036)" />
5037 <rect
5038 y="486.14224"
5039 x="1197.8389"
5040 height="309.71277"
5041 width="333.75412"
5042 id="rect8083-5"
5043 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
5044 </g>
5045 </g>
5046 </g>
5047 <path
5048 inkscape:connector-curvature="0"
5049 transform="translate(450.03125,73.843964)"
5050 style="display:inline;overflow:visible;visibility:visible;opacity:0.83300003;fill:#050505;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:15;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;filter:url(#filter8225-7);enable-background:accumulate"
5051 d="m 1264.1875,605 c -4.4911,0.73268 -8.157,3.45509 -11.9375,6.40625 -10.0813,7.86976 -28.1695,34.42524 -48.0312,50.46875 -39.8674,32.20316 -103.996,69.97701 -152.5626,91.09375 -48.614,21.13738 -130.54122,45.81801 -174.31245,57.5 -43.39821,11.58246 -115.04403,25.13107 -168.25,26.53125 l -4.5625,0.125 -2,4.125 -92.84375,192.125 -6.5,13.4688 14.65625,-2.8438 c 0,0 87.26968,-16.6514 132.34375,-31.2812 44.7252,-14.51667 115.79086,-45.66683 173.03125,-72.87505 C 980.82199,912.46306 1090.1551,847.86412 1137.5,810.375 c 46.3608,-36.70982 77.8049,-64.71682 99.9375,-90.25 10.9011,-12.576 22.7448,-27.53144 31.0313,-42.75 8.2864,-15.21856 19.1597,-44.21808 13.6874,-58.84375 -1.2177,-3.25474 -2.5514,-6.0613 -4.5937,-8.5 -2.0423,-2.4387 -8.4747,-1.57199 -8.5625,-5.03125 -0.2098,-8.26482 -3.3155,-0.24423 -4.8125,0 z m 2.1563,15.21875 c 0.4148,0.58574 1.0311,1.55766 1.7812,3.5625 2.8968,7.74213 -1.4407,31.89875 -8.8125,45.4375 -7.3718,13.53875 -22.6384,28.92394 -33.1875,41.09375 -21.0754,24.31356 -51.9037,51.86156 -97.9375,88.3125 -45.0496,35.67159 -155.46033,101.09459 -211.40625,127.6875 -56.89173,27.04249 -128.09616,58.1184 -171.25,72.125 -36.36491,11.8031 -95.84471,23.8338 -115.71875,27.7813 L 714.09375,851.75 c 54.70691,-2.0493 123.79259,-15.21635 167.125,-26.78125 44.33422,-11.83225 126.07865,-36.33633 176.40625,-58.21875 50.112,-21.78871 112.5344,-61.16816 154.0312,-94.6875 20.6464,-16.67721 41.7449,-42.54588 49.8126,-48.84375 2.437,-1.90242 4.0806,-2.6358 4.875,-3 z"
5052 id="path8085-0"
5053 clip-path="url(#clipPath3722-3)"
5054 sodipodi:nodetypes="cssssccccccssssssssccssssssccssssc" />
5055 <g
5056 style="display:inline;opacity:1;enable-background:new"
5057 id="g8087-2"
5058 mask="url(#mask7704-9)"
5059 transform="matrix(0.9934486,0.1142802,-0.1142802,0.9934486,-9.24324,588.09054)"
5060 inkscape:transform-center-x="-185.09603"
5061 inkscape:transform-center-y="-12.859654">
5062 <path
5063 inkscape:connector-curvature="0"
5064 transform="translate(0.08004571,-0.03125)"
5065 style="display:inline;fill:#bcb786;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
5066 d="m 1111.4062,-285.9375 -3.9374,1.875 c -0.041,0.0102 -0.1,0.0205 -0.125,0.0312 -0.4188,0.21285 -0.1647,0.10058 -0.6563,0.3125 -0.4861,0.20956 -1.7376,0.58419 -4.0937,1.46875 -3.3312,1.25058 -5.8043,2.14984 -7,3.0625 -1.5362,0.0213 -3.7205,0.23331 -5.6563,0.71875 -2.9815,0.74767 -4.8552,1.17401 -6.75,1.59375 -1.8948,0.41973 -1.6755,0.64219 -2.875,0.875 -1.2966,0.25167 -1.7214,-0.009 -5.4375,0.78125 -3.4899,0.74215 -8.8948,1.93107 -10.1562,2.6875 -1.584,-0.18078 -3.8675,-0.32178 -5.8438,-0.0312 -3.0404,0.44696 -4.9162,0.67276 -6.8438,0.90625 -0.6554,0.0794 -1.041,0.20078 -1.3437,0.28125 -0.4262,0.13166 -0.6858,0.26002 -1.375,0.34375 -1.3116,0.15937 -1.7622,-0.15683 -5.5313,0.28125 -3.5539,0.41309 -9.0054,1.27282 -10.25,1.9375 -1.599,-0.29729 -3.8577,-0.53419 -5.8437,-0.34375 -3.0588,0.29332 -4.972,0.48399 -6.9063,0.65625 -1.9342,0.17227 -1.6886,0.42237 -2.9062,0.53125 -1.3162,0.1177 -1.7598,-0.16363 -5.5312,0.25 -3.5421,0.38845 -9.0079,1.20927 -10.2813,1.875 -1.5989,-0.29469 -3.8872,-0.50701 -5.875,-0.3125 -3.05829,0.29925 -4.9412,0.48024 -6.875,0.65625 -0.65749,0.0598 -1.04005,0.17856 -1.34375,0.25 -0.4277,0.11896 -0.6835,0.21807 -1.375,0.28125 -1.316,0.12026 -1.75975,-0.19488 -5.53125,0.21875 -3.55619,0.39002 -9.0056,1.23916 -10.25,1.90625 -1.59869,-0.29418 -3.85985,-0.52372 -5.84375,-0.3125 -3.0557,0.32533 -4.97405,0.52624 -6.90625,0.71875 -1.93219,0.19251 -1.68975,0.44088 -2.90625,0.5625 -1.31488,0.13147 -1.76305,-0.16454 -5.53125,0.28125 -3.53889,0.41866 -8.9777,1.29217 -10.25,1.96875 -1.59759,-0.28104 -3.85995,-0.42043 -5.84375,-0.1875 -3.05198,0.35837 -4.945,0.56786 -6.875,0.78125 -0.65618,0.0726 -1.04065,0.17269 -1.34375,0.25 -0.42679,0.12723 -0.6849,0.2672 -1.375,0.34375 -1.31339,0.14569 -1.76735,-0.17402 -5.53125,0.3125 -3.54888,0.45876 -8.97865,1.41902 -10.21875,2.125 -1.59309,-0.24424 -3.8338,-0.38135 -5.8125,-0.125 -3.04759,0.39482 -4.9507,0.64845 -6.875,0.90625 -1.92429,0.25779 -1.7261,0.49353 -2.9375,0.65625 -1.30949,0.1759 -1.7472,-0.10438 -5.5,0.46875 -3.52429,0.53824 -8.9232,1.69917 -10.1875,2.4375 -1.58749,-0.20354 -3.8455,-0.25473 -5.8125,0.0937 -3.02619,0.53612 -4.8989,0.86169 -6.8125,1.1875 -0.65059,0.11077 -1.0137,0.27094 -1.3125,0.375 -0.42069,0.16488 -0.66345,0.3313 -1.34375,0.46875 -1.2947,0.26159 -1.7271,-0.006 -5.4375,0.8125 -3.49848,0.77195 -8.8459,2.38293 -10.0625,3.21875 -1.5629,-0.0774 -3.7575,0.0853 -5.6875,0.59375 -2.97238,0.78313 -4.8177,1.23209 -6.6875,1.75 -1.87,0.5179 -1.66665,0.76728 -2.84375,1.09375 -1.27249,0.3529 -1.69705,0.10709 -5.34375,1.1875 -3.42468,1.01463 -8.6494,2.93317 -9.875,3.84375 -1.53878,0.0127 -3.7198,0.27222 -5.625,0.875 -2.93098,0.92734 -4.75035,1.45842 -6.59375,2.0625 -0.62679,0.20538 -0.99165,0.39258 -1.28125,0.53125 -0.40758,0.21361 -0.6533,0.40875 -1.3125,0.625 -1.2545,0.41154 -1.68615,0.18904 -5.28125,1.4375 -3.38989,1.17717 -8.59495,3.2137 -9.78125,4.15625 -1.52388,0.0597 -3.65005,0.39487 -5.53125,1.0625 -2.89739,1.02829 -4.69905,1.67548 -6.53125,2.3125 -1.8322,0.63701 -1.62785,0.84854 -2.78125,1.25 -1.24679,0.43396 -1.66355,0.19972 -5.21875,1.5625 -3.3387,1.2798 -8.4871,3.48255 -9.6875,4.46875 -1.50718,0.10769 -3.6357,0.4988 -5.5,1.21875 -2.86818,1.1076 -4.6239,1.78156 -6.4375,2.46875 -0.6167,0.23363 -0.99645,0.44203 -1.28125,0.59375 10e-6,0 0,0.0295 0,0.0312 l -8,3.1875 -12.4759,3.49189 7.92966,19.27772 c -0.59163,1.97357 12.54624,-4.73836 12.54624,-4.73836 0.22641,-0.14468 0.44895,-0.27261 0.71875,-0.375 1.08052,-0.40998 2.1716,-0.21577 6,-1.6875 3.82852,-1.47174 5.22405,-2.00498 5.90625,-2.40625 0.67961,-0.39978 1.61175,-0.87937 2.21875,-1.53125 1.82692,-0.13775 3.5708,-0.49323 4.9375,-1 2.968,-1.10052 4.87535,-1.80619 6.78125,-2.46875 1.90581,-0.66254 2.35415,-1.41487 3.40625,-1.78125 1.09162,-0.38011 2.1951,-0.16538 6.0625,-1.53125 3.8674,-1.36586 5.28315,-1.82708 5.96875,-2.21875 0.70111,-0.40052 1.7008,-0.93298 2.3125,-1.59375 1.97081,-0.0547 3.81695,-0.38463 5.28125,-0.875 3.00152,-1.00508 4.92615,-1.62171 6.84375,-2.25 1.53861,-0.5041 2.17415,-1.04677 2.90625,-1.4375 0.23022,-0.13431 0.4759,-0.25373 0.75,-0.34375 1.09832,-0.36048 2.18145,-0.0814 6.09375,-1.3125 3.91231,-1.23113 5.366,-1.67295 6.0625,-2.03125 0.69391,-0.35697 1.6301,-0.79261 2.25,-1.40625 1.86521,-0.0227 3.63585,-0.26683 5.03125,-0.6875 3.0304,-0.91354 4.9924,-1.4301 6.9375,-1.96875 1.94512,-0.53864 2.4262,-1.26452 3.5,-1.5625 1.11402,-0.30915 2.22,0.007 6.1875,-1.03125 3.9675,-1.03863 5.4175,-1.43273 6.125,-1.75 0.7348,-0.32959 1.8139,-0.75372 2.4375,-1.375 1.99782,0.116 3.85745,-0.0201 5.34375,-0.375 3.07811,-0.735 5.0834,-1.10094 7.0625,-1.5 1.58791,-0.32018 2.2443,-0.79055 3,-1.09375 0.23751,-0.1068 0.4669,-0.19276 0.75,-0.25 1.13341,-0.22919 2.30465,0.20893 6.34375,-0.5 4.03942,-0.70893 5.50025,-0.92709 6.21875,-1.1875 0.71581,-0.25944 1.70435,-0.56724 2.34375,-1.09375 1.9242,0.23949 3.7479,0.22453 5.1875,0 3.12642,-0.48762 5.15455,-0.70067 7.15625,-0.96875 2.00171,-0.26807 2.48875,-0.94514 3.59375,-1.09375 1.14642,-0.15418 2.27585,0.30157 6.34375,-0.21875 4.06781,-0.52032 5.56025,-0.69573 6.28125,-0.9375 0.73712,-0.24714 1.7981,-0.58623 2.4375,-1.125 2.05,0.33553 3.9737,0.39796 5.5,0.21875 3.1422,-0.36896 5.18,-0.55936 7.1875,-0.78125 1.61082,-0.17802 2.26465,-0.6082 3.03125,-0.84375 0.24091,-0.0855 0.49405,-0.1556 0.78125,-0.1875 1.1497,-0.12772 2.3013,0.34665 6.375,-0.125 4.0737,-0.47165 5.55905,-0.6106 6.28125,-0.84375 0.71941,-0.23227 1.70025,-0.47346 2.34375,-0.96875 1.9363,0.33346 3.77005,0.40424 5.21875,0.25 3.14601,-0.33495 5.1775,-0.51859 7.1875,-0.71875 2.00991,-0.20014 2.48415,-0.82639 3.59375,-0.9375 1.1511,-0.11528 2.2965,0.36506 6.375,-0.0625 4.0785,-0.42756 5.5889,-0.56209 6.3125,-0.78125 0.73922,-0.22386 1.7956,-0.51325 2.4375,-1.03125 2.057,0.39867 4.00185,0.4934 5.53125,0.34375 3.14871,-0.3081 5.1758,-0.47325 7.1875,-0.65625 1.61401,-0.14682 2.26305,-0.56055 3.03125,-0.78125 0.2413,-0.0809 0.49355,-0.12991 0.78125,-0.15625 1.15211,-0.10545 2.2929,0.39275 6.375,0 4.08211,-0.39275 5.5889,-0.53084 6.3125,-0.75 0.7209,-0.21833 1.6996,-0.4477 2.3437,-0.9375 1.9381,0.34999 3.7689,0.45438 5.2188,0.3125 3.1487,-0.3081 5.1758,-0.47325 7.1875,-0.65625 2.0116,-0.18299 2.5142,-0.83802 3.625,-0.9375 1.1523,-0.10323 2.2922,0.38483 6.375,0 4.0829,-0.38482 5.5887,-0.501 6.3125,-0.71875 0.7393,-0.22243 1.7956,-0.51449 2.4375,-1.03125 2.0574,0.40177 4.0029,0.50333 5.5313,0.34375 3.1465,-0.32852 5.177,-0.5227 7.1874,-0.71875 1.613,-0.15729 2.2657,-0.63148 3.0313,-0.875 0.2407,-0.088 0.4632,-0.12137 0.75,-0.15625 1.1483,-0.1397 2.3167,0.33991 6.375,-0.25 4.0583,-0.58992 5.5618,-0.77714 6.2813,-1.03125 0.7166,-0.25316 1.6746,-0.55807 2.3124,-1.09375 1.9197,0.21194 3.72,0.15141 5.1563,-0.0937 3.1191,-0.5324 5.1116,-0.92861 7.0937,-1.3125 1.9821,-0.38387 2.4743,-1.03965 3.5626,-1.28125 1.1287,-0.25066 2.2702,0.11629 6.25,-0.875 3.9795,-0.99127 5.4295,-1.4193 6.125,-1.78125 0.7222,-0.376 1.7617,-0.87058 2.375,-1.53125 1.9629,-0.012 3.7937,-0.29105 5.2187,-0.84375 2.9512,-1.1446 4.8732,-1.86942 6.6875,-2.75 1.4557,-0.70652 2.3191,-1.70203 2.5312,-2 0.2123,-0.29795 0.099,-0.72855 0.125,-0.75 0.043,-0.0352 0.3404,-0.094 0.5,-0.4375 0.859,-1.84707 2.3232,-5.62764 2.4376,-6.3125 0.1137,-0.68214 0.168,-1.35277 0.2187,-1.75 0.029,-0.2295 -0.1471,-0.8789 -0.125,-0.9375 0.031,-0.082 0.2883,-0.25057 0.3437,-0.5 0.2663,-1.19831 0.089,-2.20736 -0.125,-3.625 -0.2139,-1.41763 -0.9716,-4.61463 -1.625,-5.46875 -0.6589,-0.86172 -1.2248,-1.01051 -1.75,-1 z"
5067 id="path8089-9"
5068 sodipodi:nodetypes="ccssscsssscssssscsssscssssscsssscssssscsssscssssscsssscssssscsssscssscccccssscssssscsssssscssssscsssssscssssscsssssscssssscsssssscssssscsssssscssssscsssssssssssc" />
5069 <g
5070 clip-path="url(#clipPath7421-7)"
5071 id="g8091-4">
5072 <path
5073 inkscape:connector-curvature="0"
5074 id="path8093-3"
5075 d="m 1107.409,-284.04961 c -0.4187,0.21283 -0.1556,0.0939 -0.6472,0.30581 -0.4861,0.20954 -1.7234,0.57439 -4.0796,1.45895 -3.3311,1.25057 -5.8302,2.15344 -7.0259,3.0661 -1.5361,0.0213 -3.7205,0.23331 -5.6563,0.71875 -2.9815,0.74766 -4.8552,1.17401 -6.75,1.59375 -1.8948,0.41972 -1.6755,0.64219 -2.875,0.875 -1.2966,0.25166 -1.7214,-0.009 -5.4375,0.78125 -3.4899,0.74214 -8.8948,1.93107 -10.1562,2.6875 -1.5839,-0.18079 -3.8675,-0.32178 -5.8438,-0.0312 -3.0404,0.44695 -4.9162,0.67276 -6.8437,0.90625 -0.6554,0.0794 -1.0411,0.20078 -1.3438,0.28125 -0.4262,0.13165 -0.6858,0.26002 -1.375,0.34375 -1.3116,0.15936 -1.7622,-0.15683 -5.5312,0.28125 -3.5539,0.41308 -9.0054,1.27282 -10.25,1.9375 -1.599,-0.2973 -3.8578,-0.53419 -5.8438,-0.34375 -3.0588,0.29331 -4.972,0.48399 -6.9062,0.65625 -1.9343,0.17226 -1.6887,0.42237 -2.9063,0.53125 -1.3162,0.11769 -1.7598,-0.16363 -5.5312,0.25 -3.5419,0.38844 -9.0079,1.20927 -10.2813,1.875 -1.5989,-0.2947 -3.88717,-0.50701 -5.875,-0.3125 -3.05824,0.29924 -4.94113,0.48024 -6.875,0.65625 -0.65749,0.0598 -1.04004,0.17856 -1.34375,0.25 -0.42765,0.11895 -0.68351,0.21807 -1.375,0.28125 -1.31596,0.12025 -1.75976,-0.19488 -5.53125,0.21875 -3.55614,0.39001 -9.00554,1.23916 -10.25,1.90625 -1.59863,-0.29419 -3.85984,-0.52372 -5.84375,-0.3125 -3.0556,0.32532 -4.97404,0.52624 -6.90625,0.71875 -1.93221,0.1925 -1.68987,0.44088 -2.90625,0.5625 -1.31488,0.13146 -1.76298,-0.16454 -5.53125,0.28125 -3.53887,0.41865 -8.97768,1.29217 -10.25,1.96875 -1.59755,-0.28105 -3.85996,-0.42043 -5.84375,-0.1875 -3.05198,0.35836 -4.94508,0.56786 -6.875,0.78125 -0.6562,0.0725 -1.04066,0.17269 -1.34375,0.25 -0.42677,0.12722 -0.68491,0.2672 -1.375,0.34375 -1.31333,0.14568 -1.76746,-0.17402 -5.53125,0.3125 -3.54889,0.45875 -8.97863,1.41902 -10.21875,2.125 -1.59305,-0.24424 -3.83381,-0.38135 -5.8125,-0.125 -3.04759,0.39481 -4.95071,0.64845 -6.875,0.90625 -1.92428,0.25779 -1.72611,0.49353 -2.9375,0.65625 -1.30946,0.1759 -1.74719,-0.10438 -5.5,0.46875 -3.52429,0.53824 -8.92315,1.69917 -10.1875,2.4375 -1.5875,-0.20354 -3.8455,-0.25473 -5.8125,0.0937 -3.02617,0.53612 -4.89889,0.86169 -6.8125,1.1875 -0.65061,0.11077 -1.01371,0.27094 -1.3125,0.375 -0.42067,0.16488 -0.66345,0.3313 -1.34375,0.46875 -1.29465,0.26159 -1.72712,-0.006 -5.4375,0.8125 -3.49853,0.77195 -8.84595,2.38293 -10.0625,3.21875 -1.56278,-0.0774 -3.75758,0.0853 -5.6875,0.59375 -2.97244,0.78313 -4.81761,1.23209 -6.6875,1.75 -1.86988,0.5179 -1.6666,0.76728 -2.84375,1.09375 -1.27246,0.3529 -1.69703,0.10709 -5.34375,1.1875 -3.4247,1.01463 -8.64944,2.93317 -9.875,3.84375 -1.53883,0.0127 -3.71983,0.27222 -5.625,0.875 -2.93106,0.92734 -4.75031,1.45842 -6.59375,2.0625 -0.62676,0.20538 -0.99173,0.39258 -1.28125,0.53125 -0.40763,0.21361 -0.65334,0.40875 -1.3125,0.625 -1.25446,0.41154 -1.68611,0.18904 -5.28125,1.4375 -3.38985,1.17717 -8.59498,3.2137 -9.78125,4.15625 -1.52389,0.0597 -3.65005,0.39487 -5.53125,1.0625 -2.89739,1.02829 -4.69908,1.67548 -6.53125,2.3125 -1.83217,0.63701 -1.62785,0.84854 -2.78125,1.25 -1.24678,0.43396 -1.66361,0.19972 -5.21875,1.5625 -3.33867,1.2798 -8.48715,3.48255 -9.6875,4.46875 -1.50718,0.10769 -3.63569,0.4988 -5.5,1.21875 -2.86818,1.1076 -4.6238,1.78156 -6.4375,2.46875 -0.61666,0.23363 -0.99641,0.44203 -1.28125,0.59375 0,0 0,1.09375 0,1.09375 0.11178,-0.22236 0.38599,-0.81743 0.90625,-1.09375 0.69797,-0.37072 4.81363,-1.99337 6.8125,-2.71875 1.65686,-0.60125 4.15389,-1.32868 5.96875,-1.3125 0.30162,0.003 0.58762,0.0509 0.84375,0.0937 1.84249,0.30825 7.46875,1.5625 7.46875,1.5625 -10e-6,0 -6.23349,-1.64675 -7.03125,-1.84375 -0.19079,-0.0471 -0.53572,-0.0687 -0.96875,-0.0625 1.14546,-0.86971 4.761,-2.39351 7.34375,-3.4375 2.83822,-1.14727 3.11681,-1.25182 5.0625,-1.65625 2.0083,-0.41744 3.15625,-0.5 3.15625,-0.5 0,10e-6 -0.0824,-0.60114 0.96875,-1.125 0.7051,-0.35141 4.88702,-1.8924 6.90625,-2.5625 1.9519,-0.64773 5.0574,-1.3585 6.875,-1 1.86323,0.3675 7.53125,1.8125 7.53125,1.8125 10e-6,0 -6.287,-1.87111 -7.09375,-2.09375 -0.19292,-0.0532 -0.53084,-0.086 -0.96875,-0.0937 1.15834,-0.83288 4.79444,-2.19532 7.40625,-3.15625 2.87016,-1.05601 3.16734,-1.1618 5.125,-1.53125 1.85349,-0.34979 2.85884,-0.42548 3.03125,-0.4375 0.1136,-0.21724 0.37745,-0.81002 0.90625,-1.0625 0.70944,-0.33874 4.92607,-1.71275 6.96875,-2.3125 1.69317,-0.49711 4.24077,-1.03677 6.09375,-0.90625 0.30795,0.0217 0.61349,0.0973 0.875,0.15625 1.88118,0.42432 7.59375,2.03125 7.59375,2.03125 10e-6,0 -6.34174,-2.06525 -7.15625,-2.3125 -0.19479,-0.0591 -0.55788,-0.10394 -1,-0.125 1.16949,-0.79755 4.86302,-2.05622 7.5,-2.9375 2.89781,-0.96847 3.23301,-1.00332 5.21875,-1.28125 2.04965,-0.28689 3.1875,-0.3125 3.1875,-0.3125 -2e-5,0 -0.0728,-0.60697 1,-1.0625 0.7196,-0.30557 4.99098,-1.50075 7.0625,-2 2.00244,-0.48258 5.19849,-0.92829 7.0625,-0.40625 1.91078,0.53515 7.71875,2.5 7.71875,2.5 0,0 -6.42266,-2.42351 -7.25,-2.71875 -0.19784,-0.0706 -0.58216,-0.14039 -1.03125,-0.1875 1.1879,-0.72865 4.91527,-1.77408 7.59375,-2.5 2.94342,-0.79775 3.29208,-0.77083 5.3125,-0.90625 1.91289,-0.12823 2.94705,-0.0711 3.125,-0.0625 0.11728,-0.20366 0.39176,-0.77948 0.9375,-0.96875 0.73219,-0.25394 5.07852,-1.04789 7.1875,-1.375 1.74813,-0.27111 4.40088,-0.4847 6.3125,-0.0937 0.31766,0.065 0.60522,0.18551 0.875,0.28125 1.94074,0.68873 7.84375,3.09375 7.84375,3.09375 10e-6,0 -6.53471,-2.95077 -7.375,-3.3125 -0.20097,-0.0865 -0.57513,-0.16679 -1.03125,-0.25 1.2065,-0.63318 5.02956,-1.3956 7.75,-1.90625 2.98953,-0.56119 3.30023,-0.52954 5.34375,-0.53125 2.10926,-0.002 3.3125,0.125 3.3125,0.125 0,1e-5 -0.0727,-0.63119 1.03125,-0.9375 0.74052,-0.20547 5.12612,-0.83387 7.25,-1.0625 2.05302,-0.22099 5.31863,-0.25222 7.21875,0.46875 1.94779,0.73907 7.84375,3.375 7.84375,3.375 2e-5,0 -6.56288,-3.17897 -7.40625,-3.5625 -0.20168,-0.0917 -0.54221,-0.18621 -1,-0.28125 1.21092,-0.60188 4.98442,-1.24884 7.71875,-1.65625 3.0048,-0.44772 3.32551,-0.4517 5.375,-0.40625 1.94045,0.043 3.00699,0.19423 3.1875,0.21875 0.11892,-0.19316 0.3839,-0.76583 0.9375,-0.90625 0.74271,-0.18838 5.15429,-0.73428 7.28125,-0.9375 1.76303,-0.16842 4.42009,-0.23429 6.34375,0.25 0.31968,0.0805 0.60351,0.20359 0.875,0.3125 1.95293,0.78349 7.90625,3.46875 7.90625,3.46875 -2e-5,0 -6.59191,-3.25348 -7.4375,-3.65625 -0.20222,-0.0963 -0.57226,-0.20703 -1.03125,-0.3125 1.21414,-0.57427 5.04366,-1.12219 7.78125,-1.5 3.00838,-0.4152 3.32307,-0.44263 5.375,-0.375 2.11798,0.0698 3.3125,0.25 3.3125,0.25 -2e-5,0 -0.0773,-0.63741 1.03125,-0.90625 0.74362,-0.18035 5.15176,-0.66355 7.28125,-0.84375 2.05847,-0.17417 5.34324,-0.12432 7.25,0.65625 1.95459,0.80016 7.875,3.53125 7.875,3.53125 -2e-5,0 -6.55993,-3.30876 -7.40625,-3.71875 -0.20237,-0.0981 -0.57186,-0.2031 -1.03125,-0.3125 1.21517,-0.5639 5.01008,-1.1143 7.75,-1.46875 3.01091,-0.38952 3.32131,-0.39765 5.375,-0.3125 1.94439,0.0806 3.00663,0.25324 3.1875,0.28125 0.11916,-0.19086 0.38277,-0.74531 0.9375,-0.875 0.74426,-0.174 5.14993,-0.65047 7.28125,-0.8125 1.76662,-0.13427 4.4497,-0.12571 6.375,0.375 0.32,0.0832 0.6033,0.20127 0.875,0.3125 1.9546,0.80016 7.9063,3.5625 7.9063,3.5625 -10e-5,0 -6.5912,-3.34001 -7.4375,-3.75 -0.2024,-0.0981 -0.5719,-0.20311 -1.0313,-0.3125 1.2151,-0.5639 5.0413,-1.08306 7.7813,-1.4375 3.0109,-0.38953 3.3525,-0.4289 5.4062,-0.34375 2.1197,0.0879 3.3125,0.3125 3.3125,0.3125 0,0 -0.078,-0.64902 1.0313,-0.90625 0.7443,-0.17256 5.1495,-0.62336 7.2812,-0.78125 2.0606,-0.1526 5.3429,-0.0968 7.25,0.6875 1.955,0.80395 7.875,3.5 7.875,3.5 0,0 -6.5598,-3.27587 -7.4062,-3.6875 -0.2025,-0.0984 -0.5718,-0.20222 -1.0313,-0.3125 1.2154,-0.56154 5.0119,-1.12778 7.75,-1.5 3.009,-0.40905 3.3227,-0.41558 5.375,-0.34375 1.9431,0.068 3.0072,0.16485 3.1875,0.1875 0.1188,-0.1944 0.3846,-0.72881 0.9375,-0.875 0.7418,-0.19612 5.1311,-0.82878 7.25,-1.09375 1.7564,-0.21961 4.4053,-0.33231 6.3125,0.0312 0.3169,0.0604 0.6058,0.18938 0.875,0.28125 1.9362,0.66092 7.8438,2.9375 7.8438,2.9375 -1e-4,0 -6.5367,-2.80655 -7.375,-3.15625 -0.2005,-0.0836 -0.5762,-0.17333 -1.0313,-0.25 1.2037,-0.65046 5.0191,-1.37195 7.7188,-2 2.9667,-0.6902 3.2889,-0.75507 5.3125,-0.875 2.0886,-0.1238 3.2812,-0.0312 3.2812,-0.0312 0,1e-5 -0.087,-0.63205 1,-1.03125 0.7292,-0.2678 5.0472,-1.33797 7.125,-1.8125 2.0085,-0.45869 5.1679,-1.0293 7,-0.625 1.8781,0.41446 13.5782,3.01563 13.5782,3.01563 0,0 -12.3275,-3.02266 -13.1407,-3.26563 -0.1945,-0.0581 -0.5586,-0.10626 -1,-0.125 1.1676,-0.80369 3.5142,-1.6873 6.1094,-2.70312 1.6814,-0.65818 0.9237,-0.37659 2.7759,-1.0036 1.7536,-0.59366 2.4854,-1.01071 2.6304,-1.11299 0.3461,-0.20651 -0.356,-0.12188 -0.5442,-0.0424 z"
5076 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7001-5);enable-background:new"
5077 sodipodi:nodetypes="czscsssscssssscsssscssssscsssscssssscsssscssssscsssscssssscsssscssccsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscc" />
5078 <path
5079 inkscape:connector-curvature="0"
5080 id="path8095-5"
5081 d="m 1082.625,-275.125 c 1.873,0.39348 4.4961,1.14555 6.0313,1.96875 1.5352,0.82319 2.8222,1.056 5.375,2.5 2.5266,1.42926 4.7958,2.00696 6.9687,2.53125 2.3476,0.56642 5.4354,0.71523 8.8438,1.1875 -1.0889,-0.83975 -6.6074,-1.17245 -8.4063,-1.5625 -1.7989,-0.39006 -3.8941,-1.01616 -6.5937,-2.3125 -2.6997,-1.29634 -3.4944,-1.79896 -5.8125,-2.6875 -2.3182,-0.88854 -4.0044,-1.38314 -6.4063,-1.625 z"
5082 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6949-4);enable-background:new" />
5083 <path
5084 inkscape:connector-curvature="0"
5085 id="path8097-1"
5086 d="m 1051.4688,-270 c 1.9053,0.57759 4.5281,1.61572 6.0937,2.59375 1.5656,0.97802 2.8802,1.35981 5.5,3.125 2.593,1.74716 4.9859,2.70927 7.25,3.59375 2.4461,0.95557 5.6826,1.65713 9.4063,3.0625 -1.1896,-1.13784 -7.0631,-2.68675 -8.9375,-3.375 -1.8745,-0.68825 -4.0818,-1.5662 -6.875,-3.28125 -2.7933,-1.71504 -3.5736,-2.2839 -5.9375,-3.40625 -2.3641,-1.12234 -4.0567,-1.83455 -6.5,-2.3125 z"
5087 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6961-8);enable-background:new" />
5088 <path
5089 inkscape:connector-curvature="0"
5090 id="path8099-7"
5091 d="m 1020.2188,-266.84375 c 1.9119,0.63811 4.5812,1.75536 6.1562,2.8125 1.5751,1.05715 2.8956,1.50867 5.5313,3.40625 2.6086,1.87821 5.0284,3.03003 7.3125,4.0625 2.4677,1.11545 5.7645,2.1733 9.5312,3.84375 -1.2033,-1.22253 -7.2028,-3.31423 -9.0937,-4.125 -1.891,-0.81077 -4.0649,-1.89379 -6.875,-3.75 -2.8102,-1.8562 -3.6218,-2.47693 -6,-3.71875 -2.3783,-1.2418 -4.1107,-1.97569 -6.5625,-2.53125 z"
5092 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6957-9);enable-background:new" />
5093 <path
5094 inkscape:connector-curvature="0"
5095 id="path8101-4"
5096 d="m 1110.1719,-266.89063 c 0.1508,0.0486 0.688,0.631 0.1094,1.48438 -0.8101,1.19459 -5.7049,3.32429 -8.5625,4.125 -2.8449,0.79712 -6.2901,0.97774 -10.5625,-0.375 -4.3016,-1.36195 -5.4697,-2.46872 -10.6563,-4.3125 4.664,2.11517 6.1953,3.95233 10.125,5.34375 1.6207,0.57387 3.3671,0.9396 5.0625,1.03125 -0.4451,0.32563 -1.5303,0.9833 -3.5625,1.59375 -2.7955,0.83969 -6.6491,1.53378 -8.25,1.625 -1.5146,0.0863 -3.142,-0.51249 -3.4375,-0.625 0.1667,0.10308 0.3732,0.37734 -0.25,1.03125 -0.8993,0.94363 -6.1474,1.923 -9.125,2.25 -2.9643,0.32555 -6.5216,-0.016 -10.9062,-1.90625 -3.978,-1.71497 -5.339,-2.91536 -9.4063,-4.75 0,0 0,0.15625 0,0.15625 3.6431,2.09529 5.284,3.88327 8.875,5.5625 1.7302,0.80909 3.5917,1.40876 5.4063,1.71875 -0.5349,0.28676 -1.5578,0.71151 -3.4375,1.03125 -2.869,0.48796 -6.809,0.81614 -8.4375,0.75 -0.8507,-0.0345 -1.7286,-0.18437 -2.4063,-0.40625 -0.6848,-0.21488 -1.1897,-0.44467 -1.3125,-0.5 0.1694,0.10721 0.4311,0.40288 -0.2187,1.03125 -0.9097,0.87962 -6.2461,1.33638 -9.25,1.46875 -2.9905,0.13179 -6.5889,-0.45063 -11,-2.5625 -4.4412,-2.12626 -5.6415,-3.4016 -10.9063,-5.78125 4.7343,2.59704 6.2865,4.6291 10.3438,6.71875 1.6733,0.86185 3.4852,1.49425 5.25,1.9375 -0.4633,0.23332 -1.5894,0.68814 -3.6875,0.9375 -2.8863,0.34298 -6.8346,0.49288 -8.4688,0.375 -1.5462,-0.1115 -3.2312,-0.85696 -3.5312,-1 0.1691,0.12029 0.4138,0.41048 -0.2188,1 -0.9128,0.85073 -6.2441,1.26212 -9.25,1.375 -2.9925,0.11237 -6.5897,-0.49043 -11,-2.59375 -4.00125,-1.90823 -5.38803,-3.13783 -9.46875,-5.09375 -3e-5,0 0,0.15625 0,0.15625 3.65506,2.20392 5.29421,4.05255 8.90625,5.90625 1.74029,0.89315 3.637,1.52827 5.4688,1.96875 -0.54,0.2483 -1.5781,0.61533 -3.4688,0.84375 -2.88568,0.34858 -6.86605,0.52095 -8.5,0.40625 -0.85345,-0.0599 -1.72631,-0.25791 -2.40625,-0.5 -0.6871,-0.2353 -1.18935,-0.47226 -1.3125,-0.53125 0.16998,0.11227 0.46448,0.42225 -0.1875,1.03125 -0.91265,0.8525 -6.27533,1.29337 -9.28125,1.40625 -2.99246,0.11237 -6.59346,-0.52805 -11,-2.59375 -4.43653,-2.07978 -5.64688,-3.33171 -10.90625,-5.65625 4.72938,2.54749 6.29074,4.5778 10.34375,6.625 1.67155,0.84433 3.48554,1.46643 5.25,1.90625 -0.46323,0.23422 -1.5897,0.68407 -3.6875,0.9375 -2.88569,0.34858 -6.8362,0.56952 -8.46875,0.46875 -1.54456,-0.0953 -3.20031,-0.82885 -3.5,-0.96875 0.16899,0.11853 0.38192,0.40385 -0.25,1 -0.91186,0.86028 -6.24665,1.33025 -9.25,1.46875 -2.98995,0.1379 -6.56745,-0.45068 -10.96875,-2.46875 -3.99308,-1.83089 -5.36511,-3.0292 -9.4375,-4.90625 -2e-5,0 0,0.15625 0,0.15625 3.64761,2.13327 5.27033,3.93487 8.875,5.71875 1.73675,0.85951 3.60727,1.45014 5.4375,1.875 -0.53947,0.2529 -1.55063,0.64129 -3.4375,0.90625 -2.87978,0.40436 -6.83813,0.64562 -8.46875,0.5625 -0.85172,-0.0434 -1.7277,-0.20855 -2.40625,-0.4375 -0.68569,-0.22201 -1.1896,-0.44339 -1.3125,-0.5 0.16959,0.10899 0.4319,0.40965 -0.21875,1.03125 -0.91079,0.87014 -6.25021,1.39152 -9.25,1.5625 -2.98633,0.17021 -6.57381,-0.31577 -10.96875,-2.28125 -4.42489,-1.97888 -5.60596,-3.22819 -10.84375,-5.375 4.70997,2.38767 6.27017,4.38873 10.3125,6.34375 1.66715,0.80631 3.46043,1.39658 5.21875,1.78125 -0.46163,0.2487 -1.597,0.71225 -3.6875,1.03125 -2.8756,0.43876 -6.7804,0.7331 -8.40625,0.6875 -1.53823,-0.0431 -3.2328,-0.74522 -3.53125,-0.875 0.16833,0.11282 0.41057,0.41375 -0.21875,1.03125 -0.90812,0.8911 -6.20295,1.52825 -9.1875,1.8125 -2.97118,0.28298 -6.57342,-0.1758 -10.9375,-1.9375 -3.95934,-1.59831 -5.32915,-2.79487 -9.34375,-4.3125 3e-5,0 0,0.15625 0,0.15625 3.5959,1.81135 5.23831,3.58233 8.8125,5.15625 1.72207,0.75835 3.58748,1.28895 5.40625,1.625 -0.53609,0.27908 -1.56658,0.68763 -3.4375,1.0625 -2.85539,0.5721 -6.78942,1.01939 -8.40625,1.03125 -0.84451,0.006 -1.70608,-0.0809 -2.375,-0.25 -0.67591,-0.16151 -1.16009,-0.32923 -1.28125,-0.375 0.16722,0.094 0.42267,0.38348 -0.21875,1.0625 -0.89787,0.95052 -6.18648,1.91708 -9.125,2.4375 -2.92534,0.51809 -6.43215,0.37424 -10.71875,-1.03125 -4.3158,-1.41507 -5.47277,-2.52994 -10.5625,-3.96875 4.57685,1.75101 6.08855,3.56006 10.03125,5 1.62608,0.59389 3.36885,0.95565 5.09375,1.15625 -0.45285,0.29702 -1.55478,0.88339 -3.59375,1.46875 -2.80472,0.80517 -6.63886,1.57583 -8.21875,1.75 -1.49475,0.1648 -3.11623,-0.31681 -3.40625,-0.40625 0.16356,0.0901 0.39278,0.35993 -0.21875,1.0625 -0.88247,1.01385 -6.04452,2.37165 -8.9375,3.0625 -2.88002,0.68778 -6.3356,0.76002 -10.5625,-0.4375 -3.83485,-1.08645 -5.17258,-2.07237 -9.0625,-3.125 -10e-6,0 0,0.15625 0,0.15625 3.48418,1.39485 5.06941,2.9194 8.53125,4.03125 1.66793,0.53572 3.45578,0.78674 5.21875,0.875 -0.51964,0.35212 -1.50039,0.91452 -3.3125,1.53125 -2.76566,0.94125 -6.59024,1.93537 -8.15625,2.15625 -0.81794,0.11539 -1.6331,0.12283 -2.28125,0.0312 -0.65496,-0.0832 -1.1326,-0.21827 -1.25,-0.25 0.16204,0.0746 0.43399,0.34044 -0.1875,1.09375 -0.87,1.05453 -6.00963,2.65925 -8.875,3.4375 -2.85253,0.77476 -6.25912,0.9582 -10.4375,-0.0937 -4.20683,-1.05913 -5.35669,-2.04166 -10.34375,-3.15625 4.48454,1.45946 5.96935,3.13523 9.8125,4.25 1.58504,0.45977 3.28679,0.63825 4.96875,0.6875 -0.44157,0.33676 -1.51251,1.02773 -3.5,1.78125 -2.73393,1.03649 -6.45198,2.16269 -8,2.4375 -1.46462,0.26002 -3.05958,-0.11654 -3.34375,-0.1875 0.16025,0.0796 0.38044,0.32098 -0.21875,1.0625 -0.86466,1.07006 -5.91652,2.81815 -8.75,3.6875 -2.8208,0.86547 -6.2075,1.15631 -10.34375,0.21875 -3.75259,-0.85061 -5.04785,-1.71647 -8.875,-2.59375 0,0 0,0.15625 0,0.15625 3.42796,1.23779 4.98741,2.6323 8.375,3.53125 1.63216,0.43314 3.36704,0.58301 5.09375,0.5625 -0.50893,0.38417 -1.47675,1.02182 -3.25,1.75 -2.70634,1.11134 -6.43633,2.30781 -7.96875,2.625 -0.8004,0.16569 -1.61231,0.21862 -2.25,0.15625 0,0 0,0.51552 0,0.92229 0,0.26507 0,0.48396 0,0.48396 0.22645,-0.14468 0.44891,-0.27261 0.71875,-0.375 1.08052,-0.40998 2.17161,-0.21577 6,-1.6875 3.82843,-1.47174 5.22412,-2.00498 5.90625,-2.40625 0.6796,-0.39978 1.61165,-0.87937 2.21875,-1.53125 1.82685,-0.13775 3.57075,-0.49323 4.9375,-1 2.96812,-1.10052 4.87537,-1.80619 6.78125,-2.46875 1.90586,-0.66254 2.35409,-1.41487 3.40625,-1.78125 1.09155,-0.38011 2.19511,-0.16538 6.0625,-1.53125 3.86745,-1.36586 5.28316,-1.82708 5.96875,-2.21875 0.70109,-0.40052 1.70081,-0.93298 2.3125,-1.59375 1.9708,-0.0547 3.81685,-0.38463 5.28125,-0.875 3.00148,-1.00508 4.92615,-1.62171 6.84375,-2.25 1.5386,-0.5041 2.17402,-1.04677 2.90625,-1.4375 0.23016,-0.13431 0.47574,-0.25373 0.75,-0.34375 1.09823,-0.36048 2.18145,-0.0814 6.09375,-1.3125 3.91233,-1.23113 5.36605,-1.67295 6.0625,-2.03125 0.69388,-0.35697 1.63015,-0.79261 2.25,-1.40625 1.86521,-0.0227 3.63581,-0.26683 5.03125,-0.6875 3.03043,-0.91354 4.99238,-1.4301 6.9375,-1.96875 1.94511,-0.53864 2.42618,-1.26452 3.5,-1.5625 1.11401,-0.30915 2.21994,0.007 6.1875,-1.03125 3.96761,-1.03863 5.41758,-1.43273 6.125,-1.75 0.73487,-0.32959 1.81383,-0.75372 2.4375,-1.375 1.99774,0.116 3.85743,-0.0201 5.34375,-0.375 3.07811,-0.735 5.08344,-1.10094 7.0625,-1.5 1.58792,-0.32018 2.24429,-0.79055 3,-1.09375 0.23757,-0.1068 0.46695,-0.19276 0.75,-0.25 1.13347,-0.22919 2.30448,0.20893 6.34375,-0.5 4.03933,-0.70893 5.50025,-0.92709 6.21875,-1.1875 0.71586,-0.25944 1.70428,-0.56724 2.34375,-1.09375 1.92427,0.23949 3.74788,0.22453 5.1875,0 3.12633,-0.48762 5.15455,-0.70067 7.15625,-0.96875 2.00171,-0.26807 2.48869,-0.94514 3.59375,-1.09375 1.14639,-0.15418 2.27592,0.30157 6.34375,-0.21875 4.06784,-0.52032 5.56013,-0.69573 6.28125,-0.9375 0.7371,-0.24714 1.79809,-0.58623 2.4375,-1.125 2.05007,0.33553 3.97378,0.39796 5.5,0.21875 3.14231,-0.36896 5.17994,-0.55936 7.1875,-0.78125 1.61076,-0.17802 2.26467,-0.6082 3.03125,-0.84375 0.24094,-0.0855 0.49412,-0.1556 0.78125,-0.1875 1.14978,-0.12772 2.30129,0.34665 6.375,-0.125 4.07374,-0.47165 5.55909,-0.6106 6.28125,-0.84375 0.71946,-0.23227 1.70024,-0.47346 2.34375,-0.96875 1.93637,0.33346 3.77006,0.40424 5.21875,0.25 3.14602,-0.33495 5.17756,-0.51859 7.1875,-0.71875 2.00996,-0.20014 2.48414,-0.82639 3.59375,-0.9375 1.15114,-0.11528 2.29643,0.36506 6.375,-0.0625 4.07861,-0.42756 5.58886,-0.56209 6.3125,-0.78125 0.73915,-0.22386 1.79572,-0.51325 2.4375,-1.03125 2.0571,0.39867 4.00187,0.4934 5.53125,0.34375 3.14873,-0.3081 5.17584,-0.47325 7.1875,-0.65625 1.61407,-0.14682 2.2631,-0.56055 3.03125,-0.78125 0.24142,-0.0809 0.49353,-0.12991 0.78125,-0.15625 1.15211,-0.10545 2.29296,0.39275 6.375,0 4.08208,-0.39275 5.5889,-0.53084 6.3125,-0.75 0.7209,-0.21833 1.6997,-0.4477 2.3438,-0.9375 1.938,0.34999 3.7688,0.45438 5.2187,0.3125 3.1487,-0.3081 5.1758,-0.47325 7.1875,-0.65625 2.0116,-0.18299 2.5142,-0.83802 3.625,-0.9375 1.1523,-0.10323 2.2922,0.38483 6.375,0 4.0829,-0.38482 5.5887,-0.501 6.3125,-0.71875 0.7393,-0.22243 1.7956,-0.51449 2.4375,-1.03125 2.0574,0.40177 4.0029,0.50333 5.5313,0.34375 3.1466,-0.32852 5.1771,-0.5227 7.1875,-0.71875 1.613,-0.15729 2.2656,-0.63148 3.0312,-0.875 0.2407,-0.088 0.4632,-0.12137 0.75,-0.15625 1.1483,-0.1397 2.3167,0.33991 6.375,-0.25 4.0583,-0.58992 5.5618,-0.77714 6.2813,-1.03125 0.7167,-0.25316 1.6745,-0.55807 2.3125,-1.09375 1.9197,0.21194 3.7199,0.15141 5.1562,-0.0937 3.1191,-0.5324 5.1116,-0.92861 7.0938,-1.3125 1.9821,-0.38387 2.4743,-1.03965 3.5625,-1.28125 1.1288,-0.25066 2.2703,0.11629 6.25,-0.875 3.9796,-0.99128 5.4296,-1.4193 6.125,-1.78125 0.7223,-0.37601 1.7619,-0.87058 2.375,-1.53125 1.963,-0.012 3.7937,-0.29105 5.2187,-0.84375 2.9512,-1.14461 4.8732,-1.86942 6.6875,-2.75 1.4557,-0.70653 2.3348,-1.68641 2.5469,-1.98438 0.2122,-0.29796 0.1118,-0.7453 0.1379,-0.76675 0.043,-0.0352 0.3193,-0.085 0.479,-0.42844 0.8589,-1.84708 2.321,-5.64459 2.4352,-6.32945 0.1137,-0.68216 0.1638,-1.34774 0.2145,-1.74497 0.029,-0.22952 -0.1467,-0.86544 -0.1246,-0.92404 0.031,-0.0821 0.3045,-0.26528 0.3599,-0.51471 0.2663,-1.19833 0.089,-2.19129 -0.1251,-3.60893 -0.214,-1.41764 -0.9837,-4.62214 -1.6369,-5.47626 -0.6589,-0.86172 -1.2229,-1.01117 -1.7479,-1.00066 -0.2086,0.26976 0.1368,0.26309 0.1626,0.31261 0.6806,0.0508 0.934,0.36864 1.4192,0.89662 0.4852,0.52798 1.4428,3.93956 1.5794,5.38995 0.1366,1.45039 0.19,2.8602 -0.088,3.46864 -0.2781,0.60845 -0.9442,0.42864 -1.2366,0.49452 0.531,0.18589 0.8908,0.21322 0.9524,1.05768 0.059,0.81338 -0.1332,1.63969 -0.5198,2.80562 -0.3912,1.18001 -1.8452,4.34998 -2.2857,4.59877 -0.4523,0.25551 -0.9524,0.18199 -1.288,0.0511 z"
5097 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6997-5);enable-background:new"
5098 sodipodi:nodetypes="cssscscsscsssccscssssssscscsscsssscscssssssscscsscsssscscssssssscscsscsssscscssssssscscsscsssscscssssssscscsscsssccscsscscssscssssscsssssscssssscsssssscssssscsssssscssssscsssssscssssscsssssscssssscsszsszssszzcczzzczzzc" />
5099 <path
5100 inkscape:connector-curvature="0"
5101 id="path8103-3"
5102 d="m 988.75,-263.84375 c 1.91161,0.6344 4.55027,1.75841 6.125,2.8125 1.57477,1.05409 2.8961,1.48252 5.5313,3.375 2.6082,1.87314 5.0269,3.01522 7.3125,4.0625 2.4693,1.13147 5.7521,2.15474 9.5312,3.9375 -1.2072,-1.2584 -7.139,-3.36445 -9.0312,-4.1875 -1.8922,-0.82304 -4.128,-1.93049 -6.9375,-3.78125 -2.80961,-1.85075 -3.62224,-2.48154 -6.00005,-3.71875 -2.37782,-1.23719 -4.07988,-1.9492 -6.53125,-2.5 z"
5103 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6953-8);enable-background:new" />
5104 <path
5105 inkscape:connector-curvature="0"
5106 id="path8105-1"
5107 d="m 957.5,-260.78125 c 1.91,0.6181 4.58288,1.70934 6.15625,2.75 1.57339,1.04066 2.89608,1.48252 5.53125,3.375 2.60823,1.87315 5.02692,3.01521 7.3125,4.0625 2.46931,1.13147 5.75213,2.15475 9.53125,3.9375 -1.20728,-1.2584 -7.20154,-3.3957 -9.09375,-4.21875 -1.89217,-0.82304 -4.09666,-1.9305 -6.90625,-3.78125 -2.80958,-1.85075 -3.59295,-2.43932 -5.96875,-3.65625 -2.37578,-1.21691 -4.11321,-1.93885 -6.5625,-2.46875 z"
5108 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6993-3);enable-background:new" />
5109 <path
5110 inkscape:connector-curvature="0"
5111 id="path8107-4"
5112 d="m 926.09375,-257.375 c 1.90772,0.59745 4.55348,1.66384 6.125,2.6875 1.5715,1.02365 2.87022,1.43971 5.5,3.28125 2.60291,1.82273 5.02887,2.9722 7.3125,4 2.4672,1.11041 5.75535,2.09323 9.53125,3.84375 -1.20623,-1.2481 -7.1719,-3.31809 -9.0625,-4.125 -1.89058,-0.8069 -4.10242,-1.89104 -6.90625,-3.6875 -2.80385,-1.79644 -3.62704,-2.40251 -6,-3.59375 -2.37297,-1.19124 -4.05362,-1.90283 -6.5,-2.40625 z"
5113 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6989-8);enable-background:new" />
5114 <path
5115 inkscape:connector-curvature="0"
5116 id="path8109-6"
5117 d="m 894.90625,-253.5625 c 1.90213,0.55355 4.58701,1.58887 6.15625,2.59375 1.56923,1.00487 2.87401,1.40864 5.5,3.21875 2.59912,1.79164 5.00034,2.87189 7.28125,3.875 2.46428,1.08374 5.75984,2.04029 9.53125,3.75 -1.2048,-1.23507 -7.17416,-3.24478 -9.0625,-4.03125 -1.88832,-0.78647 -4.0752,-1.8308 -6.875,-3.59375 -2.79977,-1.76294 -3.59919,-2.36836 -5.96875,-3.53125 -2.36957,-1.16288 -4.12325,-1.83412 -6.5625,-2.28125 z"
5118 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6985-6);enable-background:new" />
5119 <path
5120 inkscape:connector-curvature="0"
5121 id="path8111-9"
5122 d="m 863.71875,-248.65625 c 1.88062,0.42909 4.50427,1.38038 6.0625,2.3125 1.55823,0.93211 2.85233,1.25776 5.46875,3 2.58971,1.72444 4.98067,2.70802 7.25,3.625 2.45176,0.99069 5.73959,1.87707 9.5,3.5 -1.20131,-1.20734 -7.15249,-3.06609 -9.03125,-3.78125 -1.87875,-0.71517 -4.0854,-1.68442 -6.875,-3.375 -2.78963,-1.69057 -3.58461,-2.22822 -5.9375,-3.28125 -2.35292,-1.05301 -4.02584,-1.71248 -6.4375,-2 z"
5123 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6965-3);enable-background:new" />
5124 <path
5125 inkscape:connector-curvature="0"
5126 id="path8113-4"
5127 d="m 833.15625,-241.375 c 1.84836,0.29644 4.46945,0.97632 6,1.78125 1.53058,0.80493 2.81374,1.05573 5.375,2.53125 2.53504,1.46046 4.89068,2.32509 7.125,3.0625 2.41399,0.79668 5.65711,1.46689 9.375,2.84375 -1.18771,-1.12873 -7.08772,-2.58975 -8.9375,-3.15625 -1.84977,-0.5665 -4.00342,-1.37392 -6.75,-2.84375 -2.74657,-1.46983 -3.50136,-1.92028 -5.8125,-2.78125 -2.31115,-0.86095 -4.00471,-1.32009 -6.375,-1.4375 z"
5128 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6981-3);enable-background:new" />
5129 <path
5130 inkscape:connector-curvature="0"
5131 id="path8115-2"
5132 d="m 802.90625,-232.3125 c 1.8222,0.21127 4.36576,0.80057 5.875,1.53125 1.50925,0.73066 2.75568,0.92998 5.28125,2.28125 2.49976,1.33746 4.83154,2.04843 7.03125,2.65625 2.37653,0.65667 5.56464,1.07288 9.21875,2.1875 -1.16735,-1.04496 -6.92888,-2.10329 -8.75,-2.5625 -1.82111,-0.45921 -3.95225,-1.12696 -6.65625,-2.4375 -2.70403,-1.31052 -3.47106,-1.7199 -5.75,-2.46875 -2.27895,-0.74883 -3.91325,-1.17931 -6.25,-1.1875 z"
5133 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6977-6);enable-background:new" />
5134 <path
5135 inkscape:connector-curvature="0"
5136 id="path8117-2"
5137 d="m 773.1875,-222.1875 c 1.81109,0.1787 4.32059,0.66506 5.8125,1.34375 1.49194,0.67869 2.7534,0.79822 5.25,2.0625 2.47107,1.25138 4.79005,1.89614 6.96875,2.4375 2.35387,0.58488 5.49134,0.89752 9.09375,1.84375 -1.15084,-0.99116 -6.85251,-1.7833 -8.65625,-2.1875 -1.80372,-0.4042 -3.91553,-1.02116 -6.59375,-2.25 -2.67818,-1.22884 -3.40345,-1.61089 -5.65625,-2.28125 -2.25279,-0.67034 -3.89627,-1.00232 -6.21875,-0.96875 z"
5138 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6973-4);enable-background:new" />
5139 <path
5140 inkscape:connector-curvature="0"
5141 id="path8119-6"
5142 d="m 743.5625,-211.1875 c 1.79281,0.12911 4.27313,0.54965 5.75,1.1875 1.4769,0.63785 2.7161,0.74156 5.1875,1.9375 2.44618,1.18372 4.72054,1.74666 6.875,2.21875 2.32767,0.51003 5.4196,0.68064 9,1.5625 -1.14379,-0.9706 -6.74759,-1.59065 -8.53125,-1.9375 -1.78367,-0.34684 -3.88285,-0.88756 -6.53125,-2.03125 -2.64841,-1.14368 -3.39495,-1.51631 -5.625,-2.125 -2.23008,-0.60868 -3.82594,-0.90966 -6.125,-0.8125 z"
5143 style="display:inline;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter6969-8);enable-background:new" />
5144 <g
5145 id="g8121-4"
5146 style="fill:#ffffff;fill-opacity:1;filter:url(#filter7345-9)">
5147 <path
5148 inkscape:connector-curvature="0"
5149 sodipodi:nodetypes="czzzczzc"
5150 id="path8123-1"
5151 d="m 744.9375,-212.11731 c 0,0 7.22229,-3.22318 9.0625,-3.5 1.84021,-0.27682 3.35225,-0.003 6,0.5625 2.64775,0.56573 8.7357,2.21518 11.1875,3.375 2.4518,1.15982 5.3125,3.5625 5.3125,3.5625 0,0 -7.14644,-2.78019 -10.1875,-3.5625 -3.04106,-0.78231 -7.64461,-2.08374 -10.375,-2.3125 -2.73039,-0.22876 -11,1.875 -11,1.875 z"
5152 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
5153 <path
5154 inkscape:connector-curvature="0"
5155 sodipodi:nodetypes="czzzczzc"
5156 id="path8125-2"
5157 d="m 735.46875,-206.95416 c 0,0 3.65979,-2.22318 5.5,-2.5 1.84021,-0.27682 3.66475,0.24677 6.3125,0.8125 2.64775,0.56573 8.7357,2.21518 11.1875,3.375 2.4518,1.15982 6.5625,2.125 6.5625,2.125 0,0 -8.39644,-1.34269 -11.4375,-2.125 -3.04106,-0.78231 -7.95711,-2.33374 -10.6875,-2.5625 -2.73039,-0.22876 -7.4375,0.875 -7.4375,0.875 z"
5158 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5159 <path
5160 inkscape:connector-curvature="0"
5161 sodipodi:nodetypes="czzzczzc"
5162 id="path8127-8"
5163 d="m 759.85042,-217.61116 c 0,0 8.5437,-3.29857 10.39778,-3.45786 1.85409,-0.1593 3.64166,0.4792 6.2481,1.21208 2.60644,0.73288 8.57724,2.76594 10.95036,4.07925 2.37312,1.31331 6.41417,2.53782 6.41417,2.53782 0,0 -8.29413,-1.87365 -11.27931,-2.84767 -2.98519,-0.97402 -7.79269,-2.83478 -10.50302,-3.23662 -2.71033,-0.40184 -12.22808,1.713 -12.22808,1.713 z"
5164 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5165 <path
5166 inkscape:connector-curvature="0"
5167 sodipodi:nodetypes="czzzczzc"
5168 id="path8129-8"
5169 d="m 775.19813,-223.2266 c 0,0 7.77133,-2.78244 9.62831,-2.90349 1.85697,-0.12104 3.631,0.55417 6.22178,1.34062 2.59077,0.78645 8.5184,2.94217 10.86394,4.30412 2.34555,1.36195 6.36049,2.6695 6.36049,2.6695 0,0 -8.25373,-2.04423 -11.21821,-3.07958 -2.96447,-1.03535 -7.73259,-2.99481 -10.43406,-3.45243 -2.70147,-0.45763 -11.42225,1.12126 -11.42225,1.12126 z"
5170 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5171 <path
5172 inkscape:connector-curvature="0"
5173 inkscape:transform-center-y="-4.3190906"
5174 inkscape:transform-center-x="13.852145"
5175 sodipodi:nodetypes="czzzczzc"
5176 id="path8131-9"
5177 d="m 789.64298,-227.95417 c 0,0 8.68256,-3.52031 10.54154,-3.60535 1.85897,-0.085 3.61958,0.62442 6.19463,1.46093 2.57505,0.83649 8.45979,3.10666 10.77851,4.5138 2.31872,1.40715 6.30757,2.79224 6.30757,2.79224 0,0 -8.21257,-2.20377 -11.15643,-3.29636 -2.94386,-1.09259 -7.67312,-3.14408 -10.36522,-3.65397 -2.69209,-0.50988 -12.3006,1.78871 -12.3006,1.78871 z"
5178 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5179 <path
5180 inkscape:connector-curvature="0"
5181 inkscape:transform-center-y="-4.3190906"
5182 inkscape:transform-center-x="13.852145"
5183 sodipodi:nodetypes="czzzczzc"
5184 id="path8133-2"
5185 d="m 804.49513,-233.32948 c 0,0 7.80756,-2.58281 9.66654,-2.66785 1.85897,-0.085 3.61958,0.62442 6.19463,1.46093 2.57505,0.83649 8.45979,3.10666 10.77851,4.5138 2.31872,1.40715 6.30757,2.79224 6.30757,2.79224 0,0 -8.21257,-2.20377 -11.15643,-3.29636 -2.94386,-1.09259 -7.67312,-3.14408 -10.36522,-3.65397 -2.69209,-0.50988 -11.4256,0.85121 -11.4256,0.85121 z"
5186 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5187 <path
5188 inkscape:connector-curvature="0"
5189 inkscape:transform-center-y="-4.3190906"
5190 inkscape:transform-center-x="13.852145"
5191 sodipodi:nodetypes="czzzczzc"
5192 id="path8135-8"
5193 d="m 819.55763,-237.57948 c 0,0 8.55756,-2.58281 10.41654,-2.66785 1.85897,-0.085 3.61958,0.62442 6.19463,1.46093 2.57505,0.83649 8.45979,3.10666 10.77851,4.5138 2.31872,1.40715 6.30757,2.79224 6.30757,2.79224 0,0 -8.21257,-2.20377 -11.15643,-3.29636 -2.94386,-1.09259 -7.67312,-3.14408 -10.36522,-3.65397 -2.69209,-0.50988 -12.1756,0.85121 -12.1756,0.85121 z"
5194 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5195 <path
5196 inkscape:connector-curvature="0"
5197 inkscape:transform-center-y="-4.9269042"
5198 inkscape:transform-center-x="13.64141"
5199 sodipodi:nodetypes="czzzczzc"
5200 id="path8137-8"
5201 d="m 836.23395,-242.60125 c 0,0 6.96702,-1.98723 8.82784,-1.96757 1.86081,0.0197 3.57873,0.82702 6.10265,1.80705 2.52393,0.98 8.27166,3.57758 10.50756,5.11291 2.2359,1.53535 6.14053,3.14261 6.14053,3.14261 0,0 -8.07561,-2.66222 -10.95336,-3.91866 -2.87774,-1.25645 -7.48412,-3.5707 -10.14328,-4.23121 -2.65915,-0.66049 -10.48194,0.0549 -10.48194,0.0549 z"
5202 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5203 <path
5204 inkscape:connector-curvature="0"
5205 inkscape:transform-center-y="-5.1542119"
5206 inkscape:transform-center-x="13.55068"
5207 sodipodi:nodetypes="czzzczzc"
5208 id="path8139-8"
5209 d="m 850.73028,-246.00461 c 0,0 7.68784,-2.02768 9.54782,-1.96854 1.85997,0.0592 3.56038,0.90279 6.06293,1.93616 2.50255,1.03334 8.19387,3.75232 10.39668,5.33475 2.20282,1.58245 6.07245,3.2722 6.07245,3.2722 0,0 -8.01729,-2.83298 -10.86772,-4.15022 -2.85043,-1.31723 -7.40666,-3.72872 -10.0512,-4.4455 -2.64454,-0.71678 -11.16096,0.0211 -11.16096,0.0211 z"
5210 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5211 <path
5212 inkscape:connector-curvature="0"
5213 inkscape:transform-center-y="-5.4740887"
5214 inkscape:transform-center-x="13.41151"
5215 sodipodi:nodetypes="czzzczzc"
5216 id="path8141-6"
5217 d="m 864.82496,-249.21081 c 0,0 8.16952,-1.96906 10.02688,-1.85396 1.85735,0.11512 3.53158,1.00956 6.0019,2.11779 2.47031,1.10821 8.0772,3.99727 10.23138,5.64531 2.15418,1.64804 5.9712,3.45352 5.9712,3.45352 0,0 -7.92839,-3.07306 -10.73787,-4.4755 -2.80949,-1.40244 -7.29106,-3.94999 -9.91283,-4.74606 -2.62176,-0.79606 -11.58066,-0.1411 -11.58066,-0.1411 z"
5218 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5219 <path
5220 inkscape:connector-curvature="0"
5221 inkscape:transform-center-y="-5.79376"
5222 inkscape:transform-center-x="13.258805"
5223 sodipodi:nodetypes="czzzczzc"
5224 id="path8143-8"
5225 d="m 881.38485,-251.60282 c 0,0 8.08536,-1.90809 9.93837,-1.73664 1.853,0.17147 3.4993,1.11633 5.93482,2.29908 2.43553,1.18271 7.95209,4.2407 10.05523,5.95339 2.10314,1.7127 5.86357,3.63326 5.86357,3.63326 0,0 -7.8314,-3.3124 -10.597,-4.7995 -2.76561,-1.48712 -7.16775,-4.16959 -9.76414,-5.04491 -2.59637,-0.87531 -11.43085,-0.30468 -11.43085,-0.30468 z"
5226 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5227 <path
5228 inkscape:connector-curvature="0"
5229 inkscape:transform-center-y="-5.7433893"
5230 inkscape:transform-center-x="13.28378"
5231 sodipodi:nodetypes="czzzczzc"
5232 id="path8145-3"
5233 d="m 896.58415,-254.34724 c 0,0 7.64166,-1.4277 9.49547,-1.26515 1.8538,0.16256 3.50462,1.0995 5.94579,2.27053 2.44118,1.171 7.97238,4.20246 10.08372,5.90502 2.11134,1.70258 5.88096,3.60505 5.88096,3.60505 0,0 -7.84723,-3.27474 -10.61995,-4.74855 -2.77271,-1.4738 -7.18769,-4.13509 -9.78825,-4.99793 -2.60055,-0.86282 -10.99774,-0.76897 -10.99774,-0.76897 z"
5234 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5235 <path
5236 inkscape:connector-curvature="0"
5237 inkscape:transform-center-y="-5.7433893"
5238 inkscape:transform-center-x="13.28378"
5239 sodipodi:nodetypes="czzzczzc"
5240 id="path8147-8"
5241 d="m 911.45328,-255.98544 c 0,0 8.64166,-1.5527 10.49547,-1.39015 1.8538,0.16256 3.50462,1.0995 5.94579,2.27053 2.44118,1.171 7.97238,4.20246 10.08372,5.90502 2.11134,1.70258 5.88096,3.60505 5.88096,3.60505 0,0 -7.84723,-3.27474 -10.61995,-4.74855 -2.77271,-1.4738 -7.18769,-4.13509 -9.78825,-4.99793 -2.60055,-0.86282 -11.99774,-0.64397 -11.99774,-0.64397 z"
5242 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5243 <path
5244 inkscape:connector-curvature="0"
5245 inkscape:transform-center-y="-5.7433893"
5246 inkscape:transform-center-x="13.28378"
5247 sodipodi:nodetypes="czzzczzc"
5248 id="path8149-3"
5249 d="m 927.70328,-258.29794 c 0,0 7.64166,-0.8652 9.49547,-0.70265 1.8538,0.16256 3.50462,1.0995 5.94579,2.27053 2.44118,1.171 7.97238,4.20246 10.08372,5.90502 2.11134,1.70258 5.88096,3.60505 5.88096,3.60505 0,0 -7.84723,-3.27474 -10.61995,-4.74855 -2.77271,-1.4738 -7.18769,-4.13509 -9.78825,-4.99793 -2.60055,-0.86282 -10.99774,-1.33147 -10.99774,-1.33147 z"
5250 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5251 <path
5252 inkscape:connector-curvature="0"
5253 inkscape:transform-center-y="-5.7433893"
5254 inkscape:transform-center-x="13.28378"
5255 sodipodi:nodetypes="czzzczzc"
5256 id="path8151-3"
5257 d="m 942.82828,-259.48544 c 0,0 8.57916,-1.4902 10.43297,-1.32765 1.8538,0.16256 3.50462,1.0995 5.94579,2.27053 2.44118,1.171 7.97238,4.20246 10.08372,5.90502 2.11134,1.70258 5.88096,3.60505 5.88096,3.60505 0,0 -7.84723,-3.27474 -10.61995,-4.74855 -2.77271,-1.4738 -7.18769,-4.13509 -9.78825,-4.99793 -2.60055,-0.86282 -11.93524,-0.70647 -11.93524,-0.70647 z"
5258 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5259 <path
5260 inkscape:connector-curvature="0"
5261 inkscape:transform-center-y="-5.7433893"
5262 inkscape:transform-center-x="13.28378"
5263 sodipodi:nodetypes="czzzczzc"
5264 id="path8153-3"
5265 d="m 959.07828,-261.54794 c 0,0 7.82916,-0.8027 9.68297,-0.64015 1.8538,0.16256 3.50462,1.0995 5.94579,2.27053 2.44118,1.171 7.97238,4.20246 10.08372,5.90502 2.11134,1.70258 5.88096,3.60505 5.88096,3.60505 0,0 -7.84723,-3.27474 -10.61995,-4.74855 -2.77271,-1.4738 -7.18769,-4.13509 -9.78825,-4.99793 -2.60055,-0.86282 -11.18524,-1.39397 -11.18524,-1.39397 z"
5266 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5267 <path
5268 inkscape:connector-curvature="0"
5269 inkscape:transform-center-y="-5.7433893"
5270 inkscape:transform-center-x="13.28378"
5271 sodipodi:nodetypes="czzzczzc"
5272 id="path8155-8"
5273 d="m 974.45328,-262.79794 c 0,0 8.39166,-1.1777 10.24547,-1.01515 1.8538,0.16256 3.50462,1.0995 5.94579,2.27053 2.44118,1.171 7.97238,4.20246 10.08376,5.90502 2.1113,1.70258 5.8809,3.60505 5.8809,3.60505 0,0 -7.84721,-3.27474 -10.61993,-4.74855 -2.77271,-1.4738 -7.18769,-4.13509 -9.78825,-4.99793 -2.60055,-0.86282 -11.74774,-1.01897 -11.74774,-1.01897 z"
5274 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5275 <path
5276 inkscape:connector-curvature="0"
5277 inkscape:transform-center-y="-5.7433893"
5278 inkscape:transform-center-x="13.28378"
5279 sodipodi:nodetypes="czzzczzc"
5280 id="path8157-0"
5281 d="m 990.64078,-264.86044 c 0,0 6.89166,-0.9902 8.74547,-0.82765 1.85385,0.16256 3.50465,1.0995 5.94575,2.27053 2.4412,1.171 7.9724,4.20246 10.0838,5.90502 2.1113,1.70258 5.8809,3.60505 5.8809,3.60505 0,0 -7.8472,-3.27474 -10.6199,-4.74855 -2.7727,-1.4738 -7.1877,-4.13509 -9.7883,-4.99793 -2.60053,-0.86282 -10.24772,-1.20647 -10.24772,-1.20647 z"
5282 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5283 <path
5284 inkscape:connector-curvature="0"
5285 inkscape:transform-center-y="-5.7433893"
5286 inkscape:transform-center-x="13.28378"
5287 sodipodi:nodetypes="czzzczzc"
5288 id="path8159-4"
5289 d="m 1007.7658,-265.79794 c 0,0 6.8291,-1.1777 8.683,-1.01515 1.8538,0.16256 3.5046,1.0995 5.9457,2.27053 2.4412,1.171 7.9724,4.20246 10.0838,5.90502 2.1113,1.70258 5.8809,3.60505 5.8809,3.60505 0,0 -7.8472,-3.27474 -10.6199,-4.74855 -2.7727,-1.4738 -7.1877,-4.13509 -9.7883,-4.99793 -2.6005,-0.86282 -10.1852,-1.01897 -10.1852,-1.01897 z"
5290 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5291 <path
5292 inkscape:connector-curvature="0"
5293 inkscape:transform-center-y="-5.7433893"
5294 inkscape:transform-center-x="13.28378"
5295 sodipodi:nodetypes="czzzczzc"
5296 id="path8161-7"
5297 d="m 1023.8908,-267.79794 c 0,0 6.0791,-0.4277 7.933,-0.26515 1.8538,0.16256 3.5046,1.0995 5.9457,2.27053 2.4412,1.171 7.9724,4.20246 10.0838,5.90502 2.1113,1.70258 5.8809,3.60505 5.8809,3.60505 0,0 -7.8472,-3.27474 -10.6199,-4.74855 -2.7727,-1.4738 -7.1877,-4.13509 -9.7883,-4.99793 -2.6005,-0.86282 -9.4352,-1.76897 -9.4352,-1.76897 z"
5298 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5299 <path
5300 inkscape:connector-curvature="0"
5301 inkscape:transform-center-y="-5.7433893"
5302 inkscape:transform-center-x="13.28378"
5303 sodipodi:nodetypes="czzzczzc"
5304 id="path8163-6"
5305 d="m 1039.7033,-269.17294 c 0,0 6.4541,-0.6777 8.308,-0.51515 1.8538,0.16256 3.5046,1.0995 5.9457,2.27053 2.4412,1.171 7.9724,4.20246 10.0838,5.90502 2.1113,1.70258 5.8809,3.60505 5.8809,3.60505 0,0 -7.8472,-3.27474 -10.6199,-4.74855 -2.7727,-1.4738 -7.1877,-4.13509 -9.7883,-4.99793 -2.6005,-0.86282 -9.8102,-1.51897 -9.8102,-1.51897 z"
5306 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5307 <path
5308 inkscape:connector-curvature="0"
5309 inkscape:transform-center-y="-5.1360724"
5310 inkscape:transform-center-x="13.55813"
5311 sodipodi:nodetypes="czzzczzc"
5312 id="path8165-8"
5313 d="m 1055.2718,-271.03319 c 0,0 5.4976,-0.90945 7.3578,-0.85348 1.8601,0.056 3.5619,0.89674 6.0661,1.92586 2.5044,1.0291 8.2003,3.7384 10.4058,5.31709 2.2055,1.57871 6.078,3.2619 6.078,3.2619 0,0 -8.022,-2.81939 -10.8748,-4.13178 -2.8526,-1.31238 -7.4129,-3.71613 -10.0587,-4.42843 -2.6457,-0.71228 -8.9742,-1.09116 -8.9742,-1.09116 z"
5314 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5315 <path
5316 inkscape:connector-curvature="0"
5317 inkscape:transform-center-y="-4.6370147"
5318 inkscape:transform-center-x="13.74758"
5319 sodipodi:nodetypes="czzzczzc"
5320 id="path8167-9"
5321 d="m 1072.7007,-273.48537 c 0,0 4.5472,-1.15581 6.408,-1.18621 1.8607,-0.0304 3.5996,0.73049 6.1489,1.64231 2.5494,0.91177 8.3649,3.35386 10.6414,4.8285 2.2763,1.47468 6.2227,2.97636 6.2227,2.97636 0,0 -8.1442,-2.44411 -11.0547,-3.62272 -2.9105,-1.1786 -7.5774,-3.36815 -10.2534,-3.95691 -2.6759,-0.58875 -8.1129,-0.68133 -8.1129,-0.68133 z"
5322 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5323 <path
5324 inkscape:connector-curvature="0"
5325 inkscape:transform-center-y="-4.4842392"
5326 inkscape:transform-center-x="13.79933"
5327 sodipodi:nodetypes="czzzczzc"
5328 id="path8169-0"
5329 d="m 1087.1585,-276.5244 c 0,0 5.96,-1.77355 7.8202,-1.83024 1.86,-0.0567 3.6096,0.67955 6.1715,1.55525 2.562,0.87566 2.5226,0.85713 5.3335,1.49015 2.7969,0.62986 7.0767,1.51313 7.0767,1.51313 0,0 -3.6155,-0.0163 -6.7923,-0.46614 -3.1155,-0.44119 -7.3743,-1.69825 -10.0584,-2.24913 -2.6839,-0.55088 -9.5512,-0.013 -9.5512,-0.013 z"
5330 style="display:inline;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" />
5331 <path
5332 inkscape:connector-curvature="0"
5333 sodipodi:nodetypes="czczc"
5334 id="path8171-6"
5335 d="m 1099.25,-279.92981 c 0.1612,0.26862 11.2081,-4.60046 12.1875,-4.6875 0.9794,-0.087 2,3.125 2,3.125 0,0 -0.7751,-1.50434 -2.875,-1.0625 -2.0999,0.44184 -11.3009,2.67141 -11.3125,2.625 z"
5336 style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
5337 </g>
5338 <path
5339 inkscape:connector-curvature="0"
5340 id="path8173-8"
5341 d="m 1107.4532,-284.0938 c -0.4187,0.21283 -0.1556,0.0939 -0.6472,0.30581 -0.4861,0.20954 -1.7234,0.57439 -4.0796,1.45895 -3.3311,1.25057 -5.8302,2.15344 -7.0259,3.0661 -1.5361,0.0213 -3.7205,0.23331 -5.6563,0.71875 -2.9815,0.74766 -4.8552,1.17401 -6.75,1.59375 -1.8948,0.41972 -1.6755,0.64219 -2.875,0.875 -1.2966,0.25166 -1.7214,-0.009 -5.4375,0.78125 -3.4899,0.74214 -8.8948,1.93107 -10.1562,2.6875 -1.5839,-0.18079 -3.8675,-0.32178 -5.8438,-0.0312 -3.0404,0.44695 -4.9162,0.67276 -6.8437,0.90625 -0.6554,0.0794 -1.0411,0.20078 -1.3438,0.28125 -0.4262,0.13165 -0.6858,0.26002 -1.375,0.34375 -1.3116,0.15936 -1.7622,-0.15683 -5.5312,0.28125 -3.5539,0.41308 -9.0054,1.27282 -10.25,1.9375 -1.599,-0.2973 -3.8578,-0.53419 -5.8438,-0.34375 -3.0588,0.29331 -4.972,0.48399 -6.9062,0.65625 -1.9343,0.17226 -1.6887,0.42237 -2.9063,0.53125 -1.3162,0.11769 -1.7598,-0.16363 -5.5312,0.25 -3.5419,0.38844 -9.0079,1.20927 -10.2813,1.875 -1.5989,-0.2947 -3.88718,-0.50701 -5.87501,-0.3125 -3.05824,0.29924 -4.94113,0.48024 -6.875,0.65625 -0.65749,0.0598 -1.04004,0.17856 -1.34375,0.25 -0.42765,0.11895 -0.68351,0.21807 -1.375,0.28125 -1.31596,0.12025 -1.75976,-0.19488 -5.53125,0.21875 -3.55614,0.39001 -9.00554,1.23916 -10.25,1.90625 -1.59863,-0.29419 -3.85984,-0.52372 -5.84375,-0.3125 -3.0556,0.32532 -4.97404,0.52624 -6.90625,0.71875 -1.93221,0.1925 -1.68987,0.44088 -2.90625,0.5625 -1.31488,0.13146 -1.76298,-0.16454 -5.53125,0.28125 -3.53887,0.41865 -8.97768,1.29217 -10.25,1.96875 -1.59755,-0.28105 -3.85996,-0.42043 -5.84375,-0.1875 -3.05198,0.35836 -4.94508,0.56786 -6.875,0.78125 -0.6562,0.0726 -1.04066,0.17269 -1.34375,0.25 -0.42677,0.12722 -0.68491,0.2672 -1.375,0.34375 -1.31333,0.14568 -1.76746,-0.17402 -5.53125,0.3125 -3.54889,0.45875 -8.97863,1.41902 -10.21875,2.125 -1.59305,-0.24424 -3.83381,-0.38135 -5.8125,-0.125 -3.04759,0.39481 -4.95071,0.64845 -6.875,0.90625 -1.92428,0.25779 -1.72611,0.49353 -2.9375,0.65625 -1.30946,0.1759 -1.74719,-0.10438 -5.5,0.46875 -3.52429,0.53824 -8.92315,1.69917 -10.1875,2.4375 -1.5875,-0.20354 -3.8455,-0.25473 -5.8125,0.0937 -3.02617,0.53612 -4.89889,0.86169 -6.8125,1.1875 -0.65061,0.11077 -1.01371,0.27094 -1.3125,0.375 -0.42067,0.16488 -0.66345,0.3313 -1.34375,0.46875 -1.29465,0.26159 -1.72712,-0.006 -5.4375,0.8125 -3.49853,0.77195 -8.84595,2.38293 -10.0625,3.21875 -1.56278,-0.0775 -3.75758,0.0853 -5.6875,0.59375 -2.97244,0.78313 -4.81761,1.23209 -6.6875,1.75 -1.86988,0.5179 -1.6666,0.76728 -2.84375,1.09375 -1.27246,0.3529 -1.69703,0.10709 -5.34375,1.1875 -3.4247,1.01463 -8.64944,2.93317 -9.875,3.84375 -1.53883,0.0127 -3.71983,0.27222 -5.625,0.875 -2.93106,0.92734 -4.75031,1.45842 -6.59375,2.0625 -0.62676,0.20538 -0.99173,0.39258 -1.28125,0.53125 -0.40763,0.21361 -0.65334,0.40875 -1.3125,0.625 -1.25446,0.41154 -1.68611,0.18904 -5.28125,1.4375 -3.38985,1.17717 -8.59498,3.2137 -9.78125,4.15625 -1.52389,0.0597 -3.65005,0.39487 -5.53125,1.0625 -2.89739,1.02829 -4.69908,1.67548 -6.53125,2.3125 -1.83217,0.63701 -1.62785,0.84854 -2.78125,1.25 -1.24678,0.43396 -1.66361,0.19972 -5.21875,1.5625 -3.33867,1.2798 -8.48715,3.48255 -9.6875,4.46875 -1.50718,0.10769 -3.63569,0.4988 -5.5,1.21875 -2.86818,1.1076 -4.6238,1.78156 -6.4375,2.46875 -0.61666,0.23363 -0.99641,0.44203 -1.28125,0.59375 0,0 0,1.09375 0,1.09375 0.11178,-0.22236 0.38599,-0.81743 0.90625,-1.09375 0.69797,-0.37072 4.81363,-1.99337 6.8125,-2.71875 1.65686,-0.60125 4.15389,-1.32868 5.96875,-1.3125 0.30162,0.003 0.58762,0.0509 0.84375,0.0937 1.84249,0.30825 7.46875,1.5625 7.46875,1.5625 -10e-6,0 -6.23349,-1.64675 -7.03125,-1.84375 -0.19079,-0.0471 -0.53572,-0.0687 -0.96875,-0.0625 1.14546,-0.86971 4.761,-2.39351 7.34375,-3.4375 2.83822,-1.14727 3.11681,-1.25182 5.0625,-1.65625 2.0083,-0.41744 3.15625,-0.5 3.15625,-0.5 0,1e-5 -0.0824,-0.60114 0.96875,-1.125 0.7051,-0.35141 4.88702,-1.8924 6.90625,-2.5625 1.9519,-0.64773 5.0574,-1.3585 6.875,-1 1.86323,0.3675 7.53125,1.8125 7.53125,1.8125 1e-5,0 -6.287,-1.87111 -7.09375,-2.09375 -0.19292,-0.0533 -0.53084,-0.086 -0.96875,-0.0937 1.15834,-0.83288 4.79444,-2.19532 7.40625,-3.15625 2.87016,-1.05601 3.16734,-1.1618 5.125,-1.53125 1.85349,-0.34979 2.85884,-0.42548 3.03125,-0.4375 0.1136,-0.21724 0.37745,-0.81002 0.90625,-1.0625 0.70944,-0.33874 4.92607,-1.71275 6.96875,-2.3125 1.69317,-0.49711 4.24077,-1.03677 6.09375,-0.90625 0.30795,0.0217 0.61349,0.0973 0.875,0.15625 1.88118,0.42432 7.59375,2.03125 7.59375,2.03125 1e-5,0 -6.34174,-2.06525 -7.15625,-2.3125 -0.19479,-0.0591 -0.55788,-0.10394 -1,-0.125 1.16949,-0.79755 4.86302,-2.05622 7.5,-2.9375 2.89781,-0.96847 3.23301,-1.00332 5.21875,-1.28125 2.04965,-0.28689 3.1875,-0.3125 3.1875,-0.3125 -2e-5,0 -0.0727,-0.60697 1,-1.0625 0.7196,-0.30557 4.99098,-1.50075 7.0625,-2 2.00244,-0.48258 5.19849,-0.92829 7.0625,-0.40625 1.91078,0.53515 7.71875,2.5 7.71875,2.5 0,0 -6.42266,-2.42351 -7.25,-2.71875 -0.19784,-0.0706 -0.58216,-0.14039 -1.03125,-0.1875 1.1879,-0.72865 4.91527,-1.77408 7.59375,-2.5 2.94342,-0.79775 3.29208,-0.77083 5.3125,-0.90625 1.91289,-0.12823 2.94705,-0.0711 3.125,-0.0625 0.11728,-0.20366 0.39176,-0.77948 0.9375,-0.96875 0.73219,-0.25394 5.07852,-1.04789 7.1875,-1.375 1.74813,-0.27111 4.40088,-0.4847 6.3125,-0.0937 0.31766,0.065 0.60522,0.18551 0.875,0.28125 1.94074,0.68873 7.84375,3.09375 7.84375,3.09375 1e-5,0 -6.53471,-2.95077 -7.375,-3.3125 -0.20097,-0.0865 -0.57513,-0.16679 -1.03125,-0.25 1.2065,-0.63318 5.02956,-1.3956 7.75,-1.90625 2.98953,-0.56119 3.30023,-0.52954 5.34375,-0.53125 2.10926,-0.002 3.3125,0.125 3.3125,0.125 0,1e-5 -0.0727,-0.63119 1.03125,-0.9375 0.74052,-0.20547 5.12612,-0.83387 7.25,-1.0625 2.05302,-0.22099 5.31863,-0.25222 7.21875,0.46875 1.94779,0.73907 7.84375,3.375 7.84375,3.375 2e-5,0 -6.56288,-3.17897 -7.40625,-3.5625 -0.20168,-0.0917 -0.54221,-0.18621 -1,-0.28125 1.21092,-0.60188 4.98442,-1.24884 7.71875,-1.65625 3.0048,-0.44772 3.32551,-0.4517 5.375,-0.40625 1.94045,0.043 3.00699,0.19423 3.1875,0.21875 0.11892,-0.19316 0.3839,-0.76583 0.9375,-0.90625 0.74271,-0.18838 5.15429,-0.73428 7.28125,-0.9375 1.76303,-0.16842 4.42009,-0.23429 6.34375,0.25 0.31968,0.0805 0.60351,0.20359 0.875,0.3125 1.95293,0.78349 7.90625,3.46875 7.90625,3.46875 -2e-5,0 -6.59191,-3.25348 -7.4375,-3.65625 -0.20222,-0.0963 -0.57226,-0.20703 -1.03125,-0.3125 1.21414,-0.57427 5.04366,-1.12219 7.78125,-1.5 3.00838,-0.4152 3.32307,-0.44263 5.375,-0.375 2.11798,0.0698 3.3125,0.25 3.3125,0.25 -2e-5,0 -0.0772,-0.63741 1.03125,-0.90625 0.74362,-0.18035 5.15176,-0.66355 7.28125,-0.84375 2.05847,-0.17417 5.34324,-0.12432 7.25,0.65625 1.95459,0.80016 7.875,3.53125 7.875,3.53125 -2e-5,0 -6.55993,-3.30876 -7.40625,-3.71875 -0.20237,-0.0981 -0.57186,-0.2031 -1.03125,-0.3125 1.21517,-0.5639 5.01008,-1.1143 7.75,-1.46875 3.01091,-0.38952 3.32131,-0.39765 5.375,-0.3125 1.94439,0.0806 3.00663,0.25324 3.1875,0.28125 0.11916,-0.19086 0.38277,-0.74531 0.9375,-0.875 0.74426,-0.174 5.14993,-0.65047 7.28125,-0.8125 1.76662,-0.13427 4.44971,-0.12571 6.37501,0.375 0.32,0.0832 0.6033,0.20127 0.875,0.3125 1.9546,0.80016 7.9063,3.5625 7.9063,3.5625 -1e-4,0 -6.5912,-3.34001 -7.4375,-3.75 -0.2024,-0.0981 -0.5719,-0.20311 -1.0313,-0.3125 1.2151,-0.5639 5.0413,-1.08306 7.7813,-1.4375 3.0109,-0.38953 3.3525,-0.4289 5.4062,-0.34375 2.1197,0.0879 3.3125,0.3125 3.3125,0.3125 0,0 -0.078,-0.64902 1.0313,-0.90625 0.7443,-0.17256 5.1495,-0.62336 7.2812,-0.78125 2.0606,-0.1526 5.3429,-0.0968 7.25,0.6875 1.955,0.80395 7.875,3.5 7.875,3.5 0,0 -6.5598,-3.27587 -7.4062,-3.6875 -0.2025,-0.0984 -0.5718,-0.20222 -1.0313,-0.3125 1.2154,-0.56154 5.0119,-1.12778 7.75,-1.5 3.009,-0.40905 3.3227,-0.41558 5.375,-0.34375 1.9431,0.068 3.0072,0.16485 3.1875,0.1875 0.1188,-0.1944 0.3846,-0.72881 0.9375,-0.875 0.7418,-0.19612 5.1311,-0.82878 7.25,-1.09375 1.7564,-0.21961 4.4053,-0.33231 6.3125,0.0312 0.3169,0.0604 0.6058,0.18938 0.875,0.28125 1.9362,0.66092 7.8438,2.9375 7.8438,2.9375 -10e-5,0 -6.5367,-2.80655 -7.375,-3.15625 -0.2005,-0.0836 -0.5762,-0.17333 -1.0313,-0.25 1.2037,-0.65046 5.0191,-1.37195 7.7188,-2 2.9667,-0.6902 3.2889,-0.75507 5.3125,-0.875 2.0886,-0.1238 3.2812,-0.0312 3.2812,-0.0312 0,1e-5 -0.087,-0.63205 1,-1.03125 0.7292,-0.2678 5.0472,-1.33797 7.125,-1.8125 2.0085,-0.45869 5.1679,-1.0293 7,-0.625 1.8781,0.41446 13.5782,3.01563 13.5782,3.01563 0,0 -12.3275,-3.02266 -13.1407,-3.26563 -0.1945,-0.0581 -0.5586,-0.10626 -1,-0.125 1.1676,-0.80369 3.5142,-1.6873 6.1094,-2.70312 1.6814,-0.65818 0.9237,-0.37659 2.7759,-1.0036 1.7536,-0.59366 2.4854,-1.01071 2.6304,-1.11299 0.3461,-0.20651 -0.356,-0.12188 -0.5442,-0.0424 z"
5342 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7333-7);enable-background:new"
5343 sodipodi:nodetypes="czscsssscssssscsssscssssscsssscssssscsssscssssscsssscssssscsssscssccsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscsssscscsscssscscsscc" />
5344 <path
5345 inkscape:connector-curvature="0"
5346 id="path8175-7"
5347 d="m 1082.625,-275.125 c 1.873,0.39348 4.4961,1.14555 6.0313,1.96875 1.5352,0.82319 2.8222,1.056 5.375,2.5 2.5266,1.42926 4.7958,2.00696 6.9687,2.53125 2.3476,0.56642 5.4354,0.71523 8.8438,1.1875 -1.0889,-0.83975 -6.6074,-1.17245 -8.4063,-1.5625 -1.7989,-0.39006 -3.8941,-1.01616 -6.5937,-2.3125 -2.6997,-1.29634 -3.4944,-1.79896 -5.8125,-2.6875 -2.3182,-0.88854 -4.0044,-1.38314 -6.4063,-1.625 z"
5348 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7285-4);enable-background:new" />
5349 <path
5350 inkscape:connector-curvature="0"
5351 id="path8177-9"
5352 d="m 1051.4688,-270 c 1.9053,0.57759 4.5281,1.61572 6.0937,2.59375 1.5656,0.97802 2.8802,1.35981 5.5,3.125 2.593,1.74716 4.9859,2.70927 7.25,3.59375 2.4461,0.95557 5.6826,1.65713 9.4063,3.0625 -1.1896,-1.13784 -7.0631,-2.68675 -8.9375,-3.375 -1.8745,-0.68825 -4.0818,-1.5662 -6.875,-3.28125 -2.7933,-1.71504 -3.5736,-2.2839 -5.9375,-3.40625 -2.3641,-1.12234 -4.0567,-1.83455 -6.5,-2.3125 z"
5353 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7289-0);enable-background:new" />
5354 <path
5355 inkscape:connector-curvature="0"
5356 id="path8179-0"
5357 d="m 1020.2188,-266.84375 c 1.9119,0.63811 4.5812,1.75536 6.1562,2.8125 1.5751,1.05715 2.8956,1.50867 5.5313,3.40625 2.6086,1.87821 5.0284,3.03003 7.3125,4.0625 2.4677,1.11545 5.7645,2.1733 9.5312,3.84375 -1.2033,-1.22253 -7.2028,-3.31423 -9.0937,-4.125 -1.891,-0.81077 -4.0649,-1.89379 -6.875,-3.75 -2.8102,-1.8562 -3.6218,-2.47693 -6,-3.71875 -2.3783,-1.2418 -4.1107,-1.97569 -6.5625,-2.53125 z"
5358 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7293-0);enable-background:new" />
5359 <path
5360 inkscape:connector-curvature="0"
5361 id="path8181-3"
5362 d="m 1110.1719,-266.89063 c 0.1508,0.0486 0.688,0.631 0.1094,1.48438 -0.8101,1.19459 -5.7049,3.32429 -8.5625,4.125 -2.8449,0.79712 -6.2901,0.97774 -10.5625,-0.375 -4.3016,-1.36195 -5.4697,-2.46872 -10.6563,-4.3125 4.664,2.11517 6.1953,3.95233 10.125,5.34375 1.6207,0.57387 3.3671,0.9396 5.0625,1.03125 -0.4451,0.32563 -1.5303,0.9833 -3.5625,1.59375 -2.7955,0.83969 -6.6491,1.53378 -8.25,1.625 -1.5146,0.0863 -3.142,-0.51249 -3.4375,-0.625 0.1667,0.10308 0.3732,0.37734 -0.25,1.03125 -0.8993,0.94363 -6.1474,1.923 -9.125,2.25 -2.9643,0.32555 -6.5216,-0.016 -10.9062,-1.90625 -3.978,-1.71497 -5.339,-2.91536 -9.4063,-4.75 0,0 0,0.15625 0,0.15625 3.6431,2.09529 5.284,3.88327 8.875,5.5625 1.7302,0.80909 3.5917,1.40876 5.4063,1.71875 -0.5349,0.28676 -1.5578,0.71151 -3.4375,1.03125 -2.869,0.48796 -6.809,0.81614 -8.4375,0.75 -0.8507,-0.0345 -1.7286,-0.18437 -2.4063,-0.40625 -0.6848,-0.21488 -1.1897,-0.44467 -1.3125,-0.5 0.1694,0.10721 0.4311,0.40288 -0.2187,1.03125 -0.9097,0.87962 -6.2461,1.33638 -9.25,1.46875 -2.9905,0.13179 -6.5889,-0.45063 -11,-2.5625 -4.4412,-2.12626 -5.6415,-3.4016 -10.9063,-5.78125 4.7343,2.59704 6.2865,4.6291 10.3438,6.71875 1.6733,0.86185 3.4852,1.49425 5.25,1.9375 -0.4633,0.23332 -1.5894,0.68814 -3.6875,0.9375 -2.8863,0.34298 -6.8346,0.49288 -8.4688,0.375 -1.5462,-0.1115 -3.2312,-0.85696 -3.5312,-1 0.1691,0.12029 0.4138,0.41048 -0.2188,1 -0.9128,0.85073 -6.2441,1.26212 -9.25,1.375 -2.9925,0.11237 -6.5897,-0.49043 -11,-2.59375 -4.00125,-1.90823 -5.38803,-3.13783 -9.46875,-5.09375 -3e-5,0 0,0.15625 0,0.15625 3.65506,2.20392 5.29421,4.05255 8.90625,5.90625 1.74029,0.89315 3.637,1.52827 5.4688,1.96875 -0.54,0.2483 -1.5781,0.61533 -3.4688,0.84375 -2.88568,0.34858 -6.86605,0.52095 -8.5,0.40625 -0.85345,-0.0599 -1.72631,-0.25791 -2.40625,-0.5 -0.6871,-0.2353 -1.18935,-0.47226 -1.3125,-0.53125 0.16998,0.11227 0.46448,0.42225 -0.1875,1.03125 -0.91265,0.8525 -6.27533,1.29337 -9.28125,1.40625 -2.99246,0.11237 -6.59346,-0.52805 -11,-2.59375 -4.43653,-2.07978 -5.64688,-3.33171 -10.90625,-5.65625 4.72938,2.54749 6.29074,4.5778 10.34375,6.625 1.67155,0.84433 3.48554,1.46643 5.25,1.90625 -0.46323,0.23422 -1.5897,0.68407 -3.6875,0.9375 -2.88569,0.34858 -6.8362,0.56952 -8.46875,0.46875 -1.54456,-0.0953 -3.20031,-0.82885 -3.5,-0.96875 0.16899,0.11853 0.38192,0.40385 -0.25,1 -0.91186,0.86028 -6.24665,1.33025 -9.25,1.46875 -2.98995,0.1379 -6.56745,-0.45068 -10.96875,-2.46875 -3.99308,-1.83089 -5.36511,-3.0292 -9.4375,-4.90625 -2e-5,0 0,0.15625 0,0.15625 3.64761,2.13327 5.27033,3.93487 8.875,5.71875 1.73675,0.85951 3.60727,1.45014 5.4375,1.875 -0.53947,0.2529 -1.55063,0.64129 -3.4375,0.90625 -2.87978,0.40436 -6.83813,0.64562 -8.46875,0.5625 -0.85172,-0.0434 -1.7277,-0.20855 -2.40625,-0.4375 -0.68569,-0.22201 -1.1896,-0.44339 -1.3125,-0.5 0.16959,0.10899 0.4319,0.40965 -0.21875,1.03125 -0.91079,0.87014 -6.25021,1.39152 -9.25,1.5625 -2.98633,0.17021 -6.57381,-0.31577 -10.96875,-2.28125 -4.42489,-1.97888 -5.60596,-3.22819 -10.84375,-5.375 4.70997,2.38767 6.27017,4.38873 10.3125,6.34375 1.66715,0.80631 3.46043,1.39658 5.21875,1.78125 -0.46163,0.2487 -1.597,0.71225 -3.6875,1.03125 -2.8756,0.43876 -6.7804,0.7331 -8.40625,0.6875 -1.53823,-0.0431 -3.2328,-0.74522 -3.53125,-0.875 0.16833,0.11282 0.41057,0.41375 -0.21875,1.03125 -0.90812,0.8911 -6.20295,1.52825 -9.1875,1.8125 -2.97118,0.28298 -6.57342,-0.1758 -10.9375,-1.9375 -3.95934,-1.59831 -5.32915,-2.79487 -9.34375,-4.3125 3e-5,0 0,0.15625 0,0.15625 3.5959,1.81135 5.23831,3.58233 8.8125,5.15625 1.72207,0.75835 3.58748,1.28895 5.40625,1.625 -0.53609,0.27908 -1.56658,0.68763 -3.4375,1.0625 -2.85539,0.5721 -6.78942,1.01939 -8.40625,1.03125 -0.84451,0.006 -1.70608,-0.0809 -2.375,-0.25 -0.67591,-0.16151 -1.16009,-0.32923 -1.28125,-0.375 0.16722,0.094 0.42267,0.38348 -0.21875,1.0625 -0.89787,0.95052 -6.18648,1.91708 -9.125,2.4375 -2.92534,0.51809 -6.43215,0.37424 -10.71875,-1.03125 -4.3158,-1.41507 -5.47277,-2.52994 -10.5625,-3.96875 4.57685,1.75101 6.08855,3.56006 10.03125,5 1.62608,0.59389 3.36885,0.95565 5.09375,1.15625 -0.45285,0.29702 -1.55478,0.88339 -3.59375,1.46875 -2.80472,0.80517 -6.63886,1.57583 -8.21875,1.75 -1.49475,0.1648 -3.11623,-0.31681 -3.40625,-0.40625 0.16356,0.0901 0.39278,0.35993 -0.21875,1.0625 -0.88247,1.01385 -6.04452,2.37165 -8.9375,3.0625 -2.88002,0.68778 -6.3356,0.76002 -10.5625,-0.4375 -3.83485,-1.08645 -5.17258,-2.07237 -9.0625,-3.125 -10e-6,0 0,0.15625 0,0.15625 3.48418,1.39485 5.06941,2.9194 8.53125,4.03125 1.66793,0.53572 3.45578,0.78674 5.21875,0.875 -0.51964,0.35212 -1.50039,0.91452 -3.3125,1.53125 -2.76566,0.94125 -6.59024,1.93537 -8.15625,2.15625 -0.81794,0.11539 -1.6331,0.12283 -2.28125,0.0312 -0.65496,-0.0832 -1.1326,-0.21827 -1.25,-0.25 0.16204,0.0746 0.43399,0.34044 -0.1875,1.09375 -0.87,1.05453 -6.00963,2.65925 -8.875,3.4375 -2.85253,0.77476 -6.25912,0.9582 -10.4375,-0.0937 -4.20683,-1.05913 -5.35669,-2.04166 -10.34375,-3.15625 4.48454,1.45946 5.96935,3.13523 9.8125,4.25 1.58504,0.45977 3.28679,0.63825 4.96875,0.6875 -0.44157,0.33676 -1.51251,1.02773 -3.5,1.78125 -2.73393,1.03649 -6.45198,2.16269 -8,2.4375 -1.46462,0.26002 -3.05958,-0.11654 -3.34375,-0.1875 0.16025,0.0796 0.38044,0.32098 -0.21875,1.0625 -0.86466,1.07006 -5.91652,2.81815 -8.75,3.6875 -2.8208,0.86547 -6.2075,1.15631 -10.34375,0.21875 -3.75259,-0.85061 -5.04785,-1.71647 -8.875,-2.59375 0,0 0,0.15625 0,0.15625 3.42796,1.23779 4.98741,2.6323 8.375,3.53125 1.63216,0.43314 3.36704,0.58301 5.09375,0.5625 -0.50893,0.38417 -1.47675,1.02182 -3.25,1.75 -2.70634,1.11134 -6.43633,2.30781 -7.96875,2.625 -0.8004,0.16569 -1.61231,0.21862 -2.25,0.15625 0,0 0,0.51552 0,0.92229 0,0.26507 0,0.48396 0,0.48396 0.22645,-0.14468 0.44891,-0.27261 0.71875,-0.375 1.08052,-0.40998 2.17161,-0.21577 6,-1.6875 3.82843,-1.47174 5.22412,-2.00498 5.90625,-2.40625 0.6796,-0.39978 1.61165,-0.87937 2.21875,-1.53125 1.82685,-0.13775 3.57075,-0.49323 4.9375,-1 2.96812,-1.10052 4.87537,-1.80619 6.78125,-2.46875 1.90586,-0.66254 2.35409,-1.41487 3.40625,-1.78125 1.09155,-0.38011 2.19511,-0.16538 6.0625,-1.53125 3.86745,-1.36586 5.28316,-1.82708 5.96875,-2.21875 0.70109,-0.40052 1.70081,-0.93298 2.3125,-1.59375 1.9708,-0.0547 3.81685,-0.38463 5.28125,-0.875 3.00148,-1.00508 4.92615,-1.62171 6.84375,-2.25 1.5386,-0.5041 2.17402,-1.04677 2.90625,-1.4375 0.23016,-0.13431 0.47574,-0.25373 0.75,-0.34375 1.09823,-0.36048 2.18145,-0.0814 6.09375,-1.3125 3.91233,-1.23113 5.36605,-1.67295 6.0625,-2.03125 0.69388,-0.35697 1.63015,-0.79261 2.25,-1.40625 1.86521,-0.0227 3.63581,-0.26683 5.03125,-0.6875 3.03043,-0.91354 4.99238,-1.4301 6.9375,-1.96875 1.94511,-0.53864 2.42618,-1.26452 3.5,-1.5625 1.11401,-0.30915 2.21994,0.007 6.1875,-1.03125 3.96761,-1.03863 5.41758,-1.43273 6.125,-1.75 0.73487,-0.32959 1.81383,-0.75372 2.4375,-1.375 1.99774,0.116 3.85743,-0.0201 5.34375,-0.375 3.07811,-0.735 5.08344,-1.10094 7.0625,-1.5 1.58792,-0.32018 2.24429,-0.79055 3,-1.09375 0.23757,-0.1068 0.46695,-0.19276 0.75,-0.25 1.13347,-0.22919 2.30448,0.20893 6.34375,-0.5 4.03933,-0.70893 5.50025,-0.92709 6.21875,-1.1875 0.71586,-0.25944 1.70428,-0.56724 2.34375,-1.09375 1.92427,0.23949 3.74788,0.22453 5.1875,0 3.12633,-0.48762 5.15455,-0.70067 7.15625,-0.96875 2.00171,-0.26807 2.48869,-0.94514 3.59375,-1.09375 1.14639,-0.15418 2.27592,0.30157 6.34375,-0.21875 4.06784,-0.52032 5.56013,-0.69573 6.28125,-0.9375 0.7371,-0.24714 1.79809,-0.58623 2.4375,-1.125 2.05007,0.33553 3.97378,0.39796 5.5,0.21875 3.14231,-0.36896 5.17994,-0.55936 7.1875,-0.78125 1.61076,-0.17802 2.26467,-0.6082 3.03125,-0.84375 0.24094,-0.0855 0.49412,-0.1556 0.78125,-0.1875 1.14978,-0.12772 2.30129,0.34665 6.375,-0.125 4.07374,-0.47165 5.55909,-0.6106 6.28125,-0.84375 0.71946,-0.23227 1.70024,-0.47346 2.34375,-0.96875 1.93637,0.33346 3.77006,0.40424 5.21875,0.25 3.14602,-0.33495 5.17756,-0.51859 7.1875,-0.71875 2.00996,-0.20014 2.48414,-0.82639 3.59375,-0.9375 1.15114,-0.11528 2.29643,0.36506 6.375,-0.0625 4.07861,-0.42756 5.58886,-0.56209 6.3125,-0.78125 0.73915,-0.22386 1.79572,-0.51325 2.4375,-1.03125 2.0571,0.39867 4.00187,0.4934 5.53125,0.34375 3.14873,-0.3081 5.17584,-0.47325 7.1875,-0.65625 1.61407,-0.14682 2.2631,-0.56055 3.03125,-0.78125 0.24142,-0.0809 0.49353,-0.12991 0.78125,-0.15625 1.15211,-0.10545 2.29296,0.39275 6.375,0 4.08208,-0.39275 5.5889,-0.53084 6.3125,-0.75 0.7209,-0.21833 1.6997,-0.4477 2.3438,-0.9375 1.938,0.34999 3.7688,0.45438 5.2187,0.3125 3.1487,-0.3081 5.1758,-0.47325 7.1875,-0.65625 2.0116,-0.18299 2.5142,-0.83802 3.625,-0.9375 1.1523,-0.10323 2.2922,0.38483 6.375,0 4.0829,-0.38482 5.5887,-0.501 6.3125,-0.71875 0.7393,-0.22243 1.7956,-0.51449 2.4375,-1.03125 2.0574,0.40177 4.0029,0.50333 5.5313,0.34375 3.1466,-0.32852 5.1771,-0.5227 7.1875,-0.71875 1.613,-0.15729 2.2656,-0.63148 3.0312,-0.875 0.2407,-0.088 0.4632,-0.12137 0.75,-0.15625 1.1483,-0.1397 2.3167,0.33991 6.375,-0.25 4.0583,-0.58992 5.5618,-0.77714 6.2813,-1.03125 0.7167,-0.25316 1.6745,-0.55807 2.3125,-1.09375 1.9197,0.21194 3.7199,0.15141 5.1562,-0.0937 3.1191,-0.5324 5.1116,-0.92861 7.0938,-1.3125 1.9821,-0.38387 2.4743,-1.03965 3.5625,-1.28125 1.1288,-0.25066 2.2703,0.11629 6.25,-0.875 3.9796,-0.99128 5.4296,-1.4193 6.125,-1.78125 0.7223,-0.37601 1.7619,-0.87058 2.375,-1.53125 1.963,-0.012 3.7937,-0.29105 5.2187,-0.84375 2.9512,-1.14461 4.8732,-1.86942 6.6875,-2.75 1.4557,-0.70653 2.3348,-1.68641 2.5469,-1.98438 0.2122,-0.29796 0.1118,-0.7453 0.1379,-0.76675 0.043,-0.0352 0.3193,-0.085 0.479,-0.42844 0.8589,-1.84708 2.321,-5.64459 2.4352,-6.32945 0.1137,-0.68216 0.1638,-1.34774 0.2145,-1.74497 0.029,-0.22952 -0.1467,-0.86544 -0.1246,-0.92404 0.031,-0.0821 0.3045,-0.26528 0.3599,-0.51471 0.2663,-1.19833 0.089,-2.19129 -0.1251,-3.60893 -0.214,-1.41764 -0.9837,-4.62214 -1.6369,-5.47626 -0.6589,-0.86172 -1.2229,-1.01117 -1.7479,-1.00066 -0.2086,0.26976 0.1368,0.26309 0.1626,0.31261 0.6806,0.0508 0.934,0.36864 1.4192,0.89662 0.4852,0.52798 1.2218,3.85117 1.3584,5.30156 0.1366,1.45039 0.19,2.8602 -0.088,3.46864 -0.2781,0.60845 -0.7232,0.51703 -1.0156,0.58291 0.531,0.18589 0.6698,0.12483 0.7314,0.96929 0.059,0.81338 -0.1332,1.63969 -0.5198,2.80562 -0.3912,1.18001 -1.8452,4.34998 -2.2857,4.59877 -0.4523,0.25551 -0.7314,0.27038 -1.067,0.13944 z"
5363 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7337-2);enable-background:new"
5364 sodipodi:nodetypes="cssscscsscsssccscssssssscscsscsssscscssssssscscsscsssscscssssssscscsscsssscscssssssscscsscsssscscssssssscscsscsssccscsscscssscssssscsssssscssssscsssssscssssscsssssscssssscsssssscssssscsssssscssssscsszsszssszzcczzzczzzc" />
5365 <path
5366 inkscape:connector-curvature="0"
5367 id="path8183-3"
5368 d="m 988.75,-263.84375 c 1.91161,0.6344 4.55027,1.75841 6.125,2.8125 1.57477,1.05409 2.8961,1.48252 5.5313,3.375 2.6082,1.87314 5.0269,3.01522 7.3125,4.0625 2.4693,1.13147 5.7521,2.15474 9.5312,3.9375 -1.2072,-1.2584 -7.139,-3.36445 -9.0312,-4.1875 -1.8922,-0.82304 -4.128,-1.93049 -6.9375,-3.78125 -2.80961,-1.85075 -3.62224,-2.48154 -6.00005,-3.71875 -2.37782,-1.23719 -4.07988,-1.9492 -6.53125,-2.5 z"
5369 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7297-4);enable-background:new" />
5370 <path
5371 inkscape:connector-curvature="0"
5372 id="path8185-3"
5373 d="m 957.5,-260.78125 c 1.91,0.6181 4.58288,1.70934 6.15625,2.75 1.57339,1.04066 2.89608,1.48252 5.53125,3.375 2.60823,1.87315 5.02692,3.01521 7.3125,4.0625 2.46931,1.13147 5.75213,2.15475 9.53125,3.9375 -1.20728,-1.2584 -7.20154,-3.3957 -9.09375,-4.21875 -1.89217,-0.82304 -4.09666,-1.9305 -6.90625,-3.78125 -2.80958,-1.85075 -3.59295,-2.43932 -5.96875,-3.65625 -2.37578,-1.21691 -4.11321,-1.93885 -6.5625,-2.46875 z"
5374 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7301-5);enable-background:new" />
5375 <path
5376 inkscape:connector-curvature="0"
5377 id="path8187-7"
5378 d="m 926.09375,-257.375 c 1.90772,0.59745 4.55348,1.66384 6.125,2.6875 1.5715,1.02365 2.87022,1.43971 5.5,3.28125 2.60291,1.82273 5.02887,2.9722 7.3125,4 2.4672,1.11041 5.75535,2.09323 9.53125,3.84375 -1.20623,-1.2481 -7.1719,-3.31809 -9.0625,-4.125 -1.89058,-0.8069 -4.10242,-1.89104 -6.90625,-3.6875 -2.80385,-1.79644 -3.62704,-2.40251 -6,-3.59375 -2.37297,-1.19124 -4.05362,-1.90283 -6.5,-2.40625 z"
5379 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7305-4);enable-background:new" />
5380 <path
5381 inkscape:connector-curvature="0"
5382 id="path8189-3"
5383 d="m 894.90625,-253.5625 c 1.90213,0.55355 4.58701,1.58887 6.15625,2.59375 1.56923,1.00487 2.87401,1.40864 5.5,3.21875 2.59912,1.79164 5.00034,2.87189 7.28125,3.875 2.46428,1.08374 5.75984,2.04029 9.53125,3.75 -1.2048,-1.23507 -7.17416,-3.24478 -9.0625,-4.03125 -1.88832,-0.78647 -4.0752,-1.8308 -6.875,-3.59375 -2.79977,-1.76294 -3.59919,-2.36836 -5.96875,-3.53125 -2.36957,-1.16288 -4.12325,-1.83412 -6.5625,-2.28125 z"
5384 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7309-9);enable-background:new" />
5385 <path
5386 inkscape:connector-curvature="0"
5387 id="path8191-2"
5388 d="m 863.71875,-248.65625 c 1.88062,0.42909 4.50427,1.38038 6.0625,2.3125 1.55823,0.93211 2.85233,1.25776 5.46875,3 2.58971,1.72444 4.98067,2.70802 7.25,3.625 2.45176,0.99069 5.73959,1.87707 9.5,3.5 -1.20131,-1.20734 -7.15249,-3.06609 -9.03125,-3.78125 -1.87875,-0.71517 -4.0854,-1.68442 -6.875,-3.375 -2.78963,-1.69057 -3.58461,-2.22822 -5.9375,-3.28125 -2.35292,-1.05301 -4.02584,-1.71248 -6.4375,-2 z"
5389 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7313-2);enable-background:new" />
5390 <path
5391 inkscape:connector-curvature="0"
5392 id="path8193-6"
5393 d="m 833.15625,-241.375 c 1.84836,0.29644 4.46945,0.97632 6,1.78125 1.53058,0.80493 2.81374,1.05573 5.375,2.53125 2.53504,1.46046 4.89068,2.32509 7.125,3.0625 2.41399,0.79668 5.65711,1.46689 9.375,2.84375 -1.18771,-1.12873 -7.08772,-2.58975 -8.9375,-3.15625 -1.84977,-0.5665 -4.00342,-1.37392 -6.75,-2.84375 -2.74657,-1.46983 -3.50136,-1.92028 -5.8125,-2.78125 -2.31115,-0.86095 -4.00471,-1.32009 -6.375,-1.4375 z"
5394 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7317-7);enable-background:new" />
5395 <path
5396 inkscape:connector-curvature="0"
5397 id="path8195-5"
5398 d="m 802.90625,-232.3125 c 1.8222,0.21127 4.36576,0.80057 5.875,1.53125 1.50925,0.73066 2.75568,0.92998 5.28125,2.28125 2.49976,1.33746 4.83154,2.04843 7.03125,2.65625 2.37653,0.65667 5.56464,1.07288 9.21875,2.1875 -1.16735,-1.04496 -6.92888,-2.10329 -8.75,-2.5625 -1.82111,-0.45921 -3.95225,-1.12696 -6.65625,-2.4375 -2.70403,-1.31052 -3.47106,-1.7199 -5.75,-2.46875 -2.27895,-0.74883 -3.91325,-1.17931 -6.25,-1.1875 z"
5399 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7321-5);enable-background:new" />
5400 <path
5401 inkscape:connector-curvature="0"
5402 id="path8197-2"
5403 d="m 773.1875,-222.1875 c 1.81109,0.1787 4.32059,0.66506 5.8125,1.34375 1.49194,0.67869 2.7534,0.79822 5.25,2.0625 2.47107,1.25138 4.79005,1.89614 6.96875,2.4375 2.35387,0.58488 5.49134,0.89752 9.09375,1.84375 -1.15084,-0.99116 -6.85251,-1.7833 -8.65625,-2.1875 -1.80372,-0.4042 -3.91553,-1.02116 -6.59375,-2.25 -2.67818,-1.22884 -3.40345,-1.61089 -5.65625,-2.28125 -2.25279,-0.67034 -3.89627,-1.00232 -6.21875,-0.96875 z"
5404 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7329-8);enable-background:new" />
5405 <path
5406 inkscape:connector-curvature="0"
5407 id="path8199-6"
5408 d="m 743.5625,-211.1875 c 1.79281,0.12911 4.27313,0.54965 5.75,1.1875 1.4769,0.63785 2.7161,0.74156 5.1875,1.9375 2.44618,1.18372 4.72054,1.74666 6.875,2.21875 2.32767,0.51003 5.4196,0.68064 9,1.5625 -1.14379,-0.9706 -6.74759,-1.59065 -8.53125,-1.9375 -1.78367,-0.34684 -3.88285,-0.88756 -6.53125,-2.03125 -2.64841,-1.14368 -3.39495,-1.51631 -5.625,-2.125 -2.23008,-0.60868 -3.82594,-0.90966 -6.125,-0.8125 z"
5409 style="display:inline;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;filter:url(#filter7325-2);enable-background:new" />
5410 </g>
5411 </g>
5412 <path
5413 inkscape:connector-curvature="0"
5414 style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
5415 d="m 863.87812,475.6679 c 1.64212,-3.218 3.51781,-5.73529 4.86136,-9.84898 0.79872,-3.65789 3.31204,-2.03073 7.26047,-8.3969 1.40193,-2.2395 5.47653,0.39136 8.9651,-2.39911 1.27072,-0.80319 2.88488,-0.40431 4.48256,-0.0631 3.76539,1.31896 5.82576,3.70355 8.33376,5.80837 6.13906,5.97023 20.53414,7.94327 23.48604,6.31346 1.43405,-2.90474 7.88128,-5.40888 12.37437,-11.11168 0.74811,-1.12267 11.72936,-8.74446 14.64721,-6.56599"
5416 id="path8201-5"
5417 sodipodi:nodetypes="ccccccccc" />
5418 <path
5419 inkscape:connector-curvature="0"
5420 style="display:inline;opacity:1;fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
5421 d="m 888.50059,465.25071 c 7.36341,-3.23297 13.8109,-8.9084 20.70813,-13.38452 3.31057,-1.96954 6.86983,3.21601 10.796,3.59866 2.29773,-0.21813 3.7129,1.20259 5.68211,1.6415 5.15636,1.31779 2.39793,3.86488 9.97526,6.43972 6.15561,1.7204 8.9074,-6.79847 14.89975,-7.3236 4.87739,-0.50299 8.09892,-0.31603 11.61675,-0.25254 3.92696,0.13889 4.07855,-3.4976 6.06092,-5.3033 2.98056,-2.80522 7.15561,-1.84972 10.14485,-4.7409 1.01754,-1.38468 1.95458,-3.01085 2.73459,-5.10809 0.88201,-2.00034 3.04006,0.30598 4.79823,1.26269"
5422 id="path8203-8"
5423 sodipodi:nodetypes="ccccccccccc" />
5424 <path
5425 inkscape:connector-curvature="0"
5426 style="display:inline;overflow:visible;visibility:visible;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter9048-9);enable-background:accumulate"
5427 d="m 403.27922,1056.3058 56.56854,-42.4264 72.12489,14.1421 -46.66904,52.3259 -53.74012,7.0711 -28.28427,-31.1127 z"
5428 id="path8994-7" />
5429 <path
5430 inkscape:connector-curvature="0"
5431 style="display:inline;opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
5432 d="m 542.27183,1060.5719 c -1.40727,18.8012 -1.1449,32.751 2.08174,49.3033 3.22666,16.5523 16.40609,45.9073 20.33441,63.1837 3.92621,17.2671 2.69413,38.3097 -12.45944,51.1483 -15.31761,12.9774 -42.05128,21.5989 -67.83231,15.7337 -25.78105,-5.8652 -69.54907,-49.2234 -88.59019,-70.2283 -19.11214,-21.0833 -63.76086,-93.8506 -77.93853,-124.2758 -14.17767,-30.4251 -12.65961,-36.7186 -8.11972,-45.52972 -9.36672,-24.5205 -12.41371,-50.06681 -33.71245,-75.57664 30.32547,3.11444 43.88028,26.95633 60.12568,47.13975 -5.52989,-48.07603 -18.05471,-64.4165 -28.37395,-90.7243 29.9943,6.08165 50.57936,31.87239 63.97979,72.7125 9.55415,-3.91791 18.23776,-9.37294 30.18741,-9.0612 -11.2975,-41.6958 -17.94946,-69.91584 -36.68725,-101.06994 53.44196,5.67033 83.65702,80.63932 78.97142,87.9608 9.97797,-2.24399 19.00565,-6.53038 30.43653,-5.65167 -11.24897,-38.34702 -21.04781,-76.8679 -3.65971,-118.64819 0,0 48.28678,65.43688 54.38966,85.80578 6.10287,20.3689 1.51881,38.70051 1.51881,38.70051 0,0 16.95957,31.0853 20.29392,51.09414 3.3731,20.24138 -3.53269,59.10328 -4.94582,77.98328 z"
5433 id="path4189-9"
5434 sodipodi:nodetypes="czzzzzzcccccccccczczz" />
5435 <path
5436 inkscape:connector-curvature="0"
5437 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter3587-1);enable-background:accumulate"
5438 d="m 719.5,738.69519 18.31177,15.43196 44.41103,-15.38821 23.2772,-25.54375 11.46397,19.22065 30.67161,12.78354 25.09737,5.72837 L 892,723.19519 908.02309,747.02126 947,752.19519 l 10.24541,-6.19852 6.75471,8.6982 25.49988,11.00032 2,-40.5 L 955.94866,710.6576 923.45591,689.1305 883.0038,677.66492 861.69668,662.13148 840,685.19519 755.02878,638.61208 722,676.69519 l -2.5,62 z"
5439 id="path4191-6"
5440 sodipodi:nodetypes="cccccccccccccccccccccc"
5441 clip-path="url(#clipPath3631-6)"
5442 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,995.28646,23.53493)" />
5443 <path
5444 inkscape:connector-curvature="0"
5445 style="display:inline;opacity:0.58775509;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3898-1);enable-background:new"
5446 d="m 584,696.5 -6.5625,17.15625 c 0,0 -7.81152,20.36488 -15.6875,43.65625 -3.93799,11.64568 -7.88302,24.04145 -10.9375,35.125 -3.05448,11.08355 -5.33586,20.37986 -5.5,28.28125 -0.39807,19.16196 5.74653,34.8883 8.9375,41.75 -0.77153,3.55523 -1.99137,9.45432 -3.34375,18.09375 -1.92042,12.26821 -3.71827,27.15441 -2.375,39.875 1.38209,13.08835 6.81222,28.18765 12.59375,43.03125 5.78153,14.8436 12.05435,29.22711 15.21875,38.03125 6.63206,18.4519 9.99296,31.5763 11.3125,48.5 0.58135,7.4561 -0.24227,20.336 -1.25,33.375 -1.00773,13.039 -2.18661,26.3014 -1.6875,36.9688 0.98911,21.1398 9.32798,46.8347 33.375,57.9374 22.77483,10.5154 55.32682,11.7022 83.4375,-3.4374 16.15992,-8.7034 30.07634,-27.0976 43.375,-46.9063 13.29866,-19.8087 24.96917,-41.0534 31.9375,-54.9063 15.35292,-30.5212 39.39353,-115.46418 45.625,-152.7187 3.01859,-18.04653 3.92166,-29.06555 2.625,-38.03125 -0.97853,-6.76604 -3.82819,-12.1474 -6.875,-16.21875 2.04274,-27.50791 -0.73207,-51.36878 11.96875,-79.40625 L 840.75,763.375 l -23.8125,9.3125 c -17.48975,6.83753 -28.90164,19.04536 -36.59375,32.0625 -0.32251,0.54577 -0.56314,1.10776 -0.875,1.65625 0.22203,-22.51521 4.40784,-37.63759 6.59375,-58.6875 l 1.96875,-19 L 771,737.375 c -30.59449,15.55571 -45.69489,48.19321 -49.71875,90.21875 -4.24532,-0.62547 -8.8314,-1.01965 -13.8125,-0.84375 -0.29149,-39.18036 -0.39629,-67.03685 8.59375,-99.375 l 5.59375,-20.125 -19.4375,7.65625 c -30.90937,12.20394 -47.85954,41.93073 -56.625,68.375 -4.38273,13.22214 -6.74582,25.80121 -7.59375,35.9375 -0.23203,2.77373 -0.31106,5.31132 -0.3125,7.71875 -3.24187,-0.0364 -6.42052,0.13589 -10.0625,0.5 0.0416,-39.00473 -3.48424,-79.75415 -32.28125,-116.5 L 584,696.5 Z m 5.8125,43.8125 c 16.80691,30.64383 17.47451,63.96728 16.9375,99.75 l -0.21875,15.0625 12.03493,-6.53921 c 8.66205,-3.13302 19.56058,-0.22752 31.93382,-0.83579 l 14.67465,9.3566 -6.3309,-25.7941 c -0.0897,-0.22997 -0.22046,-0.41669 -0.25,-0.71875 -0.19951,-2.03986 -0.22232,-5.47307 0.125,-9.625 0.69464,-8.30386 2.78957,-19.58524 6.625,-31.15625 5.15532,-15.55294 13.48801,-31.19248 25.125,-42.53125 -4.68381,28.63798 -3.21559,60.25934 -3.01164,95.80514 l -2.76593,13.26164 15.49632,-7.59803 c 9.0294,-2.75771 17.18897,-0.34996 29.28125,1.09375 l 13.24632,9.44423 L 741.09375,840 c 1.44793,-30.97177 8.22149,-53.67808 20.71875,-68.875 -2.98688,19.77884 -5.43043,41.7848 0.3125,78.34375 l 1.06552,6.37318 -2.93815,11.51685 10.61711,-8.16818 9.18973,10.22198 -1.54828,-10.4636 L 781.9375,852 c 5.70102,-13.21149 10.17282,-26.21337 16.34375,-36.65625 0.95986,-1.62434 2.03153,-3.06436 3.0625,-4.5625 -3.68066,21.15535 -2.42716,40.20815 -4.09375,57.78125 l -4.68014,7.80698 7.39889,0.22427 c 3.22005,3.48361 3.8675,3.85068 4.5625,8.65625 0.695,4.80557 0.31862,14.40035 -2.5625,31.625 -5.56799,33.28792 -31.84562,77.83981 -43.7404,101.4864 -6.60491,13.1304 -18.52833,57.4859 -31.12335,76.2465 -12.59502,18.7605 -28.53137,39.7673 -37.17204,44.4209 -21.49052,11.5742 -44.55594,25.5059 -60.61889,18.0895 -14.37486,-6.637 -23.03969,-21.1927 -23.81407,-37.7433 -0.38311,-8.188 0.61279,-21.3092 1.625,-34.4062 1.01221,-13.0971 11.28891,-22.5708 15.42339,-36.5626 5.37229,-18.1808 -1.44687,-36.5944 -12.5,-53.93745 -6.48655,-10.17778 -23.9768,-24.2579 -29.54839,-38.5625 -5.57159,-14.3046 -10.36751,-29.00315 -11.28125,-37.65625 -0.92621,-8.77113 0.4225,-23.02502 2.21875,-34.5 1.79625,-11.47497 3.84375,-20.28125 3.84375,-20.28125 l 9.42278,-3.6152 -10.48528,-3.8848 c 0,0 -8.49889,-15.3101 -8.09375,-34.8125 0.0711,-3.42316 1.83626,-12.72805 4.71875,-23.1875 2.88249,-10.45945 6.76466,-22.55271 10.625,-33.96875 3.04439,-9.00308 5.78063,-16.60345 8.34375,-23.6875 z"
5447 id="path4193-0"
5448 clip-path="url(#clipPath3677-0)"
5449 sodipodi:nodetypes="ccssscsssssssssssssccccscccccccccsscccccccccccssscccccccccccccccsccccssssssssssssscccsssc"
5450 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,822.28931,10.93589)" />
5451 <g
5452 style="display:inline;enable-background:new"
5453 id="g3617-4"
5454 clip-path="url(#clipPath3622-5)"
5455 transform="translate(276,136)">
5456 <path
5457 inkscape:connector-curvature="0"
5458 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,-52.200498,74.09707)"
5459 id="path4195-1"
5460 d="m -15.66751,843.48852 -49.49748,-15.55635 -26.87005,52.3259 41.01219,45.25484 49.49747,-38.18377 -14.14213,-43.84062 z"
5461 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter9024-1);enable-background:accumulate" />
5462 <path
5463 inkscape:connector-curvature="0"
5464 sodipodi:nodetypes="ccccccccccccc"
5465 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,-46.92842,75.511284)"
5466 id="path4197-0"
5467 d="m 118.70648,859.93048 -55.154328,-46.66904 -43.84062,36.76955 33.94113,53.74011 -13.596814,85.46203 -39.44536579,28.29217 -41.01220021,11.3137 -2.82842,46.669 56.56854,25.4559 18.943987,-69.65 23.45655,-58.85663 46.347541,-72.61491 16.62,-39.91188 z"
5468 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter9020-8);enable-background:accumulate" />
5469 </g>
5470 <path
5471 inkscape:connector-curvature="0"
5472 style="display:inline;overflow:visible;visibility:visible;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter9044-0);enable-background:accumulate"
5473 d="m -70.82184,932.58397 60.81118,-26.87005 100.40916,31.1127 -63.63961,31.11269 -82.02438,-16.97056 -15.55635,-18.38478 z"
5474 id="path4199-4"
5475 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,229.07158,211.51128)" />
5476 <path
5477 inkscape:connector-curvature="0"
5478 style="display:inline;opacity:0.58775509;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter4105-2);enable-background:new"
5479 d="m 583.0625,715.75 c -12.10609,34.44974 -26.7145,68.53333 -31.75,104.84375 -0.83208,14.92867 4.58915,29.15943 8.84375,43.0625 -5.91624,27.20126 -10.13681,56.89995 1.15625,83.125 13.51717,38.16085 35.00147,75.68215 32.42279,117.46825 -0.9483,29.2942 -9.01444,60.9941 5.38971,88.2817 10.19864,19.3348 33.13956,27.3117 53.96785,27.6676 27.86219,1.1741 56.46261,-11.6216 72.0009,-35.2613 22.59549,-29.3717 41.80051,-61.4973 55.23865,-96.0598 16.89053,-45.506 29.6718,-92.56072 37.93402,-140.3989 1.8244,-12.94106 3.10108,-27.46985 -4.57892,-38.82255 -3.43115,-7.33632 0.0421,-15.56014 -0.68457,-23.30977 0.674,-24.99466 4.01232,-50.66376 16.65332,-72.59648 -17.73313,6.4446 -35.07268,16.55971 -44.00307,33.86425 -3.93508,6.70955 -7.60482,13.57413 -11.37193,20.38575 -3.54999,-30.01408 3.71963,-59.64828 6.78125,-89.28125 -20.16604,9.05463 -36.87672,25.65522 -44.17495,46.682 -6.30463,15.58003 -8.80222,32.31718 -10.26255,49.03675 -8.25334,-1.51925 -16.68447,-2.10155 -25.0625,-1.5 -0.96308,-38.69787 -0.46696,-79.40715 10.96875,-115.90625 -18.68113,6.21776 -35.16621,18.73551 -45.62803,35.38723 -13.85254,20.87979 -21.2614,45.75395 -23.05947,70.61277 0.58534,4.32454 -0.0613,11.84009 -6.34375,9.875 -5.33118,0.0176 -10.62908,0.67883 -15.9375,1.09375 1.14784,-39.38148 -3.34144,-81.6282 -27.0625,-114.21875 -3.06071,-3.63717 -5.63685,-7.68438 -8.625,-11.34375 -0.9375,2.4375 -1.875,4.875 -2.8125,7.3125 z m 7.75,13.84375 c 18.56527,29.29629 22.4825,64.82012 22.125,98.875 0.20409,5.17526 -0.51656,11.8292 0.125,16.0625 12.31856,-6.10275 26.73912,-2.4399 39.78125,-2.1875 2.31712,1.22325 3.1921,1.65243 1.90625,-1.40625 -4.16455,-13.95285 -1.84828,-28.613 1.80504,-42.40764 6.36687,-26.29064 20.62828,-51.08798 42.81996,-67.02986 -8.61709,37.23706 -5.71658,76.56161 -6.09375,113.96875 12.25344,-6.9099 27.27879,-3.44613 40.03125,-0.25 3.39222,3.5348 2.28935,-0.72948 2.1875,-3.8125 -0.48309,-21.37058 4.13133,-43.06963 13.6875,-62.15625 5.96266,-10.68727 14.24338,-19.80379 22.4375,-28.875 -7.87156,33.8381 -9.2029,69.33593 -2.71875,103.5 1.72485,-1.41118 4.60681,-0.45414 5.65625,-0.375 9.68369,-21.23682 16.35112,-45.38062 34.89016,-60.74185 1.87329,-0.37122 -1.44818,8.52495 -1.48391,11.8981 -3.53488,21.84581 -7.17516,44.14234 -8.78421,66.21911 -8.78379,2.34171 2.84835,2.32354 3.46875,4.0625 7.92311,10.5658 4.66299,24.40472 3.63165,36.35334 -7.06405,45.03355 -22.14231,87.36194 -35.95355,130.6798 -12.07476,32.9493 -27.3742,58.8525 -47.88808,87.2015 -10.95257,13.5514 -23.24472,27.8513 -40.84375,32.5 -20.15601,6.2413 -44.20676,10.8769 -62.59956,0.046 -17.28966,-12.3414 -21.02393,-35.7089 -19.26226,-55.6864 0.0488,-15.8262 4.93886,-28.5121 4.4106,-43.4918 -0.53824,-15.2629 -2.29135,-30.5647 -6.54261,-46.8663 -4.25126,-16.30162 -9.04325,-24.91794 -16.11906,-41.57338 -7.24111,-17.04456 -15.07015,-36.74863 -18.20542,-56.28842 -1.74948,-18.62714 2.89171,-37.12262 5.78125,-55.25 3.29623,-2.83696 -1.59799,-5.19659 -2.3125,-8.1875 -7.60113,-17.01508 -8.40747,-36.7749 -2.74234,-54.55998 7.1302,-25.0723 15.76087,-49.63241 24.67984,-74.12752 0.70833,1.30208 1.41667,2.60417 2.125,3.90625 z"
5480 id="path4201-8"
5481 sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccczzzcccccc"
5482 clip-path="url(#clipPath4177-4)"
5483 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,822.28931,10.93589)" />
5484 <path
5485 inkscape:connector-curvature="0"
5486 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter4130-8);enable-background:accumulate"
5487 d="m 735.05635,733.03834 2.75542,21.08881 44.41103,-15.38821 4.85063,-22.38975 -3.93617,-22.05222 -22.45163,-36.59301 -8.28004,30.30494 -17.34924,45.02944 z"
5488 id="path4203-7"
5489 sodipodi:nodetypes="cccccccc"
5490 clip-path="url(#clipPath3631-6)"
5491 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,995.28646,23.53493)" />
5492 <path
5493 inkscape:connector-curvature="0"
5494 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter4141-2);enable-background:accumulate"
5495 d="m 831.81321,730.29452 15.82237,14.90486 20.85473,2.89994 -1.59029,-39.92598 8.32561,-30.50842 -7.16499,-6.34106 -21.69669,20.9424 -14.55074,38.02826 z"
5496 id="path4205-0"
5497 sodipodi:nodetypes="cccccccc"
5498 clip-path="url(#clipPath3631-6)"
5499 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,995.28646,23.53493)" />
5500 <g
5501 id="g8317-8"
5502 style="display:inline;filter:url(#filter8333-2);enable-background:new"
5503 clip-path="url(#clipPath8338-4)"
5504 transform="translate(276,136)">
5505 <path
5506 inkscape:connector-curvature="0"
5507 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,719.28646,-112.46507)"
5508 clip-path="none"
5509 sodipodi:nodetypes="ccccc"
5510 id="path4209-6"
5511 d="m 964.00012,754.69487 18.42881,7.46479 9.07107,-36.96447 -14.87031,4.83886 -12.62957,24.66082 z"
5512 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
5513 <rect
5514 y="757.19519"
5515 x="-55"
5516 height="177"
5517 width="182"
5518 id="rect8315-2"
5519 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
5520 </g>
5521 <g
5522 id="g8346-4"
5523 style="display:inline;filter:url(#filter8354-2);enable-background:new"
5524 clip-path="url(#clipPath8359-0)"
5525 transform="translate(276,136)">
5526 <path
5527 inkscape:connector-curvature="0"
5528 transform="matrix(-0.9045327,0.2506626,0.2506626,0.9045327,719.28646,-112.46507)"
5529 clip-path="none"
5530 sodipodi:nodetypes="ccccccc"
5531 id="path4207-7"
5532 d="m 910.14441,746.31415 32.61295,5.17393 -0.36119,-23.87619 7.18853,-29.68221 -8.45112,-5.26365 -21.82194,26.51077 -9.16723,27.13735 z"
5533 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
5534 <rect
5535 y="696.19519"
5536 x="-22"
5537 height="176"
5538 width="165"
5539 id="rect8344-9"
5540 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
5541 </g>
5542 <path
5543 inkscape:connector-curvature="0"
5544 style="display:inline;opacity:1;fill:#ada469;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new"
5545 d="m 1036.164,1071.8338 c 6.7941,18.9028 10.4937,33.2997 11.8903,51.2119 1.3966,17.9123 -3.7827,51.8008 -2.9005,70.6561 0.8818,18.8452 8.1337,40.099 27.3446,48.9689 19.4189,8.9658 49.3193,10.2113 74.1199,-3.1456 24.8006,-13.357 57.401,-70.3255 70.9742,-97.3087 13.6239,-27.0839 38.7611,-114.4974 44.6608,-149.76859 5.8998,-35.27121 2.5506,-41.30077 -4.6174,-49.05549 2.6403,-27.84015 -1.4998,-54.93543 13.1096,-87.18618 -30.249,11.8257 -37.3823,40.1607 -48.3189,65.50508 -8.0009,-50.93293 0.2092,-71.27319 3.3189,-101.21936 -29.0647,14.77791 -42.8615,47.11402 -45,92.85714 -10.9239,-1.3042 -21.3914,-4.43423 -33.5714,-0.71429 -0.264,-46.02334 -1.4635,-76.88941 8.9106,-114.20649 -53.2554,21.02686 -62.9472,106.5941 -56.0535,112.77792 -10.8828,0.535 -21.371,-1.2973 -32.8571,2.85715 0.6389,-42.57135 -0.2605,-84.90861 -30,-122.85715 0,0 -30.958,80.92234 -31.4286,103.57143 -0.4705,22.64909 9.4516,40.16588 9.4516,40.16588 0,0 -8.568,36.74051 -6.2986,58.23223 2.2959,21.74142 20.4429,59.67622 27.2655,78.65812 z"
5546 id="path8848-3"
5547 sodipodi:nodetypes="czzzzzzcccccccccczczz" />
5548 <path
5549 inkscape:connector-curvature="0"
5550 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter3587-1);enable-background:accumulate"
5551 d="m 719.5,738.69519 18.31177,15.43196 44.41103,-15.38821 23.2772,-25.54375 11.46397,19.22065 30.67161,12.78354 25.09737,5.72837 L 892,723.19519 908.02309,747.02126 947,752.19519 l 10.24541,-6.19852 6.75471,8.6982 25.49988,11.00032 2,-40.5 L 955.94866,710.6576 923.45591,689.1305 883.0038,677.66492 861.69668,662.13148 840,685.19519 755.02878,638.61208 722,676.69519 l -2.5,62 z"
5552 id="path3635-9"
5553 sodipodi:nodetypes="cccccccccccccccccccccc"
5554 clip-path="url(#clipPath3631-6)"
5555 transform="translate(276,136)" />
5556 <path
5557 inkscape:connector-curvature="0"
5558 transform="translate(450.03125,73.843964)"
5559 style="display:inline;opacity:0.58775509;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter3898-1);enable-background:new"
5560 d="m 584,696.5 -6.5625,17.15625 c 0,0 -7.81152,20.36488 -15.6875,43.65625 -3.93799,11.64568 -7.88302,24.04145 -10.9375,35.125 -3.05448,11.08355 -5.33586,20.37986 -5.5,28.28125 -0.39807,19.16196 5.74653,34.8883 8.9375,41.75 -0.77153,3.55523 -1.99137,9.45432 -3.34375,18.09375 -1.92042,12.26821 -3.71827,27.15441 -2.375,39.875 1.38209,13.08835 6.81222,28.18765 12.59375,43.03125 5.78153,14.8436 12.05435,29.22711 15.21875,38.03125 6.63206,18.4519 9.99296,31.5763 11.3125,48.5 0.58135,7.4561 -0.24227,20.336 -1.25,33.375 -1.00773,13.039 -2.18661,26.3014 -1.6875,36.9688 0.98911,21.1398 9.32798,46.8347 33.375,57.9374 22.77483,10.5154 55.32682,11.7022 83.4375,-3.4374 16.15992,-8.7034 30.07634,-27.0976 43.375,-46.9063 13.29866,-19.8087 24.96917,-41.0534 31.9375,-54.9063 15.35292,-30.5212 39.39353,-115.46418 45.625,-152.7187 3.01859,-18.04653 3.92166,-29.06555 2.625,-38.03125 -0.97853,-6.76604 -3.82819,-12.1474 -6.875,-16.21875 2.04274,-27.50791 -0.73207,-51.36878 11.96875,-79.40625 L 840.75,763.375 l -23.8125,9.3125 c -17.48975,6.83753 -28.90164,19.04536 -36.59375,32.0625 -0.32251,0.54577 -0.56314,1.10776 -0.875,1.65625 0.22203,-22.51521 4.40784,-37.63759 6.59375,-58.6875 l 1.96875,-19 L 771,737.375 c -30.59449,15.55571 -45.69489,48.19321 -49.71875,90.21875 -4.24532,-0.62547 -8.8314,-1.01965 -13.8125,-0.84375 -0.29149,-39.18036 -0.39629,-67.03685 8.59375,-99.375 l 5.59375,-20.125 -19.4375,7.65625 c -30.90937,12.20394 -47.85954,41.93073 -56.625,68.375 -4.38273,13.22214 -6.74582,25.80121 -7.59375,35.9375 -0.23203,2.77373 -0.31106,5.31132 -0.3125,7.71875 -3.24187,-0.0364 -6.42052,0.13589 -10.0625,0.5 0.0416,-39.00473 -3.48424,-79.75415 -32.28125,-116.5 L 584,696.5 Z m 5.8125,43.8125 c 16.80691,30.64383 17.47451,63.96728 16.9375,99.75 l -0.21875,15.0625 12.03493,-6.53921 c 8.66205,-3.13302 19.56058,-0.22752 31.93382,-0.83579 l 14.67465,9.3566 -6.3309,-25.7941 c -0.0897,-0.22997 -0.22046,-0.41669 -0.25,-0.71875 -0.19951,-2.03986 -0.22232,-5.47307 0.125,-9.625 0.69464,-8.30386 2.78957,-19.58524 6.625,-31.15625 5.15532,-15.55294 13.48801,-31.19248 25.125,-42.53125 -4.68381,28.63798 -3.21559,60.25934 -3.01164,95.80514 l -2.76593,13.26164 15.49632,-7.59803 c 9.0294,-2.75771 17.18897,-0.34996 29.28125,1.09375 l 13.24632,9.44423 L 741.09375,840 c 1.44793,-30.97177 8.22149,-53.67808 20.71875,-68.875 -2.98688,19.77884 -5.43043,41.7848 0.3125,78.34375 l 1.06552,6.37318 -2.93815,11.51685 10.61711,-8.16818 9.18973,10.22198 -1.54828,-10.4636 L 781.9375,852 c 5.70102,-13.21149 10.17282,-26.21337 16.34375,-36.65625 0.95986,-1.62434 2.03153,-3.06436 3.0625,-4.5625 -3.68066,21.15535 -2.42716,40.20815 -4.09375,57.78125 l -4.68014,7.80698 7.39889,0.22427 c 3.22005,3.48361 3.8675,3.85068 4.5625,8.65625 0.695,4.80557 0.31862,14.40035 -2.5625,31.625 -5.56799,33.28792 -31.79272,123.1659 -43.6875,146.8125 -6.60491,13.1304 -18.02998,33.8957 -30.625,52.6563 -12.59502,18.7605 -27.35933,35.5338 -36,40.1874 -21.49052,11.5742 -48.7808,10.2602 -64.84375,2.8438 -14.37486,-6.637 -20.53812,-23.4494 -21.3125,-40 -0.38311,-8.188 0.61279,-21.3092 1.625,-34.4062 1.01221,-13.0971 11.28891,-22.5708 15.42339,-36.5626 5.37229,-18.1808 -1.44687,-36.5944 -12.5,-53.93745 -6.48655,-10.17778 -23.9768,-24.2579 -29.54839,-38.5625 -5.57159,-14.3046 -10.36751,-29.00315 -11.28125,-37.65625 -0.92621,-8.77113 0.4225,-23.02502 2.21875,-34.5 1.79625,-11.47497 3.84375,-20.28125 3.84375,-20.28125 l 9.42278,-3.6152 -10.48528,-3.8848 c 0,0 -8.49889,-15.3101 -8.09375,-34.8125 0.0711,-3.42316 1.83626,-12.72805 4.71875,-23.1875 2.88249,-10.45945 6.76466,-22.55271 10.625,-33.96875 3.04439,-9.00308 5.78063,-16.60345 8.34375,-23.6875 z"
5561 id="path3669-2"
5562 clip-path="url(#clipPath3677-0)"
5563 sodipodi:nodetypes="ccssscsssssssssssssccccscccccccccsscccccccccccssscccccccccccccccsccccssssssssssssscccsssc" />
5564 <g
5565 id="g3628-8"
5566 clip-path="url(#clipPath3636-90)"
5567 transform="translate(276,136)">
5568 <path
5569 inkscape:connector-curvature="0"
5570 id="path8988-3"
5571 d="m 824.48651,818.48242 -49.49748,-15.55635 -26.87005,52.3259 41.01219,45.25484 49.49747,-38.18377 -14.14213,-43.84062 z"
5572 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter9024-1);enable-background:accumulate" />
5573 <path
5574 inkscape:connector-curvature="0"
5575 id="path8990-0"
5576 d="m 964.49365,855.25197 -55.15433,-46.66904 -43.84062,36.76955 33.94113,53.74011 7.07106,66.46804 -50.91168,35.35537 -41.0122,11.3137 -2.82842,46.669 56.56854,25.4559 63.63961,-76.3676 24.04163,-94.75227 8.48528,-57.98276 z"
5577 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter9020-8);enable-background:accumulate" />
5578 </g>
5579 <path
5580 inkscape:connector-curvature="0"
5581 style="display:inline;overflow:visible;visibility:visible;opacity:0.25;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter9044-0);enable-background:accumulate"
5582 d="m 1045.3322,1043.5779 60.8112,-26.8701 100.4091,31.1127 -63.6396,31.1127 -82.0244,-16.9706 -15.5563,-18.3847 z"
5583 id="path8992-1" />
5584 <path
5585 inkscape:connector-curvature="0"
5586 transform="translate(450.03125,73.843964)"
5587 style="display:inline;opacity:0.58775509;fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:20.79999924;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter4185-1);enable-background:new"
5588 d="m 583.0625,715.75 c -12.10609,34.44974 -26.7145,68.53333 -31.75,104.84375 -0.83208,14.92867 4.58915,29.15943 8.84375,43.0625 -5.91624,27.20126 -10.13681,56.89995 1.15625,83.125 13.51717,38.16085 35.00147,75.68215 32.42279,117.46825 -0.9483,29.2942 -9.01444,60.9941 5.38971,88.2817 10.19864,19.3348 33.13956,27.3117 53.96785,27.6676 27.86219,1.1741 56.46261,-11.6216 72.0009,-35.2613 22.59549,-29.3717 41.80051,-61.4973 55.23865,-96.0598 16.89053,-45.506 29.6718,-92.56072 37.93402,-140.3989 1.8244,-12.94106 3.10108,-27.46985 -4.57892,-38.82255 -3.43115,-7.33632 0.0421,-15.56014 -0.68457,-23.30977 0.674,-24.99466 4.01232,-50.66376 16.65332,-72.59648 -17.73313,6.4446 -35.07268,16.55971 -44.00307,33.86425 -3.93508,6.70955 -7.60482,13.57413 -11.37193,20.38575 -3.54999,-30.01408 3.71963,-59.64828 6.78125,-89.28125 -20.16604,9.05463 -36.87672,25.65522 -44.17495,46.682 -6.30463,15.58003 -8.80222,32.31718 -10.26255,49.03675 -8.25334,-1.51925 -16.68447,-2.10155 -25.0625,-1.5 -0.96308,-38.69787 -0.46696,-79.40715 10.96875,-115.90625 -18.68113,6.21776 -35.16621,18.73551 -45.62803,35.38723 -13.85254,20.87979 -21.2614,45.75395 -23.05947,70.61277 0.58534,4.32454 -0.0613,11.84009 -6.34375,9.875 -5.33118,0.0176 -10.62908,0.67883 -15.9375,1.09375 1.14784,-39.38148 -3.34144,-81.6282 -27.0625,-114.21875 -3.06071,-3.63717 -5.63685,-7.68438 -8.625,-11.34375 -0.9375,2.4375 -1.875,4.875 -2.8125,7.3125 z m 7.75,13.84375 c 18.56527,29.29629 22.4825,64.82012 22.125,98.875 0.20409,5.17526 -0.51656,11.8292 0.125,16.0625 12.31856,-6.10275 26.73912,-2.4399 39.78125,-2.1875 2.31712,1.22325 3.1921,1.65243 1.90625,-1.40625 -4.16455,-13.95285 -1.84828,-28.613 1.80504,-42.40764 6.36687,-26.29064 20.62828,-51.08798 42.81996,-67.02986 -8.61709,37.23706 -5.71658,76.56161 -6.09375,113.96875 12.25344,-6.9099 27.27879,-3.44613 40.03125,-0.25 3.39222,3.5348 2.28935,-0.72948 2.1875,-3.8125 -0.48309,-21.37058 4.13133,-43.06963 13.6875,-62.15625 5.96266,-10.68727 14.24338,-19.80379 22.4375,-28.875 -7.87156,33.8381 -9.2029,69.33593 -2.71875,103.5 1.72485,-1.41118 4.60681,-0.45414 5.65625,-0.375 9.68369,-21.23682 16.35112,-45.38062 34.89016,-60.74185 1.87329,-0.37122 -1.44818,8.52495 -1.48391,11.8981 -3.53488,21.84581 -3.2972,44.17323 -4.90625,66.25 -1.31238,1.37679 2.84835,2.32354 3.46875,4.0625 7.92311,10.5658 3.12294,24.83149 2.0916,36.78011 -7.06405,45.03355 -21.76553,88.37934 -35.57677,131.69714 -12.07476,32.9493 -30.7197,63.08 -51.23358,91.429 -10.95257,13.5514 -23.24472,27.8513 -40.84375,32.5 -20.15601,6.2413 -43.57595,5.1744 -61.96875,-5.6562 -17.28966,-12.3414 -21.02393,-35.7089 -19.26226,-55.6864 0.0488,-15.8262 2.37211,-27.8008 7.91747,-42.8053 5.54535,-15.0045 2.47105,-31.3317 -1.78021,-47.6333 -4.25126,-16.3016 -12.17903,-26.26002 -21.82158,-42.20417 -9.64255,-15.94415 -17.6369,-36.03734 -20.77217,-55.57713 -1.74948,-18.62714 2.89171,-37.12262 5.78125,-55.25 3.29623,-2.83696 -1.59799,-5.19659 -2.3125,-8.1875 -7.60113,-17.01508 -8.40747,-36.7749 -2.74234,-54.55998 7.1302,-25.0723 15.76087,-49.63241 24.67984,-74.12752 0.70833,1.30208 1.41667,2.60417 2.125,3.90625 z"
5589 id="path4149-7"
5590 sodipodi:nodetypes="ccccccccccccccccccccccccccccccccccccccccccccccccccczzzcccccc"
5591 clip-path="url(#clipPath4177-4)" />
5592 <path
5593 inkscape:connector-curvature="0"
5594 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter4130-8);enable-background:accumulate"
5595 d="m 735.05635,733.03834 2.75542,21.08881 44.41103,-15.38821 4.85063,-22.38975 -3.93617,-22.05222 -22.45163,-36.59301 -8.28004,30.30494 -17.34924,45.02944 z"
5596 id="path3902-8"
5597 sodipodi:nodetypes="cccccccc"
5598 clip-path="url(#clipPath3631-6)"
5599 transform="translate(276,136)" />
5600 <path
5601 inkscape:connector-curvature="0"
5602 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;filter:url(#filter4141-2);enable-background:accumulate"
5603 d="m 831.81321,730.29452 15.82237,14.90486 20.85473,2.89994 -1.59029,-39.92598 8.32561,-30.50842 -7.16499,-6.34106 -21.69669,20.9424 -14.55074,38.02826 z"
5604 id="path4135-9"
5605 sodipodi:nodetypes="cccccccc"
5606 clip-path="url(#clipPath3631-6)"
5607 transform="translate(276,136)" />
5608 <g
5609 id="g8367-1"
5610 style="filter:url(#filter8379-0)"
5611 clip-path="url(#clipPath8392-1)"
5612 transform="translate(276,136)">
5613 <path
5614 inkscape:connector-curvature="0"
5615 clip-path="none"
5616 sodipodi:nodetypes="ccccccc"
5617 id="path4145-5"
5618 d="m 910.14441,746.31415 32.61295,5.17393 -0.36119,-23.87619 7.18853,-29.68221 -8.45112,-5.26365 -21.82194,26.51077 -9.16723,27.13735 z"
5619 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
5620 <rect
5621 y="650.19098"
5622 x="877.51953"
5623 height="172.53406"
5624 width="123.03658"
5625 id="rect8365-4"
5626 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
5627 </g>
5628 <g
5629 id="g8400-9"
5630 style="filter:url(#filter8404-9)"
5631 clip-path="url(#clipPath8417-4)"
5632 transform="translate(276,136)">
5633 <path
5634 inkscape:connector-curvature="0"
5635 clip-path="none"
5636 sodipodi:nodetypes="ccccc"
5637 id="path4147-2"
5638 d="m 964.00012,754.69487 18.42881,7.46479 9.07107,-36.96447 -14.87031,4.83886 -12.62957,24.66082 z"
5639 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
5640 <rect
5641 y="677.06104"
5642 x="924.89569"
5643 height="125.1579"
5644 width="142.12846"
5645 id="rect8398-5"
5646 style="display:inline;overflow:visible;visibility:visible;opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;marker-start:none;marker-mid:none;marker-end:none;enable-background:accumulate" />
5647 </g>
5648 </g>
5649 </g> 956 </g>
5650 <path 957 </g>
5651 style="fill:#f8d615;fill-opacity:1;fill-rule:evenodd;stroke:#f8d615;stroke-width:17.84425545;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Send)" 958 <path d="M3603.7 633.68c-3.826-60.621-16.906-121.51-17.254-181.22-.187-32.048 3.291-63.757 13.834-94.91 36.554-156.68 117.6-203.23 186.99-219.47 87.416-26.435 185.96 43.047 234.7 228.91 54.432 181.72 56.997 414.01 81.07 622.74 29.605 305.05 55.09 614.78 60.735 928.25-3.08 187.6-8.474 396.35-60.847 547.4-48.299 120.83-123.49 120.1-188.13 141.58-91.07 11.17-185.4-38.742-263.27-154.04-65.144-91.037-96.274-272.3-97.832-446.36-8.437-191.66 26.542-369.07 51.914-545.07 7.513-198.58 9.466-398.92 9.708-598.39-.841-77.252-7.13-153.13-11.612-229.41z" enable-background="accumulate" fill="#101414"/>
5652 d="M 544.23337,203.09259 3443.746,100.92806" 959 <path transform="matrix(1.0057 0 0 2.3995 3249.4 125.01)" d="M311.83 415.43l9.9 121.62-60.105 136.47 15.556 174.66c15.613 61.879 32.185 98.669 74.376 117.05 4.32-36.24-38.612-142.96-39.243-189.12-.631-46.184 10.83-108.61 30.678-158.3 20.048-50.192 36.897-44.846 42.125-92.593s-17.426-149.39-17.426-149.39l-55.86 39.598z" clip-path="url(#y)" enable-background="accumulate" fill="#fff" filter="url(#fu)" opacity=".25"/>
5653 id="path7167" 960 <path d="m3987.6 1371.5s16.85 88.825 28.865 129.46c12.014 40.638 53.027 134.48 53.027 134.48l52.896-306.15" enable-background="accumulate" fill="url(#ft)"/>
5654 inkscape:connector-curvature="0" 961 <path transform="matrix(1.0057 0 0 2.3995 3249.4 125.01)" d="m730.32 536.57c0 8.485 42.548 58.468 42.548 58.468l12.607-28.77-55.154-29.698z" clip-path="url(#fs)" enable-background="accumulate" fill="#fff" filter="url(#fr)" opacity=".08"/>
5655 sodipodi:nodetypes="cc" /> 962 </g>
5656 <path 963 <g transform="matrix(1.0057 0 0 2.3995 3424.4 -24.137)" clip-path="url(#fq)" enable-background="new">
5657 style="display:inline;fill:#f8d615;fill-opacity:1;fill-rule:evenodd;stroke:#f8d615;stroke-width:18;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;marker-end:url(#Arrow1Send-4);enable-background:new" 964 <g transform="translate(-174.03 62.156)" filter="url(#aq)">
5658 d="M 527.91203,584.39421 3442.4188,1000.8355" 965 <g filter="url(#g)">
5659 id="path7167-9" 966 <path d="M425.88 476.99c10.805-1.479 24.744 3.354 44.643 3.214s57.453-16.91 82.143-17.143 62.752 12.284 79.286 15 22.848-.158 27.5 7.857 1.927 10.747-10.357 20.714-40.79 12.636-66.071 12.857c-25.282.221-70.381 7.079-95.357 3.93s-56.938-7.824-68.929-17.858-19.851-16.732-17.5-23.929 13.837-3.164 24.643-4.643z" enable-background="new" fill="#fff" fill-rule="evenodd"/>
5660 inkscape:connector-curvature="0" 967 <path d="M343.65 412.6h381.84v181.02H343.65z" enable-background="accumulate" fill="none"/>
5661 sodipodi:nodetypes="cc" /> 968 </g>
5662 <text 969 <g filter="url(#g)">
5663 xml:space="preserve" 970 <path d="m861.17 390.2c-10.462 9.714-86.98 19.005-100.71 29.286s-14.753 12.888-12.143 20 6.545 9.406 25.714 8.571 98.571-27.622 98.571-21.429l-11.429-36.429z" enable-background="new" fill="#fff" fill-rule="evenodd"/>
5664 style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#f83615;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" 971 <path d="M702.86 344.82h207.89v162.63H702.86z" enable-background="accumulate" fill="none"/>
5665 x="80.219048" 972 </g>
5666 y="107.38741" 973 </g>
5667 id="text8200" 974 <g enable-background="new" opacity=".18">
5668 sodipodi:linespacing="125%"><tspan 975 <g transform="translate(-174.03 62.156)" filter="url(#g)">
5669 sodipodi:role="line" 976 <path d="M425.88 476.99c10.805-1.479 24.744 3.354 44.643 3.214s57.453-16.91 82.143-17.143 62.752 12.284 79.286 15 22.848-.158 27.5 7.857 1.927 10.747-10.357 20.714-40.79 12.636-66.071 12.857c-25.282.221-70.381 7.079-95.357 3.93s-56.938-7.824-68.929-17.858-19.851-16.732-17.5-23.929 13.837-3.164 24.643-4.643z" enable-background="new" fill="#fff" fill-rule="evenodd"/>
5670 id="tspan8202" 977 <path d="M343.65 412.6h381.84v181.02H343.65z" enable-background="accumulate" fill="none"/>
5671 x="80.219048" 978 </g>
5672 y="107.38741" 979 <g transform="translate(-174.03 62.156)" filter="url(#g)">
5673 style="font-size:50px;fill:#f83615;fill-opacity:1">CROP_DEFAULT</tspan></text> 980 <path d="m861.17 390.2c-10.462 9.714-86.98 19.005-100.71 29.286s-14.753 12.888-12.143 20 6.545 9.406 25.714 8.571 98.571-27.622 98.571-21.429l-11.429-36.429z" enable-background="new" fill="#fff" fill-rule="evenodd"/>
5674 <text 981 <path d="M702.86 344.82h207.89v162.63H702.86z" enable-background="accumulate" fill="none"/>
5675 xml:space="preserve" 982 </g>
5676 style="font-style:normal;font-weight:normal;font-size:45.31394196px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#f80000;fill-opacity:0;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" 983 </g>
5677 x="3861.3669" 984 </g>
5678 y="1281.7198" 985 <g transform="matrix(1.0057 0 0 2.3995 2971.9 -201.33)" fill-rule="evenodd">
5679 id="text8200-4" 986 <path transform="translate(276 136)" d="m582.66-7.418l113.14 86.267 108.89 258.8 38.184 207.89 120.21 91.924s-12.728-287.09-19.799-313.96-149.91-393.15-149.91-393.15l-210.72 62.225z" clip-path="url(#fp)" enable-background="accumulate" filter="url(#fo)" opacity=".75"/>
5680 sodipodi:linespacing="125%" 987 <path d="m964.14 239.6s8.677 10.897 24.107 11.964c15.43 1.068 49.722-39.953 70.179-52.143 20.479-12.204 47.046-26.602 63.929-20.357 16.882 6.245 22.158 26.436 27.857 48.036 5.7 21.6 6.719 61.814-2.679 92.857-9.397 31.043-50.502 73.104-65.356 103.39s-11.607 39.821-11.607 39.821" enable-background="accumulate" fill="url(#el)"/>
5681 transform="scale(0.96105877,1.0405191)"><tspan 988 <path d="m1124.5 207.63c-15.893-0.893-49.719 12.106-66.071 24.286-16.439 12.244-29.221 24.114-29.286 52.143-0.065 28.206 13.119 39.076 29.107 46.964s33.686 7.12 51.964-11.786c18.278-18.905 14.286-111.61 14.286-111.61z" enable-background="new" fill="url(#ek)"/>
5682 sodipodi:role="line" 989 <ellipse transform="matrix(.94347 -.12399 .14401 1.0958 451.95 134.6)" cx="385" cy="237.01" rx="86.429" ry="73.929" clip-path="url(#fn)" enable-background="accumulate" fill="url(#ef)" filter="url(#fm)" opacity=".75"/>
5683 id="tspan8202-5" 990 <path transform="translate(450.03 73.844)" d="m527.61 407.45s-122.04 38.403-187.51 9.632c-65.473-28.772-74.377-124.72-74.377-124.72s73.382-80.504 129.92-83.615c55.827-3.072 90.574 20.143 114.87 65.852 24.352 45.813 17.101 132.85 17.101 132.85z" enable-background="accumulate" fill="url(#fl)" mask="url(#fk)"/>
5684 x="3861.3669" 991 <path d="m772.17 393.35s36.218-27.382 51.607-35.893c15.177-8.393 25.714-11.607 35.893-11.607l-15.536 66.964" enable-background="accumulate" fill="url(#ee)"/>
5685 y="1281.7198" 992 <circle transform="translate(449.5 74.915)" cx="409.29" cy="306.65" r="36.25" enable-background="accumulate" fill="url(#ed)"/>
5686 style="font-size:56.64243317px;fill:#f80000;fill-opacity:0">COMPOSE_PADDED</tspan></text> 993 <path transform="translate(276 136)" d="m311.83 415.43l9.9 121.62-60.105 136.47 15.556 174.66c15.613 61.879 32.185 98.669 74.376 117.05 4.32-36.24 8.682-72.368-31.243-223.12l17.678-69.296 72.125-138.59-42.426-158.39-55.86 39.598z" clip-path="url(#y)" enable-background="accumulate" fill="#fff" filter="url(#fj)" opacity=".3"/>
5687 <text 994 <path d="m635.21 581.13c-14.142 12.728 39.233 34.58 76.368 24.042s104.64-35.564 103.24-79.196c-1.407-43.632-76.368-128.69-76.368-128.69l-103.24 183.85z" enable-background="accumulate" filter="url(#fi)" opacity=".5"/>
5688 xml:space="preserve" 995 <circle transform="translate(449.67 74.915)" cx="410" cy="306.65" r="23.214" enable-background="accumulate" fill="url(#ec)"/>
5689 style="font-style:normal;font-weight:normal;font-size:45.31394196px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#f8d615;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" 996 <circle transform="translate(452 73.487)" cx="414.29" cy="303.08" r="7.5" enable-background="accumulate" fill="#fff" filter="url(#fh)" stroke="#000" stroke-linejoin="bevel"/>
5690 x="3615.1545" 997 <path d="m789.32 478.35s7.023 19.569-1.071 35-42.323 38.988-67.5 50c-25.31 11.07-85.473 32.964-101.79 41.964-16.461 9.082-18.214 12.679-18.214 12.679s-7.147-19.064 28.75-51.786c36.172-32.972 142.03-48.05 159.82-87.857z" enable-background="accumulate" fill="url(#eb)"/>
5691 y="49.156631" 998 </g>
5692 id="text8200-4-9" 999 <g enable-background="new">
5693 sodipodi:linespacing="125%" 1000 <g transform="matrix(1.0057 0 0 2.3995 3757 -22.424)" fill-rule="evenodd">
5694 transform="scale(0.96105877,1.0405191)"><tspan 1001 <path transform="translate(-329.81)" d="M179.64 267.36c-22.41 39.703-60.616 115.78-69.286 149.64-8.647 33.775-8.772 66.417-.357 86.429 8.36 19.882 26.164 35.633 40.714 41.429-.597-14.376 14.373-43.286 72.857-72.5 58.626-29.285 78.382-27.131 103.57-47.143 25.63-20.362 8.206-79.647 3.214-93.929s-1.236-3.38-1.946-5.093c-10.689-25.816-34.214-54.43-64.483-64.55s-65.018-4.848-84.286 5.714z" clip-path="url(#x)" fill="url(#m)"/>
5695 sodipodi:role="line" 1002 <ellipse transform="rotate(28.068 -88.085 -332.1)" cx="183.57" cy="338.08" rx="64.716" ry="134.01" enable-background="accumulate" fill="url(#dz)"/>
5696 id="tspan8202-5-3" 1003 <ellipse transform="rotate(28.068 -43.578 -333.81)" cx="183.57" cy="338.08" rx="64.716" ry="134.01" enable-background="accumulate" fill="url(#fg)"/>
5697 x="3615.1545" 1004 </g>
5698 y="49.156631" 1005 <path transform="matrix(1.0057 0 0 2.3995 3425.3 -22.424)" d="M179.64 267.36c-22.41 39.703-60.616 115.78-69.286 149.64-8.647 33.775-8.772 66.417-.357 86.429 8.36 19.882 26.164 35.633 40.714 41.429-.597-14.376 14.373-43.286 72.857-72.5 58.626-29.285 78.382-27.131 103.57-47.143 25.63-20.362 8.206-79.647 3.214-93.929s-1.236-3.38-1.946-5.093c-10.689-25.816-34.214-54.43-64.483-64.55s-65.018-4.848-84.286 5.714z" clip-path="url(#x)" enable-background="new" fill="none" filter="url(#hd)" stroke="url(#l)" stroke-width="20.8"/>
5699 style="font-size:50px;fill:#f8d615;fill-opacity:1">COMPOSE_ACTIVE</tspan></text> 1006 </g>
5700 <text 1007 <g transform="matrix(1.0057 0 0 2.3995 2971.9 -201.33)" fill-rule="evenodd">
5701 xml:space="preserve" 1008 <circle transform="translate(452.56 72.581)" cx="310.71" cy="398.08" r="19.704" enable-background="accumulate" stroke="#000" stroke-linejoin="bevel"/>
5702 style="font-style:normal;font-weight:normal;font-size:45.31394196px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#f83615;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" 1009 <circle transform="translate(450.56 72.581)" cx="310.71" cy="398.08" r="19.704" enable-background="accumulate" fill="url(#m)" filter="url(#hc)" stroke="url(#l)" stroke-width="20.8"/>
5703 x="2429.1526" 1010 <circle transform="translate(450.56 72.581)" cx="310.71" cy="398.08" r="19.704" enable-background="accumulate" fill="url(#dy)"/>
5704 y="-3.1657715" 1011 <ellipse transform="rotate(-4.471 1823.1 -5529.2)" cx="429.57" cy="377.43" rx="72.08" ry="44.548" enable-background="accumulate" fill="url(#dx)" filter="url(#hb)"/>
5705 id="text8200-4-5" 1012 <ellipse transform="matrix(1.4358 -.07 .07 1.4358 235.18 -63.865)" cx="437.7" cy="391.22" rx="36.612" ry="22.627" enable-background="accumulate" fill="url(#dw)" filter="url(#ha)"/>
5706 sodipodi:linespacing="125%" 1013 <g transform="translate(450.03 73.844)" enable-background="new" filter="url(#gz)">
5707 transform="scale(0.96105878,1.0405191)"><tspan 1014 <circle cx="413.66" cy="401.83" r="3.214" enable-background="accumulate" stroke="url(#dv)"/>
5708 sodipodi:role="line" 1015 <circle transform="translate(13.125 8.125)" cx="413.66" cy="401.83" r="3.214" enable-background="accumulate" stroke="url(#du)"/>
5709 id="tspan8202-5-7" 1016 <circle transform="translate(32.946 7.5)" cx="413.66" cy="401.83" r="3.214" enable-background="accumulate" stroke="url(#ej)"/>
5710 x="2429.1526" 1017 <circle transform="translate(24.911 -10.268)" cx="413.66" cy="401.83" r="3.214" enable-background="accumulate" stroke="url(#ei)"/>
5711 y="-3.1657715" 1018 <circle transform="translate(47.589 -.625)" cx="413.66" cy="401.83" r="3.214" enable-background="accumulate" stroke="url(#eh)"/>
5712 style="font-size:49.99999958px;fill:#f83615;fill-opacity:1">COMPOSE_DEFAULT</tspan></text> 1019 </g>
5713 <text 1020 </g>
5714 xml:space="preserve" 1021 <g fill="none" stroke="#000">
5715 style="font-style:normal;font-weight:normal;font-size:45.31394196px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#f815bb;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" 1022 <path transform="matrix(1.0057 0 0 2.3995 2971.9 -201.33)" d="M896.2 482.93c.985 4.35 4.537 6.18 7.387 7.892 4.46 2.513 6.52 1.522 9.154-.758 1.602-1.921 10.683-4.698 15.594-7.07 4.33-1.46 8.904-5.36 13.385-8.335 3.395-1.627 5.347.355 7.829 1.01 2.944.717 4.411 2.172 6.06 3.536 2.397 1.175-.927 3.143 3.284 4.293 1.19.218 2.417.577 3.283-.505" enable-background="new"/>
5716 x="3681.5449" 1023 <path transform="matrix(1.0057 0 0 2.3995 2971.9 -201.33)" d="M910.85 475.35c2.315-.032 3.178.643 5.493-.82 3.455-3.082 5.402-3.146 7.955-4.42 3.026-1.315 6.535 8.152 10.102 9.849 2.395-.822 1.289 1.794 1.452 2.651.057 2.647 2.807 3.679 4.356 5.43 3.316 2.256 7.375 6.296 11.112 5.303 6.445-2.93 10.28-1.281 16.29-7.386.703-1.182-.585-6.895 3.093-7.198 2.524.254 4.166.05 6.06.569 5.442 2.117 7.738 6.45 14.71 7.955 6.184.966 7.613 3.794 13.89 5.05M876.98 483.52c2.399-.794 6.106 4.192 8.173 7.046.593 2.68 1.154 5.486.758 12.122.785 2.417 2.68 3.03 4.798 3.283 3.117-.537 5.877-1.325 7.324-3.03 1.871-1.942 5.312 2.393 8.08 4.04 3.61 1.912 7.775 1.979 11.87 2.273 1.703-.231 2.37 4.515 3.283 8.08.384 4.379-.886 6.897-1.768 9.85-.294 2.496 2.988 3.53 6.313 4.546 3.183.74 6.545 1.661 9.092 1.767 5.142.875 8.088 2.69 12.122 4.04 2.239.817 3.26 2.243 4.545 3.536" enable-background="new"/>
5717 y="1289.9539" 1024 </g>
5718 id="text8200-4-9-3" 1025 <g transform="matrix(.9991 .27421 -.11493 2.3838 2962.6 1209.8)" enable-background="new" fill-rule="evenodd" mask="url(#gy)">
5719 sodipodi:linespacing="125%" 1026 <path d="M1111.48-285.971l-3.937 1.875c-.041.01-.1.02-.125.031-.42.213-.165.1-.657.312-.486.21-1.737.585-4.093 1.47-3.332 1.25-5.805 2.15-7 3.062-1.537.021-3.72.233-5.657.719a227.677 227.677 0 0 1-6.75 1.593c-1.894.42-1.675.642-2.875.875-1.296.252-1.721-.009-5.437.782-3.49.742-8.895 1.93-10.156 2.687-1.584-.18-3.868-.322-5.844-.031-3.04.447-4.916.673-6.844.906-.655.08-1.04.2-1.343.281-.427.132-.686.26-1.375.344-1.312.16-1.763-.157-5.532.281-3.554.413-9.005 1.273-10.25 1.938-1.599-.297-3.857-.534-5.843-.344-3.06.293-4.972.484-6.907.656-1.934.173-1.688.423-2.906.532-1.316.117-1.76-.164-5.531.25-3.542.388-9.008 1.209-10.281 1.875-1.6-.295-3.887-.507-5.875-.313-3.058.3-4.941.48-6.875.656-.658.06-1.04.179-1.344.25-.428.12-.683.218-1.375.282-1.316.12-1.76-.195-5.531.218-3.556.39-9.006 1.24-10.25
5720 transform="scale(0.96105877,1.0405191)"><tspan 10271.907-1.599-.295-3.86-.524-5.844-.313-3.056.325-4.974.526-6.906.719s-1.69.44-2.906.562c-1.315.132-1.763-.164-5.532.282-3.538.418-8.977 1.292-10.25 1.968-1.597-.28-3.86-.42-5.843-.187-3.052.358-4.945.568-6.875.781-.657.073-1.041.173-1.344.25-.427.127-.685.267-1.375.344-1.314.146-1.768-.174-5.531.312-3.55.46-8.979 1.42-10.22 2.125-1.592-.244-3.833-.381-5.812-.125-3.047.395-4.95.649-6.875.907-1.924.257-1.726.493-2.937.656-1.31.176-1.748-.105-5.5.469-3.525.538-8.924 1.699-10.188 2.437-1.588-.203-3.846-.255-5.813.094-3.026.536-4.899.861-6.812 1.187-.65.111-1.014.271-1.313.375-.42.165-.663.332-1.344.469-1.294.262-1.727-.006-5.437.813-3.499.771-8.846 2.382-10.062 3.218-1.563-.077-3.758.086-5.688.594-2.972.783-4.817 1.232-6.687 1.75s-1.667.767-2.844 1.094c-1.272.353-1.697.107-5.344 1.187-3.424 1.015-8.65 2.934-9.875 3.844-1.539.013-3.72.272-5.625.875-2.93.928-4.75 1.459-6.594
5721 sodipodi:role="line" 10282.063-.626.205-.991.392-1.28.53-.408.215-.654.41-1.313.626-1.255.411-1.686.189-5.281 1.437-3.39 1.178-8.595 3.214-9.782 4.157-1.524.06-3.65.395-5.53 1.062-2.898 1.028-4.7 1.676-6.532 2.313-1.832.637-1.628.848-2.781 1.25-1.247.434-1.664.2-5.22 1.562-3.338 1.28-8.486 3.483-9.687 4.469-1.507.108-3.635.499-5.5 1.219a1047.26 1047.26 0 0 1-6.437 2.469c-.617.233-.997.442-1.281.593v.031l-8 3.188-12.476 3.492 7.93 19.278c-.592 1.973 12.545-4.739 12.545-4.739.227-.144.45-.272.72-.375 1.08-.41 2.17-.215 6-1.687 3.828-1.472 5.223-2.005 5.905-2.406.68-.4 1.612-.88 2.22-1.531 1.826-.138 3.57-.494 4.937-1 2.968-1.1 4.875-1.807 6.78-2.47 1.907-.662 2.355-1.414 3.407-1.78 1.092-.38 2.195-.166 6.063-1.532 3.867-1.366 5.283-1.827 5.968-2.218.702-.4 1.701-.933 2.313-1.594 1.97-.055 3.817-.385 5.281-.875 3.002-1.005 4.926-1.622 6.844-2.25 1.538-.504 2.174-1.047 2.906-1.438.23-.134.476-.253.75-.343 1.098-.36
5722 id="tspan8202-5-3-6" 10292.181-.082 6.094-1.313 3.912-1.231 5.366-1.673 6.062-2.031.694-.357 1.63-.793 2.25-1.406 1.866-.023 3.636-.267 5.032-.688 3.03-.913 4.992-1.43 6.937-1.969 1.945-.538 2.426-1.264 3.5-1.562 1.114-.31 2.22.007 6.188-1.031 3.967-1.039 5.417-1.433 6.125-1.75.734-.33 1.813-.754 2.437-1.375 1.998.116 3.857-.02 5.344-.375 3.078-.735 5.083-1.101 7.062-1.5 1.588-.32 2.245-.79 3-1.094a3.4 3.4 0 0 1 .75-.25c1.134-.23 2.305.209 6.344-.5 4.04-.71 5.5-.927 6.219-1.188.716-.26 1.704-.567 2.344-1.093 1.924.239 3.748.224 5.187 0 3.127-.488 5.155-.701 7.156-.97 2.002-.267 2.49-.944 3.594-1.093 1.147-.154 2.276.302 6.344-.219 4.068-.52 5.56-.695 6.281-.937.737-.247 1.798-.586 2.438-1.125 2.05.335 3.973.398 5.5.218 3.142-.368 5.18-.559 7.187-.78 1.611-.179 2.265-.609 3.031-.845.241-.085.495-.155.782-.187 1.15-.128 2.301.347 6.375-.125s5.559-.61 6.28-.844c.72-.232 1.701-.473 2.345-.969 1.936.334 3.77.405
5723 x="3681.5449" 10305.219.25 3.146-.334 5.177-.518 7.187-.718 2.01-.2 2.484-.827 3.594-.938 1.15-.115 2.296.365 6.375-.062s5.589-.562 6.312-.782c.74-.223 1.796-.513 2.438-1.03 2.057.398 4.002.493 5.531.343 3.149-.308 5.176-.473 7.188-.656 1.614-.147 2.263-.56 3.03-.781.242-.081.494-.13.782-.157 1.152-.105 2.293.393 6.375 0s5.589-.53 6.312-.75c.721-.218 1.7-.447 2.344-.937 1.938.35 3.769.454 5.219.312 3.149-.308 5.176-.473 7.187-.656 2.012-.183 2.515-.838 3.625-.937 1.153-.104 2.293.384 6.375 0 4.083-.385 5.59-.501 6.313-.72.74-.222 1.796-.514 2.437-1.03 2.058.401 4.003.503 5.532.343 3.146-.328 5.177-.522 7.187-.718 1.613-.158 2.266-.632 3.031-.875.241-.088.464-.122.75-.157 1.149-.14 2.317.34 6.375-.25 4.059-.59 5.562-.777 6.282-1.03.716-.254 1.674-.559 2.312-1.095 1.92.212 3.72.152 5.156-.093 3.12-.533 5.112-.929 7.094-1.313 1.982-.384 2.474-1.04 3.563-1.281 1.128-.25 2.27.116 6.25-.875s5.43-1.42
5724 y="1289.9539" 10316.125-1.781c.722-.376 1.761-.87 2.375-1.531 1.963-.012 3.793-.292 5.218-.844 2.952-1.145 4.874-1.87 6.688-2.75 1.456-.707 2.32-1.702 2.531-2 .212-.298.1-.729.125-.75.043-.035.34-.094.5-.438.86-1.847 2.323-5.627 2.438-6.312.113-.682.168-1.353.218-1.75.03-.23-.147-.88-.125-.938.031-.082.289-.25.344-.5.266-1.198.09-2.207-.125-3.625-.214-1.417-.972-4.614-1.625-5.469-.659-.861-1.225-1.01-1.75-1z" enable-background="new" fill="#bcb786"/>
5725 style="font-size:50px;fill:#f815bb;fill-opacity:1">COMPOSE_PADDED</tspan></text> 1032 <g clip-path="url(#gx)">
5726 <text 1033 <path d="M1107.4-284.05c-.419.213-.156.094-.647.306-.486.21-1.724.574-4.08 1.459-3.33 1.25-5.83 2.153-7.026 3.066-1.536.021-3.72.233-5.656.719a227.709 227.709 0 0 1-6.75 1.593c-1.895.42-1.676.643-2.875.875-1.297.252-1.721-.009-5.438.782-3.49.742-8.894 1.93-10.156 2.687-1.583-.18-3.867-.322-5.843-.031-3.04.447-4.917.673-6.844.906-.655.08-1.041.201-1.344.282-.426.131-.686.26-1.375.343-1.311.16-1.762-.157-5.531.282-3.554.413-9.005 1.272-10.25 1.937-1.599-.297-3.858-.534-5.844-.344-3.059.294-4.972.484-6.906.657-1.934.172-1.689.422-2.906.53-1.317.118-1.76-.163-5.532.25-3.541.39-9.007 1.21-10.28 1.876-1.6-.295-3.888-.507-5.876-.313-3.058.3-4.94.48-6.875.657-.657.06-1.04.178-1.343.25-.428.118-.684.218-1.375.28-1.316.121-1.76-.194-5.532.22-3.556.39-9.005 1.239-10.25
5727 xml:space="preserve" 10341.906-1.598-.294-3.86-.524-5.843-.313-3.056.326-4.974.526-6.907.719-1.932.192-1.69.44-2.906.562-1.315.132-1.763-.164-5.53.282-3.54.418-8.979 1.292-10.25 1.969-1.599-.282-3.86-.42-5.845-.188-3.052.358-4.945.568-6.875.781-.656.073-1.04.173-1.344.25-.426.127-.684.267-1.375.344-1.313.146-1.767-.174-5.53.313-3.55.458-8.98 1.419-10.22 2.125-1.593-.245-3.834-.382-5.812-.125-3.048.394-4.95.648-6.875.906-1.925.258-1.726.493-2.938.656-1.31.176-1.747-.104-5.5.469-3.524.538-8.923 1.699-10.188 2.437-1.587-.203-3.845-.254-5.812.094-3.026.536-4.9.862-6.813 1.187-.65.111-1.013.271-1.312.375-.42.165-.664.332-1.344.47-1.295.26-1.727-.007-5.438.812-3.498.772-8.846 2.383-10.062 3.219-1.562-.078-3.757.085-5.687.593-2.972.783-4.818 1.232-6.688 1.75s-1.666.768-2.843 1.094c-1.273.353-1.697.107-5.344 1.188-3.425 1.014-8.65 2.933-9.875 3.843-1.539.013-3.72.273-5.625.875-2.931.928-4.75 1.459-6.594
5728 style="font-style:normal;font-weight:normal;font-size:50px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new;" 10352.063-.627.205-.992.392-1.281.531-.408.214-.653.409-1.313.625-1.254.412-1.686.19-5.28 1.438-3.39 1.177-8.596 3.213-9.782 4.156-1.524.06-3.65.395-5.531 1.062-2.898 1.029-4.7 1.676-6.531 2.313-1.833.637-1.628.848-2.782 1.25-1.246.434-1.663.2-5.218 1.562-3.34 1.28-8.488 3.483-9.688 4.47-1.507.107-3.636.498-5.5 1.218a1044.752 1044.752 0 0 1-6.437 2.469c-.617.233-.997.442-1.282.593v1.094c.112-.222.386-.817.907-1.094.698-.37 4.813-1.993 6.812-2.718 1.657-.602 4.154-1.329 5.969-1.313.302.003.588.051.844.094 1.842.308 7.468 1.562 7.468 1.562s-6.233-1.646-7.03-1.843c-.191-.048-.536-.07-.97-.063 1.146-.87 4.762-2.393 7.344-3.437 2.839-1.148 3.117-1.252 5.063-1.657 2.008-.417 3.156-.5 3.156-.5s-.082-.6.969-1.125c.705-.351 4.887-1.892 6.906-2.562 1.952-.648 5.057-1.359 6.875-1 1.863.367 7.531 1.812 7.531 1.812s-6.287-1.87-7.094-2.093c-.193-.054-.53-.086-.968-.094 1.158-.833 4.794-2.195 7.406-3.156
5729 x="2438.0618" 10362.87-1.056 3.167-1.162 5.125-1.532 1.853-.35 2.859-.425 3.031-.437.114-.217.377-.81.906-1.063.71-.338 4.926-1.712 6.97-2.312 1.692-.497 4.24-1.037 6.093-.906.308.021.613.097.875.156 1.881.424 7.594 2.031 7.594 2.031s-6.342-2.065-7.157-2.312c-.194-.06-.557-.104-1-.125 1.17-.798 4.863-2.057 7.5-2.938 2.898-.968 3.233-1.003 5.22-1.281 2.049-.287 3.187-.313 3.187-.313s-.073-.607 1-1.062c.72-.306 4.99-1.5 7.062-2 2.003-.483 5.199-.928 7.063-.406 1.91.535 7.719 2.5 7.719 2.5s-6.423-2.424-7.25-2.72c-.198-.07-.583-.14-1.032-.187 1.188-.728 4.916-1.774 7.594-2.5 2.944-.797 3.292-.77 5.313-.906 1.913-.128 2.947-.07 3.125-.062.117-.204.391-.78.937-.97.732-.253 5.079-1.047 7.188-1.374 1.748-.271 4.4-.485 6.312-.094.318.065.605.186.875.281 1.94.69 7.844 3.094 7.844 3.094s-6.535-2.95-7.375-3.312c-.201-.087-.575-.167-1.031-.25 1.206-.633 5.03-1.396 7.75-1.906 2.99-.562 3.3-.53 5.344-.532 2.109-.002
5730 y="1368.4291" 10373.312.125 3.312.125s-.073-.63 1.031-.937c.74-.206 5.126-.834 7.25-1.063 2.053-.22 5.319-.252 7.22.47 1.947.738 7.843 3.374 7.843 3.374s-6.563-3.179-7.406-3.562c-.202-.092-.543-.187-1-.282 1.21-.602 4.984-1.248 7.718-1.656 3.005-.448 3.326-.452 5.375-.406 1.94.043 3.007.194 3.188.219.119-.194.384-.766.937-.907.743-.188 5.155-.734 7.282-.937 1.763-.169 4.42-.234 6.343.25.32.08.604.203.875.312 1.953.784 7.907 3.47 7.907 3.47s-6.592-3.254-7.438-3.657c-.202-.096-.572-.207-1.031-.313 1.214-.574 5.044-1.122 7.781-1.5 3.009-.415 3.323-.442 5.375-.375 2.118.07 3.313.25 3.313.25s-.078-.637 1.03-.906c.745-.18 5.153-.663 7.282-.844 2.059-.174 5.343-.124 7.25.657 1.955.8 7.875 3.53 7.875 3.53s-6.56-3.308-7.406-3.718c-.202-.098-.572-.203-1.031-.312 1.215-.564 5.01-1.115 7.75-1.47 3.01-.389 3.321-.397 5.375-.312 1.944.08 3.006.254 3.187.282.12-.191.383-.746.938-.875.744-.174 5.15-.65 7.28-.813
5731 id="text8200-4-9-3-5" 10381.767-.134 4.45-.126 6.376.375.32.083.603.201.875.313 1.954.8 7.906 3.562 7.906 3.562s-6.591-3.34-7.437-3.75c-.203-.098-.572-.203-1.032-.312 1.215-.564 5.042-1.084 7.782-1.438 3.01-.39 3.352-.429 5.406-.344 2.12.088 3.312.313 3.312.313s-.078-.65 1.032-.906c.744-.173 5.15-.624 7.28-.782 2.061-.152 5.344-.096 7.25.688 1.956.804 7.876 3.5 7.876 3.5s-6.56-3.276-7.406-3.688c-.203-.098-.572-.202-1.032-.312 1.216-.562 5.012-1.128 7.75-1.5 3.01-.41 3.323-.416 5.375-.344 1.943.068 3.008.165 3.188.188.119-.195.384-.73.937-.875.742-.197 5.131-.83 7.25-1.094 1.757-.22 4.406-.333 6.313.031.317.06.606.19.875.281 1.936.661 7.844 2.938 7.844 2.938s-6.537-2.807-7.375-3.156c-.2-.084-.577-.174-1.032-.25 1.204-.651 5.02-1.372 7.72-2 2.966-.69 3.288-.756 5.312-.875 2.088-.124 3.28-.032 3.28-.032s-.086-.632 1-1.03c.73-.269 5.048-1.339 7.126-1.813 2.008-.46 5.168-1.03 7-.625 1.878.414 13.578 3.015 13.578
5732 sodipodi:linespacing="125%" 10393.015s-12.328-3.022-13.141-3.265c-.195-.058-.559-.107-1-.125 1.167-.804 3.514-1.688 6.11-2.703 1.68-.659.923-.377 2.775-1.004 1.754-.594 2.486-1.01 2.63-1.113.347-.207-.355-.122-.544-.042z" enable-background="new" filter="url(#gw)"/>
5733 transform="scale(0.96105877,1.0405191)"><tspan 1040 <path d="m1082.6-275.12c1.873 0.393 4.496 1.146 6.031 1.969s2.822 1.056 5.375 2.5c2.527 1.43 4.796 2.007 6.969 2.531 2.348 0.566 5.435 0.715 8.844 1.188-1.09-0.84-6.608-1.173-8.406-1.563-1.8-0.39-3.895-1.016-6.594-2.313-2.7-1.296-3.495-1.799-5.813-2.687-2.318-0.889-4.004-1.383-6.406-1.625z" enable-background="new" filter="url(#gv)"/>
5734 sodipodi:role="line" 1041 <path d="M1051.5-270c1.905.578 4.528 1.616 6.094 2.594 1.565.978 2.88 1.36 5.5 3.125 2.593 1.747 4.986 2.71 7.25 3.594 2.446.955 5.682 1.657 9.406 3.062-1.19-1.138-7.063-2.687-8.938-3.375-1.874-.688-4.081-1.566-6.874-3.281-2.794-1.715-3.574-2.284-5.938-3.406-2.364-1.123-4.057-1.835-6.5-2.313z" enable-background="new" filter="url(#gu)"/>
5735 id="tspan8202-5-3-6-3" 1042 <path d="m1020.2-266.84c1.912 0.638 4.581 1.755 6.156 2.813 1.575 1.057 2.896 1.508 5.531 3.406 2.61 1.878 5.029 3.03 7.313 4.062 2.468 1.116 5.764 2.174 9.531 3.844-1.203-1.222-7.203-3.314-9.094-4.125-1.89-0.81-4.064-1.894-6.874-3.75s-3.622-2.477-6-3.719c-2.379-1.242-4.111-1.975-6.563-2.531z" enable-background="new" filter="url(#gt)"/>
5736 x="2438.0618" 1043 <path d="M1110.2-266.89c.15.049.688.631.11 1.484-.81 1.195-5.705 3.325-8.563 4.125-2.845.798-6.29.978-10.562-.375-4.302-1.362-5.47-2.468-10.656-4.312 4.664 2.115 6.195 3.952 10.125 5.344 1.62.574 3.367.94 5.062 1.03-.445.327-1.53.984-3.562 1.595-2.796.84-6.65 1.534-8.25 1.625-1.515.086-3.142-.513-3.438-.625.167.103.374.377-.25 1.03-.899.945-6.147 1.924-9.125 2.25-2.964.326-6.521-.015-10.906-1.905-3.978-1.715-5.339-2.916-9.406-4.75v.156c3.643 2.095 5.284 3.883 8.875 5.562 1.73.81 3.592 1.41 5.406 1.72-.534.286-1.557.71-3.437 1.03-2.87.488-6.81.817-8.438.75-.85-.034-1.728-.184-2.406-.406-.685-.215-1.19-.444-1.312-.5.169.107.43.403-.22 1.031-.909.88-6.245 1.337-9.25 1.47-2.99.131-6.588-.451-11-2.563-4.44-2.127-5.64-3.402-10.905-5.782 4.734 2.597 6.286 4.63 10.344 6.72 1.673.861 3.485 1.493 5.25
5737 y="1368.4291" 10441.937-.463.233-1.59.688-3.688.937-2.886.343-6.834.493-8.468.375-1.547-.111-3.232-.857-3.532-1 .17.12.414.41-.218 1-.913.851-6.244 1.262-9.25 1.375-2.993.113-6.59-.49-11-2.594-4.002-1.908-5.388-3.137-9.47-5.093v.156c3.656 2.204 5.295 4.053 8.907 5.906 1.74.893 3.637 1.528 5.469 1.969-.54.248-1.578.615-3.469.844-2.886.348-6.866.52-8.5.406a9.446 9.446 0 0 1-2.406-.5 12.532 12.532 0 0 1-1.313-.531c.17.112.465.422-.187 1.03-.913.853-6.275 1.294-9.281 1.407-2.993.112-6.594-.528-11-2.594-4.437-2.08-5.647-3.331-10.906-5.656 4.729 2.548 6.29 4.578 10.344 6.625 1.671.844 3.485 1.467 5.25 1.906-.464.235-1.59.684-3.688.938-2.886.348-6.836.57-8.469.469-1.544-.096-3.2-.83-3.5-.97.17.12.382.405-.25 1-.912.861-6.246 1.331-9.25 1.47-2.99.138-6.567-.451-10.969-2.47-3.993-1.83-5.365-3.028-9.437-4.905v.156c3.647 2.133 5.27 3.935 8.875 5.719 1.737.86 3.607 1.45 5.437
5738 style="font-size:50px;fill:#000000;fill-opacity:1;">COMPOSE_BONDS</tspan></text> 10451.875-.54.253-1.55.64-3.437.906-2.88.404-6.838.646-8.469.562a9.36 9.36 0 0 1-2.406-.437 12.971 12.971 0 0 1-1.313-.5c.17.109.432.41-.218 1.031-.911.87-6.25 1.392-9.25 1.563-2.987.17-6.574-.316-10.97-2.282-4.424-1.978-5.605-3.228-10.843-5.375 4.71 2.388 6.27 4.39 10.312 6.344a23.73 23.73 0 0 0 5.218 1.781c-.461.25-1.597.713-3.687 1.032-2.876.438-6.78.733-8.406.687-1.539-.043-3.233-.745-3.532-.875.169.113.411.414-.218 1.031-.908.891-6.203 1.529-9.188 1.813-2.971.283-6.573-.176-10.938-1.938-3.96-1.598-5.329-2.795-9.344-4.312v.156c3.596 1.811 5.239 3.582 8.813 5.156 1.722.759 3.587 1.29 5.406 1.625-.536.28-1.566.688-3.437 1.063-2.856.572-6.79 1.02-8.407 1.031-.844.006-1.706-.08-2.375-.25-.676-.162-1.16-.33-1.28-.375.166.094.422.383-.22 1.062-.897.951-6.186 1.918-9.125 2.438-2.925.518-6.432.374-10.719-1.031-4.315-1.415-5.472-2.53-10.562-3.969 4.577 1.751 6.09 3.56 10.031 5 1.627.594 3.37.956
5739 <text 10465.094 1.156-.453.297-1.555.884-3.594 1.469-2.804.805-6.638 1.576-8.218 1.75-1.495.165-3.117-.317-3.407-.406.164.09.393.36-.218 1.062-.883 1.014-6.045 2.372-8.938 3.063-2.88.687-6.335.76-10.562-.438-3.835-1.086-5.172-2.072-9.062-3.125v.156c3.484 1.395 5.07 2.92 8.53 4.032 1.669.535 3.457.786 5.22.875-.52.352-1.5.914-3.313 1.53-2.765.942-6.59 1.936-8.156 2.157-.818.115-1.633.123-2.281.031-.655-.083-1.133-.218-1.25-.25.162.075.434.34-.188 1.094-.87 1.055-6.01 2.66-8.875 3.438-2.852.774-6.259.958-10.438-.094-4.206-1.06-5.356-2.042-10.344-3.156 4.485 1.46 5.97 3.135 9.813 4.25 1.585.46 3.287.638 4.969.687-.442.337-1.513 1.028-3.5 1.781-2.734 1.037-6.452 2.163-8 2.438-1.465.26-3.06-.117-3.344-.188.16.08.38.321-.219 1.063-.865 1.07-5.916 2.818-8.75 3.687-2.82.866-6.207 1.157-10.344.22-3.753-.852-5.048-1.717-8.875-2.595v.157c3.428 1.237 4.987 2.632 8.375 3.53 1.632.434 3.367.584
5740 xml:space="preserve" 10475.094.563-.51.384-1.477 1.022-3.25 1.75-2.706 1.112-6.436 2.308-7.969 2.625-.8.166-1.612.219-2.25.157v1.406c.227-.145.449-.273.719-.375 1.08-.41 2.171-.216 6-1.688 3.828-1.471 5.224-2.005 5.906-2.406.68-.4 1.612-.88 2.219-1.531 1.827-.138 3.57-.493 4.937-1 2.968-1.1 4.876-1.806 6.782-2.469 1.905-.663 2.354-1.415 3.406-1.781 1.091-.38 2.195-.166 6.062-1.531 3.868-1.366 5.283-1.827 5.969-2.22.701-.4 1.7-.932 2.313-1.593 1.97-.055 3.816-.385 5.28-.875 3.002-1.005 4.927-1.622 6.845-2.25 1.538-.504 2.174-1.047 2.906-1.437.23-.135.475-.254.75-.344 1.098-.36 2.181-.082 6.094-1.313 3.912-1.23 5.366-1.673 6.062-2.03.694-.358 1.63-.794 2.25-1.407 1.865-.023 3.636-.267 5.031-.688 3.03-.913 4.993-1.43 6.938-1.968 1.945-.54 2.426-1.265 3.5-1.563 1.114-.31 2.22.007 6.187-1.031 3.968-1.039 5.418-1.433 6.125-1.75.735-.33 1.814-.754 2.438-1.375 1.997.116 3.857-.02 5.344-.375 3.078-.735 5.083-1.101
5741 style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" 10487.062-1.5 1.588-.32 2.244-.79 3-1.094.238-.107.467-.193.75-.25 1.134-.23 2.305.209 6.344-.5s5.5-.927 6.219-1.187c.715-.26 1.704-.568 2.343-1.094 1.925.24 3.748.224 5.188 0 3.126-.488 5.155-.7 7.156-.969 2.002-.268 2.489-.945 3.594-1.094 1.146-.154 2.276.302 6.344-.219 4.068-.52 5.56-.695 6.28-.937.738-.247 1.799-.586 2.438-1.125 2.05.335 3.974.398 5.5.219 3.143-.37 5.18-.56 7.188-.782 1.61-.178 2.265-.608 3.031-.843a3.43 3.43 0 0 1 .781-.188c1.15-.128 2.302.347 6.375-.125s5.56-.61 6.282-.844c.719-.232 1.7-.473 2.343-.968 1.937.333 3.77.404 5.22.25 3.145-.335 5.177-.519 7.187-.719 2.01-.2 2.484-.826 3.593-.938 1.152-.115 2.297.366 6.375-.062s5.59-.562 6.313-.781c.74-.224 1.796-.514 2.437-1.031 2.058.398 4.002.493 5.532.343 3.148-.308 5.175-.473 7.187-.656 1.614-.147 2.263-.56 3.031-.781.242-.081.494-.13.782-.156 1.152-.106 2.293.392 6.375 0 4.082-.393 5.589-.531 6.312-.75.721-.219
5742 x="8.0815096" 10491.7-.448 2.344-.938 1.938.35 3.769.454 5.219.313 3.148-.309 5.175-.474 7.187-.657 2.012-.183 2.514-.838 3.625-.937 1.152-.103 2.292.385 6.375 0s5.589-.501 6.313-.719c.739-.222 1.795-.514 2.437-1.031 2.057.402 4.003.503 5.531.344 3.147-.329 5.178-.523 7.188-.72 1.613-.156 2.266-.63 3.031-.874.24-.088.463-.122.75-.156 1.148-.14 2.317.34 6.375-.25 4.058-.59 5.562-.778 6.281-1.032.717-.253 1.675-.558 2.313-1.093 1.92.211 3.72.151 5.156-.094 3.12-.533 5.112-.929 7.094-1.313 1.982-.384 2.474-1.04 3.562-1.28 1.13-.252 2.27.115 6.25-.876s5.43-1.42 6.125-1.781c.723-.376 1.762-.87 2.375-1.531 1.963-.012 3.794-.291 5.22-.844 2.95-1.145 4.872-1.87 6.687-2.75 1.455-.707 2.334-1.686 2.547-1.984.212-.298.111-.746.137-.767.043-.035.32-.085.48-.429.858-1.847 2.32-5.644
5743 y="1438.8961" 10502.435-6.329.113-.682.163-1.348.214-1.745.03-.23-.147-.865-.125-.924.031-.082.305-.265.36-.515.267-1.198.09-2.191-.125-3.609-.214-1.417-.983-4.622-1.637-5.476-.659-.862-1.223-1.011-1.748-1-.208.27.137.262.163.312.68.05.934.369 1.42.897s1.442 3.94 1.579 5.39.19 2.86-.088 3.468c-.278.609-.944.429-1.237.495.531.186.89.213.953 1.057.058.814-.134 1.64-.52 2.806-.391 1.18-1.845 4.35-2.286 4.599-.452.255-.952.182-1.288.05z" enable-background="new" filter="url(#gs)"/>
5744 id="text8200-4-9-3-5-6" 1051 <path d="m988.75-263.84c1.912 0.634 4.55 1.758 6.125 2.813 1.575 1.054 2.896 1.482 5.531 3.375 2.609 1.873 5.027 3.015 7.313 4.062 2.47 1.132 5.752 2.155 9.531 3.938-1.207-1.259-7.139-3.365-9.031-4.188s-4.128-1.93-6.938-3.781-3.622-2.482-6-3.719c-2.377-1.237-4.08-1.95-6.53-2.5z" enable-background="new" filter="url(#gr)"/>
5745 sodipodi:linespacing="125%"><tspan 1052 <path d="M957.5-260.78c1.91.618 4.583 1.71 6.156 2.75 1.574 1.04 2.896 1.482 5.531 3.375 2.609 1.873 5.027 3.015 7.313 4.063 2.47 1.131 5.752 2.154 9.531 3.937-1.207-1.258-7.201-3.396-9.094-4.219-1.892-.823-4.096-1.93-6.906-3.781-2.81-1.85-3.593-2.44-5.969-3.656s-4.113-1.939-6.562-2.469z" enable-background="new" filter="url(#gq)"/>
5746 sodipodi:role="line" 1053 <path d="M926.09-257.38c1.908.597 4.553 1.664 6.125 2.688 1.571 1.023 2.87 1.44 5.5 3.28 2.603 1.823 5.029 2.973 7.313 4 2.467 1.111 5.755 2.094 9.53 3.845-1.205-1.249-7.171-3.319-9.062-4.125s-4.102-1.891-6.906-3.688c-2.804-1.796-3.627-2.402-6-3.594-2.373-1.191-4.054-1.903-6.5-2.406z" enable-background="new" filter="url(#gp)"/>
5747 id="tspan8202-5-3-6-3-2" 1054 <path d="M894.91-253.56c1.902.554 4.587 1.589 6.156 2.594s2.874 1.408 5.5 3.219c2.6 1.791 5 2.871 7.281 3.875 2.465 1.083 5.76 2.04 9.532 3.75-1.205-1.236-7.175-3.245-9.063-4.032-1.888-.786-4.075-1.83-6.875-3.593s-3.6-2.369-5.969-3.532c-2.37-1.163-4.123-1.834-6.562-2.28z" enable-background="new" filter="url(#go)"/>
5748 x="8.0815096" 1055 <path d="M863.72-248.66c1.88.43 4.504 1.38 6.063 2.313 1.558.932 2.852 1.257 5.468 3 2.59 1.724 4.981 2.708 7.25 3.625 2.452.99 5.74 1.877 9.5 3.5-1.201-1.208-7.152-3.067-9.03-3.782-1.88-.715-4.086-1.684-6.876-3.375s-3.585-2.228-5.937-3.28-4.026-1.713-6.438-2z" enable-background="new" filter="url(#gn)"/>
5749 y="1438.8961" 1056 <path d="m833.16-241.38c1.848 0.296 4.47 0.976 6 1.781s2.814 1.056 5.375 2.531c2.535 1.46 4.89 2.326 7.125 3.063 2.414 0.797 5.657 1.467 9.375 2.844-1.188-1.129-7.088-2.59-8.938-3.156-1.85-0.567-4.003-1.374-6.75-2.844-2.746-1.47-3.5-1.92-5.812-2.781-2.311-0.861-4.005-1.32-6.375-1.438z" enable-background="new" filter="url(#gm)"/>
5750 style="font-size:50px;fill:#000000;fill-opacity:1">CROP_BONDS</tspan></text> 1057 <path d="m802.91-232.31c1.822 0.211 4.366 0.8 5.875 1.531 1.51 0.73 2.756 0.93 5.281 2.281 2.5 1.338 4.832 2.049 7.031 2.657 2.377 0.656 5.565 1.073 9.22 2.187-1.168-1.045-6.93-2.103-8.75-2.562-1.822-0.46-3.953-1.127-6.657-2.438s-3.471-1.72-5.75-2.469-3.913-1.179-6.25-1.187z" enable-background="new" filter="url(#gl)"/>
5751 <text 1058 <path d="M773.19-222.19c1.811.179 4.32.665 5.813 1.344 1.491.678 2.753.798 5.25 2.062 2.47 1.252 4.79 1.896 6.968 2.438 2.354.585 5.492.897 9.094 1.844-1.15-.992-6.852-1.784-8.656-2.188s-3.916-1.021-6.594-2.25c-2.678-1.229-3.403-1.61-5.656-2.281-2.253-.67-3.896-1.002-6.219-.969z" enable-background="new" filter="url(#gk)"/>
5752 xml:space="preserve" 1059 <path d="M743.56-211.19c1.793.13 4.273.55 5.75 1.188s2.716.741 5.188 1.937c2.446 1.184 4.72 1.747 6.874 2.219 2.328.51 5.42.68 9 1.562-1.143-.97-6.747-1.59-8.53-1.937-1.784-.347-3.884-.888-6.532-2.031-2.648-1.144-3.395-1.517-5.625-2.125-2.23-.61-3.826-.91-6.125-.813z" enable-background="new" filter="url(#gj)"/>
5753 style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" 1060 <g fill="#fff" filter="url(#gi)">
5754 x="1455.4426" 1061 <path d="M744.94-212.12s7.222-3.223 9.063-3.5 3.352-.003 6 .563c2.647.565 8.735 2.215 11.188 3.374s5.312 3.563 5.312 3.563-7.146-2.78-10.188-3.563-7.645-2.083-10.375-2.312-11 1.875-11 1.875z"/>
5755 y="-26.808125" 1062 <path d="m735.47-206.95s3.66-2.223 5.5-2.5 3.665 0.247 6.313 0.813 8.735 2.215 11.188 3.375 6.562 2.125 6.562 2.125-8.396-1.343-11.438-2.125-7.957-2.334-10.688-2.563-7.438 0.875-7.438 0.875zm24.38-10.66s8.544-3.299 10.398-3.458c1.854-0.16 3.642 0.48 6.248 1.212s8.577 2.766 10.95 4.08 6.414 2.537 6.414 2.537-8.294-1.873-11.279-2.848c-2.985-0.974-7.792-2.834-10.503-3.236s-12.228 1.713-12.228 1.713zm15.35-5.62s7.771-2.782 9.628-2.904c1.857-0.12 3.631 0.555 6.222 1.341 2.59 0.787 8.519 2.942 10.864 4.304 2.346 1.362 6.36 2.67 6.36 2.67s-8.253-2.045-11.217-3.08c-2.965-1.035-7.733-2.995-10.434-3.452-2.702-0.458-11.422 1.121-11.422 1.121zm14.44-4.72s8.683-3.52 10.542-3.605 3.62 0.624 6.195 1.46c2.575 0.837 8.46 3.107 10.779 4.514 2.318 1.408 6.307 2.793 6.307 2.793s-8.212-2.204-11.156-3.297-7.673-3.144-10.365-3.654-12.3 1.789-12.3 1.789zm14.86-5.38s7.808-2.583 9.666-2.668c1.86-0.085 3.62
5756 id="text8200-4-9-3-5-6-9" 10630.625 6.195 1.461 2.575 0.837 8.46 3.107 10.78 4.514 2.318 1.407 6.307 2.792 6.307 2.792s-8.213-2.204-11.156-3.296-7.673-3.144-10.365-3.654-11.426 0.85-11.426 0.85zm15.06-4.25s8.558-2.583 10.417-2.668 3.62 0.625 6.195 1.461c2.575 0.837 8.46 3.107 10.779 4.514 2.318 1.407 6.307 2.792 6.307 2.792s-8.212-2.204-11.156-3.296-7.673-3.144-10.365-3.654-12.176 0.85-12.176 0.85zm16.67-5.02s6.967-1.987 8.828-1.968c1.86 0.02 3.579 0.827 6.102 1.807 2.524 0.98 8.272 3.578 10.508 5.113 2.236 1.536 6.14 3.143 6.14 3.143s-8.075-2.662-10.952-3.919c-2.878-1.256-7.484-3.57-10.143-4.231-2.66-0.66-10.482 0.055-10.482 0.055zm14.5-3.4s7.688-2.028 9.548-1.968 3.56 0.902 6.063 1.936c2.502 1.033 8.194 3.752 10.397 5.335 2.203 1.582 6.072 3.272 6.072 3.272s-8.017-2.833-10.868-4.15c-2.85-1.318-7.407-3.73-10.05-4.446s-11.162 0.021-11.162 0.021zm14.09-3.21s8.17-1.97 10.027-1.854c1.857 0.115 3.532 1.01 6.002
5757 sodipodi:linespacing="125%"><tspan 10642.118s8.077 3.997 10.23 5.645 5.972 3.454 5.972 3.454-7.928-3.074-10.738-4.476-7.291-3.95-9.913-4.746c-2.621-0.796-11.58-0.141-11.58-0.141zm16.56-2.39s8.085-1.908 9.938-1.737c1.853 0.172 3.5 1.117 5.935 2.3 2.436 1.182 7.952 4.24 10.055 5.953s5.864 3.633 5.864 3.633-7.832-3.312-10.597-4.8-7.168-4.169-9.764-5.044c-2.597-0.876-11.431-0.305-11.431-0.305zm15.2-2.75s7.642-1.428 9.495-1.265c1.854 0.162 3.505 1.1 5.946 2.27s7.973 4.203 10.084 5.905c2.112 1.703 5.881 3.605 5.881 3.605s-7.847-3.274-10.62-4.748c-2.772-1.474-7.187-4.135-9.788-4.998-2.6-0.863-10.998-0.77-10.998-0.77zm14.87-1.64s8.642-1.553 10.495-1.39c1.854 0.162 3.505 1.1 5.946 2.27s7.972 4.203 10.084 5.905c2.111 1.703 5.88 3.605 5.88 3.605s-7.846-3.274-10.62-4.748c-2.772-1.474-7.187-4.135-9.787-4.998-2.601-0.863-11.998-0.644-11.998-0.644zm16.25-2.31s7.642-0.865 9.495-0.703c1.854 0.163 3.505 1.1 5.946 2.27s7.973 4.203 10.084
5758 sodipodi:role="line" 10655.906c2.112 1.702 5.881 3.605 5.881 3.605s-7.847-3.275-10.62-4.749c-2.772-1.474-7.187-4.135-9.788-4.998-2.6-0.862-10.998-1.331-10.998-1.331zm15.13-1.19s8.58-1.49 10.433-1.328c1.854 0.163 3.505 1.1 5.946 2.27s7.972 4.203 10.084 5.906c2.111 1.702 5.88 3.605 5.88 3.605s-7.846-3.275-10.62-4.749c-2.772-1.474-7.187-4.135-9.787-4.998-2.601-0.862-11.935-0.706-11.935-0.706zm16.25-2.06s7.83-0.803 9.683-0.64c1.854 0.162 3.505 1.1 5.946 2.27s7.972 4.203 10.084 5.905c2.111 1.703 5.88 3.605 5.88 3.605s-7.846-3.274-10.62-4.748c-2.772-1.474-7.187-4.135-9.787-4.998-2.601-0.863-11.185-1.394-11.185-1.394zm15.37-1.25s8.392-1.178 10.245-1.015c1.854 0.162 3.505 1.1 5.946 2.27s7.972 4.203 10.084 5.905c2.111 1.703 5.88 3.605 5.88 3.605s-7.847-3.274-10.62-4.748c-2.772-1.474-7.187-4.135-9.788-4.998-2.6-0.863-11.748-1.02-11.748-1.02zm16.19-2.06s6.892-0.99 8.745-0.828c1.854 0.163 3.505 1.1 5.946 2.27s7.973 4.203
5759 id="tspan8202-5-3-6-3-2-1" 106610.084 5.906c2.112 1.702 5.881 3.605 5.881 3.605s-7.847-3.275-10.62-4.749-7.188-4.135-9.788-4.998c-2.6-0.862-10.248-1.206-10.248-1.206zm17.16-0.94s6.83-1.178 8.683-1.015c1.854 0.162 3.505 1.1 5.946 2.27 2.44 1.171 7.972 4.203 10.084 5.905 2.111 1.703 5.88 3.605 5.88 3.605s-7.847-3.274-10.62-4.748c-2.772-1.474-7.187-4.135-9.788-4.998-2.6-0.863-10.185-1.02-10.185-1.02zm16.1-2s6.08-0.428 7.933-0.265c1.854 0.162 3.505 1.1 5.946 2.27 2.44 1.171 7.972 4.203 10.084 5.905 2.111 1.703 5.88 3.605 5.88 3.605s-7.847-3.274-10.62-4.748c-2.772-1.474-7.187-4.135-9.788-4.998-2.6-0.863-9.435-1.77-9.435-1.77zm15.8-1.37s6.454-0.678 8.308-0.515c1.854 0.162 3.505 1.1 5.946 2.27 2.44 1.171 7.972 4.203 10.084 5.905 2.111 1.703 5.88 3.605 5.88 3.605s-7.847-3.274-10.62-4.748c-2.772-1.474-7.187-4.135-9.788-4.998-2.6-0.863-9.81-1.52-9.81-1.52zm15.6-1.86s5.498-0.91 7.358-0.853c1.86 0.056 3.562 0.896 6.066 1.925
5760 x="1455.4426" 10672.504 1.03 8.2 3.739 10.406 5.318 2.205 1.578 6.078 3.261 6.078 3.261s-8.022-2.819-10.875-4.131c-2.853-1.313-7.413-3.716-10.06-4.429-2.645-0.712-8.973-1.091-8.973-1.091zm17.4-2.46s4.547-1.156 6.408-1.186c1.86-0.03 3.6 0.73 6.149 1.642 2.55 0.912 8.365 3.354 10.64 4.829 2.277 1.474 6.224 2.976 6.224 2.976s-8.145-2.444-11.055-3.623c-2.91-1.178-7.578-3.368-10.253-3.957-2.676-0.588-8.113-0.68-8.113-0.68zm14.5-3.03s5.96-1.774 7.82-1.83c1.86-0.057 3.61 0.68 6.172 1.555 2.562 0.876 2.522 0.857 5.333 1.49 2.797 0.63 7.077 1.513 7.077 1.513s-3.616-0.016-6.792-0.466c-3.116-0.441-7.375-1.698-10.058-2.249-2.684-0.55-9.552-0.013-9.552-0.013z" enable-background="new"/>
5761 y="-26.808125" 1068 <path d="M1099.2-279.93c.161.269 11.208-4.6 12.188-4.688.98-.087 2 3.125 2 3.125s-.775-1.504-2.875-1.062-11.301 2.671-11.312 2.625z"/>
5762 style="font-size:50px;fill:#000000;fill-opacity:1">overscan area</tspan></text> 1069 </g>
5763 <text 1070 <path d="M1107.5-284.09c-.419.213-.156.094-.647.306-.486.21-1.724.574-4.08 1.459-3.33 1.25-5.83 2.153-7.026 3.066-1.536.021-3.72.233-5.656.719a227.709 227.709 0 0 1-6.75 1.593c-1.895.42-1.676.643-2.875.875-1.297.252-1.721-.009-5.438.782-3.49.742-8.894 1.93-10.156 2.687-1.583-.18-3.867-.322-5.843-.031-3.04.447-4.917.673-6.844.906-.655.08-1.041.201-1.344.282-.426.131-.686.26-1.375.343-1.311.16-1.762-.157-5.531.282-3.554.413-9.005 1.272-10.25 1.937-1.599-.297-3.858-.534-5.844-.344-3.059.294-4.972.484-6.906.657-1.934.172-1.689.422-2.906.53-1.317.118-1.76-.163-5.532.25-3.541.39-9.007 1.21-10.28 1.876-1.6-.295-3.888-.507-5.876-.313-3.058.3-4.94.48-6.875.657-.657.06-1.04.178-1.343.25-.428.118-.684.218-1.375.28-1.316.121-1.76-.194-5.532.22-3.556.39-9.005 1.239-10.25
5764 xml:space="preserve" 10711.906-1.598-.294-3.86-.524-5.843-.313-3.056.326-4.974.526-6.907.719-1.932.192-1.69.44-2.906.562-1.315.132-1.763-.164-5.53.282-3.54.418-8.979 1.292-10.25 1.969-1.599-.282-3.86-.42-5.845-.188-3.052.358-4.945.568-6.875.781-.656.073-1.04.173-1.344.25-.426.127-.684.267-1.375.344-1.313.146-1.767-.174-5.53.313-3.55.458-8.98 1.419-10.22 2.125-1.593-.245-3.834-.382-5.812-.125-3.048.394-4.95.648-6.875.906-1.925.258-1.726.493-2.938.656-1.31.176-1.747-.104-5.5.469-3.524.538-8.923 1.699-10.188 2.437-1.587-.203-3.845-.254-5.812.094-3.026.536-4.9.862-6.813 1.187-.65.111-1.013.271-1.312.375-.42.165-.664.332-1.344.47-1.295.26-1.727-.007-5.438.812-3.498.772-8.846 2.383-10.062 3.219-1.562-.078-3.757.085-5.687.593-2.972.783-4.818 1.232-6.688 1.75s-1.666.768-2.843 1.094c-1.273.353-1.697.107-5.344 1.188-3.425 1.014-8.65 2.933-9.875 3.843-1.539.013-3.72.273-5.625.875-2.931.928-4.75 1.459-6.594
5765 style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#f8d615;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" 10722.063-.627.205-.992.392-1.281.531-.408.214-.653.409-1.313.625-1.254.412-1.686.19-5.28 1.438-3.39 1.177-8.596 3.213-9.782 4.156-1.524.06-3.65.395-5.531 1.062-2.898 1.029-4.7 1.676-6.531 2.313-1.833.637-1.628.848-2.782 1.25-1.246.434-1.663.2-5.218 1.562-3.34 1.28-8.488 3.483-9.688 4.47-1.507.107-3.636.498-5.5 1.218a1044.752 1044.752 0 0 1-6.437 2.469c-.617.233-.997.442-1.282.593v1.094c.112-.222.386-.817.907-1.094.698-.37 4.813-1.993 6.812-2.718 1.657-.602 4.154-1.329 5.969-1.313.302.003.588.051.844.094 1.842.308 7.468 1.562 7.468 1.562s-6.233-1.646-7.03-1.843c-.191-.048-.536-.07-.97-.063 1.146-.87 4.762-2.393 7.344-3.437 2.839-1.148 3.117-1.252 5.063-1.657 2.008-.417 3.156-.5 3.156-.5s-.082-.6.969-1.125c.705-.351 4.887-1.892 6.906-2.562 1.952-.648 5.057-1.359 6.875-1 1.863.367 7.531 1.812 7.531 1.812s-6.287-1.87-7.094-2.093c-.193-.054-.53-.086-.968-.094 1.158-.833 4.794-2.195 7.406-3.156
5766 x="179.63055" 10732.87-1.056 3.167-1.162 5.125-1.532 1.853-.35 2.859-.425 3.031-.437.114-.217.377-.81.906-1.063.71-.338 4.926-1.712 6.97-2.312 1.692-.497 4.24-1.037 6.093-.906.308.021.613.097.875.156 1.881.424 7.594 2.031 7.594 2.031s-6.342-2.065-7.157-2.312c-.194-.06-.557-.104-1-.125 1.17-.798 4.863-2.057 7.5-2.938 2.898-.968 3.233-1.003 5.22-1.281 2.049-.287 3.187-.313 3.187-.313s-.073-.607 1-1.062c.72-.306 4.99-1.5 7.062-2 2.003-.483 5.199-.928 7.063-.406 1.91.535 7.719 2.5 7.719 2.5s-6.423-2.424-7.25-2.72c-.198-.07-.583-.14-1.032-.187 1.188-.728 4.916-1.774 7.594-2.5 2.944-.797 3.292-.77 5.313-.906 1.913-.128 2.947-.07 3.125-.062.117-.204.391-.78.937-.97.732-.253 5.079-1.047 7.188-1.374 1.748-.271 4.4-.485 6.312-.094.318.065.605.186.875.281 1.94.69 7.844 3.094 7.844 3.094s-6.535-2.95-7.375-3.312c-.201-.087-.575-.167-1.031-.25 1.206-.633 5.03-1.396 7.75-1.906 2.99-.562 3.3-.53 5.344-.532 2.109-.002
5767 y="385.38785" 10743.312.125 3.312.125s-.073-.63 1.031-.937c.74-.206 5.126-.834 7.25-1.063 2.053-.22 5.319-.252 7.22.47 1.947.738 7.843 3.374 7.843 3.374s-6.563-3.179-7.406-3.562c-.202-.092-.543-.187-1-.282 1.21-.602 4.984-1.248 7.718-1.656 3.005-.448 3.326-.452 5.375-.406 1.94.043 3.007.194 3.188.219.119-.194.384-.766.937-.907.743-.188 5.155-.734 7.282-.937 1.763-.169 4.42-.234 6.343.25.32.08.604.203.875.312 1.953.784 7.907 3.47 7.907 3.47s-6.592-3.254-7.438-3.657c-.202-.096-.572-.207-1.031-.313 1.214-.574 5.044-1.122 7.781-1.5 3.009-.415 3.323-.442 5.375-.375 2.118.07 3.313.25 3.313.25s-.078-.637 1.03-.906c.745-.18 5.153-.663 7.282-.844 2.059-.174 5.343-.124 7.25.657 1.955.8 7.875 3.53 7.875 3.53s-6.56-3.308-7.406-3.718c-.202-.098-.572-.203-1.031-.312 1.215-.564 5.01-1.115 7.75-1.47 3.01-.389 3.321-.397 5.375-.312 1.944.08 3.006.254 3.187.282.12-.191.383-.746.938-.875.744-.174 5.15-.65 7.28-.813
5768 id="text8200-4-9-2" 10751.767-.134 4.45-.126 6.376.375.32.083.603.201.875.313 1.954.8 7.906 3.562 7.906 3.562s-6.591-3.34-7.437-3.75c-.203-.098-.572-.203-1.032-.312 1.215-.564 5.042-1.084 7.782-1.438 3.01-.39 3.352-.429 5.406-.344 2.12.088 3.312.313 3.312.313s-.078-.65 1.032-.906c.744-.173 5.15-.624 7.28-.782 2.061-.152 5.344-.096 7.25.688 1.956.804 7.876 3.5 7.876 3.5s-6.56-3.276-7.406-3.688c-.203-.098-.572-.202-1.032-.312 1.216-.562 5.012-1.128 7.75-1.5 3.01-.41 3.323-.416 5.375-.344 1.943.068 3.008.165 3.188.188.119-.195.384-.73.937-.875.742-.197 5.131-.83 7.25-1.094 1.757-.22 4.406-.333 6.313.031.317.06.606.19.875.281 1.936.661 7.844 2.938 7.844 2.938s-6.537-2.807-7.375-3.156c-.2-.084-.577-.174-1.032-.25 1.204-.651 5.02-1.372 7.72-2 2.966-.69 3.288-.756 5.312-.875 2.088-.124 3.28-.032 3.28-.032s-.086-.632 1-1.03c.73-.269 5.048-1.339 7.126-1.813 2.008-.46 5.168-1.03 7-.625 1.878.414 13.578 3.015 13.578
5769 sodipodi:linespacing="125%"><tspan 10763.015s-12.328-3.022-13.141-3.265c-.195-.058-.559-.107-1-.125 1.167-.804 3.514-1.688 6.11-2.703 1.68-.659.923-.377 2.775-1.004 1.754-.594 2.486-1.01 2.63-1.113.347-.207-.355-.122-.544-.042z" enable-background="new" filter="url(#gh)" opacity=".25"/>
5770 sodipodi:role="line" 1077 <path d="m1082.6-275.12c1.873 0.393 4.496 1.146 6.031 1.969s2.822 1.056 5.375 2.5c2.527 1.43 4.796 2.007 6.969 2.531 2.348 0.566 5.435 0.715 8.844 1.188-1.09-0.84-6.608-1.173-8.406-1.563-1.8-0.39-3.895-1.016-6.594-2.313-2.7-1.296-3.495-1.799-5.813-2.687-2.318-0.889-4.004-1.383-6.406-1.625z" enable-background="new" filter="url(#gg)" opacity=".25"/>
5771 id="tspan8202-5-3-7" 1078 <path d="M1051.5-270c1.905.578 4.528 1.616 6.094 2.594 1.565.978 2.88 1.36 5.5 3.125 2.593 1.747 4.986 2.71 7.25 3.594 2.446.955 5.682 1.657 9.406 3.062-1.19-1.138-7.063-2.687-8.938-3.375-1.874-.688-4.081-1.566-6.874-3.281-2.794-1.715-3.574-2.284-5.938-3.406-2.364-1.123-4.057-1.835-6.5-2.313z" enable-background="new" filter="url(#gf)" opacity=".25"/>
5772 x="179.63055" 1079 <path d="m1020.2-266.84c1.912 0.638 4.581 1.755 6.156 2.813 1.575 1.057 2.896 1.508 5.531 3.406 2.61 1.878 5.029 3.03 7.313 4.062 2.468 1.116 5.764 2.174 9.531 3.844-1.203-1.222-7.203-3.314-9.094-4.125-1.89-0.81-4.064-1.894-6.874-3.75s-3.622-2.477-6-3.719c-2.379-1.242-4.111-1.975-6.563-2.531z" enable-background="new" filter="url(#ge)" opacity=".25"/>
5773 y="385.38785" 1080 <path d="M1110.2-266.89c.15.049.688.631.11 1.484-.81 1.195-5.705 3.325-8.563 4.125-2.845.798-6.29.978-10.562-.375-4.302-1.362-5.47-2.468-10.656-4.312 4.664 2.115 6.195 3.952 10.125 5.344 1.62.574 3.367.94 5.062 1.03-.445.327-1.53.984-3.562 1.595-2.796.84-6.65 1.534-8.25 1.625-1.515.086-3.142-.513-3.438-.625.167.103.374.377-.25 1.03-.899.945-6.147 1.924-9.125 2.25-2.964.326-6.521-.015-10.906-1.905-3.978-1.715-5.339-2.916-9.406-4.75v.156c3.643 2.095 5.284 3.883 8.875 5.562 1.73.81 3.592 1.41 5.406 1.72-.534.286-1.557.71-3.437 1.03-2.87.488-6.81.817-8.438.75-.85-.034-1.728-.184-2.406-.406-.685-.215-1.19-.444-1.312-.5.169.107.43.403-.22 1.031-.909.88-6.245 1.337-9.25 1.47-2.99.131-6.588-.451-11-2.563-4.44-2.127-5.64-3.402-10.905-5.782 4.734 2.597 6.286 4.63 10.344 6.72 1.673.861 3.485 1.493 5.25
5774 style="font-size:50px;fill:#f8d615;fill-opacity:1">CROP_ACTIVE</tspan></text> 10811.937-.463.233-1.59.688-3.688.937-2.886.343-6.834.493-8.468.375-1.547-.111-3.232-.857-3.532-1 .17.12.414.41-.218 1-.913.851-6.244 1.262-9.25 1.375-2.993.113-6.59-.49-11-2.594-4.002-1.908-5.388-3.137-9.47-5.093v.156c3.656 2.204 5.295 4.053 8.907 5.906 1.74.893 3.637 1.528 5.469 1.969-.54.248-1.578.615-3.469.844-2.886.348-6.866.52-8.5.406a9.446 9.446 0 0 1-2.406-.5 12.532 12.532 0 0 1-1.313-.531c.17.112.465.422-.187 1.03-.913.853-6.275 1.294-9.281 1.407-2.993.112-6.594-.528-11-2.594-4.437-2.08-5.647-3.331-10.906-5.656 4.729 2.548 6.29 4.578 10.344 6.625 1.671.844 3.485 1.467 5.25 1.906-.464.235-1.59.684-3.688.938-2.886.348-6.836.57-8.469.469-1.544-.096-3.2-.83-3.5-.97.17.12.382.405-.25 1-.912.861-6.246 1.331-9.25 1.47-2.99.138-6.567-.451-10.969-2.47-3.993-1.83-5.365-3.028-9.437-4.905v.156c3.647 2.133 5.27 3.935 8.875 5.719 1.737.86 3.607 1.45 5.437
5775 <text 10821.875-.54.253-1.55.64-3.437.906-2.88.404-6.838.646-8.469.562a9.36 9.36 0 0 1-2.406-.437 12.971 12.971 0 0 1-1.313-.5c.17.109.432.41-.218 1.031-.911.87-6.25 1.392-9.25 1.563-2.987.17-6.574-.316-10.97-2.282-4.424-1.978-5.605-3.228-10.843-5.375 4.71 2.388 6.27 4.39 10.312 6.344a23.73 23.73 0 0 0 5.218 1.781c-.461.25-1.597.713-3.687 1.032-2.876.438-6.78.733-8.406.687-1.539-.043-3.233-.745-3.532-.875.169.113.411.414-.218 1.031-.908.891-6.203 1.529-9.188 1.813-2.971.283-6.573-.176-10.938-1.938-3.96-1.598-5.329-2.795-9.344-4.312v.156c3.596 1.811 5.239 3.582 8.813 5.156 1.722.759 3.587 1.29 5.406 1.625-.536.28-1.566.688-3.437 1.063-2.856.572-6.79 1.02-8.407 1.031-.844.006-1.706-.08-2.375-.25-.676-.162-1.16-.33-1.28-.375.166.094.422.383-.22 1.062-.897.951-6.186 1.918-9.125 2.438-2.925.518-6.432.374-10.719-1.031-4.315-1.415-5.472-2.53-10.562-3.969 4.577 1.751 6.09 3.56 10.031 5 1.627.594 3.37.956
5776 xml:space="preserve" 10835.094 1.156-.453.297-1.555.884-3.594 1.469-2.804.805-6.638 1.576-8.218 1.75-1.495.165-3.117-.317-3.407-.406.164.09.393.36-.218 1.062-.883 1.014-6.045 2.372-8.938 3.063-2.88.687-6.335.76-10.562-.438-3.835-1.086-5.172-2.072-9.062-3.125v.156c3.484 1.395 5.07 2.92 8.53 4.032 1.669.535 3.457.786 5.22.875-.52.352-1.5.914-3.313 1.53-2.765.942-6.59 1.936-8.156 2.157-.818.115-1.633.123-2.281.031-.655-.083-1.133-.218-1.25-.25.162.075.434.34-.188 1.094-.87 1.055-6.01 2.66-8.875 3.438-2.852.774-6.259.958-10.438-.094-4.206-1.06-5.356-2.042-10.344-3.156 4.485 1.46 5.97 3.135 9.813 4.25 1.585.46 3.287.638 4.969.687-.442.337-1.513 1.028-3.5 1.781-2.734 1.037-6.452 2.163-8 2.438-1.465.26-3.06-.117-3.344-.188.16.08.38.321-.219 1.063-.865 1.07-5.916 2.818-8.75 3.687-2.82.866-6.207 1.157-10.344.22-3.753-.852-5.048-1.717-8.875-2.595v.157c3.428 1.237 4.987 2.632 8.375 3.53 1.632.434 3.367.584
5777 style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" 10845.094.563-.51.384-1.477 1.022-3.25 1.75-2.706 1.112-6.436 2.308-7.969 2.625-.8.166-1.612.219-2.25.157v1.406c.227-.145.449-.273.719-.375 1.08-.41 2.171-.216 6-1.688 3.828-1.471 5.224-2.005 5.906-2.406.68-.4 1.612-.88 2.219-1.531 1.827-.138 3.57-.493 4.937-1 2.968-1.1 4.876-1.806 6.782-2.469 1.905-.663 2.354-1.415 3.406-1.781 1.091-.38 2.195-.166 6.062-1.531 3.868-1.366 5.283-1.827 5.969-2.22.701-.4 1.7-.932 2.313-1.593 1.97-.055 3.816-.385 5.28-.875 3.002-1.005 4.927-1.622 6.845-2.25 1.538-.504 2.174-1.047 2.906-1.437.23-.135.475-.254.75-.344 1.098-.36 2.181-.082 6.094-1.313 3.912-1.23 5.366-1.673 6.062-2.03.694-.358 1.63-.794 2.25-1.407 1.865-.023 3.636-.267 5.031-.688 3.03-.913 4.993-1.43 6.938-1.968 1.945-.54 2.426-1.265 3.5-1.563 1.114-.31 2.22.007 6.187-1.031 3.968-1.039 5.418-1.433 6.125-1.75.735-.33 1.814-.754 2.438-1.375 1.997.116 3.857-.02 5.344-.375 3.078-.735 5.083-1.101
5778 x="636.67419" 10857.062-1.5 1.588-.32 2.244-.79 3-1.094.238-.107.467-.193.75-.25 1.134-.23 2.305.209 6.344-.5s5.5-.927 6.219-1.187c.715-.26 1.704-.568 2.343-1.094 1.925.24 3.748.224 5.188 0 3.126-.488 5.155-.7 7.156-.969 2.002-.268 2.489-.945 3.594-1.094 1.146-.154 2.276.302 6.344-.219 4.068-.52 5.56-.695 6.28-.937.738-.247 1.799-.586 2.438-1.125 2.05.335 3.974.398 5.5.219 3.143-.37 5.18-.56 7.188-.782 1.61-.178 2.265-.608 3.031-.843a3.43 3.43 0 0 1 .781-.188c1.15-.128 2.302.347 6.375-.125s5.56-.61 6.282-.844c.719-.232 1.7-.473 2.343-.968 1.937.333 3.77.404 5.22.25 3.145-.335 5.177-.519 7.187-.719 2.01-.2 2.484-.826 3.593-.938 1.152-.115 2.297.366 6.375-.062s5.59-.562 6.313-.781c.74-.224 1.796-.514 2.437-1.031 2.058.398 4.002.493 5.532.343 3.148-.308 5.175-.473 7.187-.656 1.614-.147 2.263-.56 3.031-.781.242-.081.494-.13.782-.156 1.152-.106 2.293.392 6.375 0 4.082-.393 5.589-.531 6.312-.75.721-.219
5779 y="-138.84549" 10861.7-.448 2.344-.938 1.938.35 3.769.454 5.219.313 3.148-.309 5.175-.474 7.187-.657 2.012-.183 2.514-.838 3.625-.937 1.152-.103 2.292.385 6.375 0s5.589-.501 6.313-.719c.739-.222 1.795-.514 2.437-1.031 2.057.402 4.003.503 5.531.344 3.147-.329 5.178-.523 7.188-.72 1.613-.156 2.266-.63 3.031-.874.24-.088.463-.122.75-.156 1.148-.14 2.317.34 6.375-.25 4.058-.59 5.562-.778 6.281-1.032.717-.253 1.675-.558 2.313-1.093 1.92.211 3.72.151 5.156-.094 3.12-.533 5.112-.929 7.094-1.313 1.982-.384 2.474-1.04 3.562-1.28 1.13-.252 2.27.115 6.25-.876s5.43-1.42 6.125-1.781c.723-.376 1.762-.87 2.375-1.531 1.963-.012 3.794-.291 5.22-.844 2.95-1.145 4.872-1.87 6.687-2.75 1.455-.707 2.334-1.686 2.547-1.984.212-.298.111-.746.137-.767.043-.035.32-.085.48-.429.858-1.847 2.32-5.644
5780 id="text8200-4-9-3-5-6-0" 10872.435-6.329.113-.682.163-1.348.214-1.745.03-.23-.147-.865-.125-.924.031-.082.305-.265.36-.515.267-1.198.09-2.191-.125-3.609-.214-1.417-.983-4.622-1.637-5.476-.659-.862-1.223-1.011-1.748-1-.208.27.137.262.163.312.68.05.934.369 1.42.897s1.221 3.85 1.358 5.301.19 2.86-.088 3.469c-.278.608-.723.517-1.016.583.531.186.67.125.732.969.058.813-.134 1.64-.52 2.806-.392 1.18-1.846 4.35-2.286 4.598-.452.256-.731.27-1.067.14z" enable-background="new" filter="url(#ff)" opacity=".25"/>
5781 sodipodi:linespacing="125%"><tspan 1088 <path d="m988.75-263.84c1.912 0.634 4.55 1.758 6.125 2.813 1.575 1.054 2.896 1.482 5.531 3.375 2.609 1.873 5.027 3.015 7.313 4.062 2.47 1.132 5.752 2.155 9.531 3.938-1.207-1.259-7.139-3.365-9.031-4.188s-4.128-1.93-6.938-3.781-3.622-2.482-6-3.719c-2.377-1.237-4.08-1.95-6.53-2.5z" enable-background="new" filter="url(#fe)" opacity=".25"/>
5782 sodipodi:role="line" 1089 <path d="M957.5-260.78c1.91.618 4.583 1.71 6.156 2.75 1.574 1.04 2.896 1.482 5.531 3.375 2.609 1.873 5.027 3.015 7.313 4.063 2.47 1.131 5.752 2.154 9.531 3.937-1.207-1.258-7.201-3.396-9.094-4.219-1.892-.823-4.096-1.93-6.906-3.781-2.81-1.85-3.593-2.44-5.969-3.656s-4.113-1.939-6.562-2.469z" enable-background="new" filter="url(#fd)" opacity=".25"/>
5783 id="tspan8202-5-3-6-3-2-9" 1090 <path d="M926.09-257.38c1.908.597 4.553 1.664 6.125 2.688 1.571 1.023 2.87 1.44 5.5 3.28 2.603 1.823 5.029 2.973 7.313 4 2.467 1.111 5.755 2.094 9.53 3.845-1.205-1.249-7.171-3.319-9.062-4.125s-4.102-1.891-6.906-3.688c-2.804-1.796-3.627-2.402-6-3.594-2.373-1.191-4.054-1.903-6.5-2.406z" enable-background="new" filter="url(#fc)" opacity=".25"/>
5784 x="636.67419" 1091 <path d="M894.91-253.56c1.902.554 4.587 1.589 6.156 2.594s2.874 1.408 5.5 3.219c2.6 1.791 5 2.871 7.281 3.875 2.465 1.083 5.76 2.04 9.532 3.75-1.205-1.236-7.175-3.245-9.063-4.032-1.888-.786-4.075-1.83-6.875-3.593s-3.6-2.369-5.969-3.532c-2.37-1.163-4.123-1.834-6.562-2.28z" enable-background="new" filter="url(#fb)" opacity=".25"/>
5785 y="-138.84549" 1092 <path d="M863.72-248.66c1.88.43 4.504 1.38 6.063 2.313 1.558.932 2.852 1.257 5.468 3 2.59 1.724 4.981 2.708 7.25 3.625 2.452.99 5.74 1.877 9.5 3.5-1.201-1.208-7.152-3.067-9.03-3.782-1.88-.715-4.086-1.684-6.876-3.375s-3.585-2.228-5.937-3.28-4.026-1.713-6.438-2z" enable-background="new" filter="url(#fa)" opacity=".25"/>
5786 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:70px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#000000;fill-opacity:1">DATA SOURCE</tspan></text> 1093 <path d="m833.16-241.38c1.848 0.296 4.47 0.976 6 1.781s2.814 1.056 5.375 2.531c2.535 1.46 4.89 2.326 7.125 3.063 2.414 0.797 5.657 1.467 9.375 2.844-1.188-1.129-7.088-2.59-8.938-3.156-1.85-0.567-4.003-1.374-6.75-2.844-2.746-1.47-3.5-1.92-5.812-2.781-2.311-0.861-4.005-1.32-6.375-1.438z" enable-background="new" filter="url(#ez)" opacity=".25"/>
5787 <text 1094 <path d="m802.91-232.31c1.822 0.211 4.366 0.8 5.875 1.531 1.51 0.73 2.756 0.93 5.281 2.281 2.5 1.338 4.832 2.049 7.031 2.657 2.377 0.656 5.565 1.073 9.22 2.187-1.168-1.045-6.93-2.103-8.75-2.562-1.822-0.46-3.953-1.127-6.657-2.438s-3.471-1.72-5.75-2.469-3.913-1.179-6.25-1.187z" enable-background="new" filter="url(#ey)" opacity=".25"/>
5788 xml:space="preserve" 1095 <path d="M773.19-222.19c1.811.179 4.32.665 5.813 1.344 1.491.678 2.753.798 5.25 2.062 2.47 1.252 4.79 1.896 6.968 2.438 2.354.585 5.492.897 9.094 1.844-1.15-.992-6.852-1.784-8.656-2.188s-3.916-1.021-6.594-2.25c-2.678-1.229-3.403-1.61-5.656-2.281-2.253-.67-3.896-1.002-6.219-.969z" enable-background="new" filter="url(#ex)" opacity=".25"/>
5789 style="font-style:normal;font-weight:normal;font-size:45.31394196px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;display:inline;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;enable-background:new" 1096 <path d="M743.56-211.19c1.793.13 4.273.55 5.75 1.188s2.716.741 5.188 1.937c2.446 1.184 4.72 1.747 6.874 2.219 2.328.51 5.42.68 9 1.562-1.143-.97-6.747-1.59-8.53-1.937-1.784-.347-3.884-.888-6.532-2.031-2.648-1.144-3.395-1.517-5.625-2.125-2.23-.61-3.826-.91-6.125-.813z" enable-background="new" filter="url(#ew)" opacity=".25"/>
5790 x="3178.7151" 1097 </g>
5791 y="-129.06131" 1098 </g>
5792 id="text8200-4-9-3-5-6-0-3" 1099 <path d="M3840.7 940.04c1.651-7.722 3.538-13.762 4.889-23.633.803-8.777 3.33-4.873 7.302-20.148 1.41-5.374 5.507.94 9.016-5.757 1.278-1.927 2.901-.97 4.508-.151 3.787 3.165 5.859 8.887 8.381 13.937 6.174 14.326 20.651 19.06 23.62 15.149 1.442-6.97 7.926-12.979 12.444-26.663.752-2.694 11.796-20.982 14.73-15.755" enable-background="new" fill="none" stroke="#000"/>
5793 sodipodi:linespacing="125%" 1100 <path d="M3865.4 915.04c7.405-7.758 13.89-21.376 20.826-32.117 3.33-4.726 6.909 7.717 10.857 8.635 2.31-.523 3.734 2.886 5.714 3.939 5.186 3.162 2.412 9.274 10.032 15.452 6.191 4.128 8.958-16.313 14.985-17.573 4.906-1.207 8.145-.758 11.683-.606 3.95.333 4.102-8.393 6.096-12.725 2.997-6.731 7.196-4.438 10.203-11.376 1.023-3.323 1.965-7.224 2.75-12.257.887-4.8 3.057.734 4.825 3.03" enable-background="new" fill="none" stroke="#000"/>
5794 transform="scale(0.96105877,1.0405191)"><tspan 1101 <g transform="matrix(1.0057 0 0 2.3995 3249.4 125.01)" clip-path="url(#ev)" filter="url(#eu)">
5795 sodipodi:role="line" 1102 <path d="M910.14 746.31l32.613 5.174-.361-23.876 7.188-29.682-8.45-5.264-21.823 26.511-9.167 27.137z" enable-background="accumulate" fill="#fff" fill-rule="evenodd"/>
5796 id="tspan8202-5-3-6-3-2-9-6" 1103 <path d="M877.52 650.19h123.04v172.53H877.52z" enable-background="accumulate" fill="none"/>
5797 x="3178.7151" 1104 </g>
5798 y="-129.06131" 1105 <g transform="matrix(1.0057 0 0 2.3995 3249.4 125.01)" clip-path="url(#et)" filter="url(#es)">
5799 style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:69.99999978px;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';fill:#000000;fill-opacity:1">DATA SINK</tspan></text> 1106 <path d="M964 754.69l18.429 7.465 9.071-36.964-14.87 4.839L964 754.69z" enable-background="accumulate" fill="#fff" fill-rule="evenodd"/>
5800 <flowRoot 1107 <path d="M924.9 677.06h142.13v125.16H924.9z" enable-background="accumulate" fill="none"/>
5801 xml:space="preserve" 1108 </g>
5802 id="flowRoot7469" 1109 </g>
5803 style="fill:black;stroke:none;stroke-opacity:1;stroke-width:1px;stroke-linejoin:miter;stroke-linecap:butt;fill-opacity:1;font-family:sans-serif;font-style:normal;font-weight:normal;font-size:57.5px;line-height:125%;letter-spacing:0px;word-spacing:0px;"><flowRegion 1110 <path d="m592.8 398.62l2899.5-102.16" fill="#f8d615" fill-rule="evenodd" marker-end="url(#er)" stroke="#f8d615" stroke-width="17.844"/>
5804 id="flowRegion7471"><rect 1111 <path d="m576.48 779.92l2914.5 416.44" enable-background="new" fill="#f8d615" fill-rule="evenodd" marker-end="url(#eq)" stroke="#f8d615" stroke-width="18"/>
5805 id="rect7473" 1112 <g font-family="sans-serif" letter-spacing="0" word-spacing="0">
5806 width="4297.5474" 1113 <text transform="translate(48.571 195.53)" x="80.219" y="107.387" fill="#f83615" font-size="40" style="line-height:125%">
5807 height="1851.537" 1114 <tspan x="80.219" y="107.387" font-size="50">CROP_DEFAULT</tspan>
5808 x="-52.635666" 1115 </text>
5809 y="70.623535" 1116 <g font-size="45.314">
5810 style="font-size:57.5px;" /></flowRegion><flowPara 1117 <text transform="matrix(.96106 0 0 1.0405 48.571 195.53)" x="3861.367" y="1281.72" enable-background="new" fill="#f80000" fill-opacity="0" style="line-height:125%">
5811 id="flowPara7475"></flowPara></flowRoot> </g> 1118 <tspan x="3861.367" y="1281.72" font-size="56.642">COMPOSE_PADDED</tspan>
1119 </text>
1120 <text transform="matrix(.96106 0 0 1.0405 48.571 195.53)" x="3615.155" y="49.157" enable-background="new" fill="#f8d615" style="line-height:125%">
1121 <tspan x="3615.155" y="49.157" font-size="50">COMPOSE_ACTIVE</tspan>
1122 </text>
1123 <text transform="matrix(.96106 0 0 1.0405 48.571 195.53)" x="2429.153" y="-3.166" enable-background="new" fill="#f83615" style="line-height:125%">
1124 <tspan x="2429.153" y="-3.166" font-size="50">COMPOSE_DEFAULT</tspan>
1125 </text>
1126 <text transform="matrix(.96106 0 0 1.0405 48.571 195.53)" x="3681.545" y="1289.954" enable-background="new" fill="#f815bb" style="line-height:125%">
1127 <tspan x="3681.545" y="1289.954" font-size="50">COMPOSE_PADDED</tspan>
1128 </text>
1129 </g>
1130 <text transform="matrix(.96106 0 0 1.0405 48.571 195.53)" x="2438.062" y="1368.429" enable-background="new" font-size="50" style="line-height:125%">
1131 <tspan x="2438.062" y="1368.429">COMPOSE_BONDS</tspan>
1132 </text>
1133 <g font-size="40">
1134 <text transform="translate(48.571 195.53)" x="8.082" y="1438.896" enable-background="new" style="line-height:125%">
1135 <tspan x="8.082" y="1438.896" font-size="50">CROP_BONDS</tspan>
1136 </text>
1137 <text transform="translate(48.571 195.53)" x="1455.443" y="-26.808" enable-background="new" style="line-height:125%">
1138 <tspan x="1455.443" y="-26.808" font-size="50">overscan area</tspan>
1139 </text>
1140 <text transform="translate(48.571 195.53)" x="179.631" y="385.388" enable-background="new" fill="#f8d615" style="line-height:125%">
1141 <tspan x="179.631" y="385.388" font-size="50">CROP_ACTIVE</tspan>
1142 </text>
1143 <text transform="translate(48.571 195.53)" x="636.674" y="-138.845" enable-background="new" style="line-height:125%">
1144 <tspan x="636.674" y="-138.845" font-size="70" font-weight="bold">DATA SOURCE</tspan>
1145 </text>
1146 </g>
1147 <text transform="matrix(.96106 0 0 1.0405 48.571 195.53)" x="3178.715" y="-129.061" enable-background="new" font-size="45.314" style="line-height:125%">
1148 <tspan x="3178.715" y="-129.061" font-size="70" font-weight="bold">DATA SINK</tspan>
1149 </text>
1150 </g>
5812</svg> 1151</svg>
diff --git a/Documentation/media/uapi/v4l/subdev-image-processing-crop.svg b/Documentation/media/uapi/v4l/subdev-image-processing-crop.svg
index 1903dd3846c2..ee1df49f83e8 100644
--- a/Documentation/media/uapi/v4l/subdev-image-processing-crop.svg
+++ b/Documentation/media/uapi/v4l/subdev-image-processing-crop.svg
@@ -18,11 +18,11 @@
18 id="metadata100"> 18 id="metadata100">
19 <rdf:RDF> 19 <rdf:RDF>
20 <cc:Work 20 <cc:Work
21 rdf:about=""> 21 rdf:about="">
22 <dc:format>image/svg+xml</dc:format> 22 <dc:format>image/svg+xml</dc:format>
23 <dc:type 23 <dc:type
24 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 24 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
25 <dc:title /> 25 <dc:title />
26 </cc:Work> 26 </cc:Work>
27 </rdf:RDF> 27 </rdf:RDF>
28 </metadata> 28 </metadata>
diff --git a/Documentation/media/uapi/v4l/subdev-image-processing-full.svg b/Documentation/media/uapi/v4l/subdev-image-processing-full.svg
index 91cf51832c12..c10d222b9ea9 100644
--- a/Documentation/media/uapi/v4l/subdev-image-processing-full.svg
+++ b/Documentation/media/uapi/v4l/subdev-image-processing-full.svg
@@ -18,11 +18,11 @@
18 id="metadata260"> 18 id="metadata260">
19 <rdf:RDF> 19 <rdf:RDF>
20 <cc:Work 20 <cc:Work
21 rdf:about=""> 21 rdf:about="">
22 <dc:format>image/svg+xml</dc:format> 22 <dc:format>image/svg+xml</dc:format>
23 <dc:type 23 <dc:type
24 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 24 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
25 <dc:title /> 25 <dc:title />
26 </cc:Work> 26 </cc:Work>
27 </rdf:RDF> 27 </rdf:RDF>
28 </metadata> 28 </metadata>
diff --git a/Documentation/media/uapi/v4l/subdev-image-processing-scaling-multi-source.svg b/Documentation/media/uapi/v4l/subdev-image-processing-scaling-multi-source.svg
index cedcbf598923..3cb68bf9fc04 100644
--- a/Documentation/media/uapi/v4l/subdev-image-processing-scaling-multi-source.svg
+++ b/Documentation/media/uapi/v4l/subdev-image-processing-scaling-multi-source.svg
@@ -18,11 +18,11 @@
18 id="metadata186"> 18 id="metadata186">
19 <rdf:RDF> 19 <rdf:RDF>
20 <cc:Work 20 <cc:Work
21 rdf:about=""> 21 rdf:about="">
22 <dc:format>image/svg+xml</dc:format> 22 <dc:format>image/svg+xml</dc:format>
23 <dc:type 23 <dc:type
24 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> 24 rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
25 <dc:title /> 25 <dc:title />
26 </cc:Work> 26 </cc:Work>
27 </rdf:RDF> 27 </rdf:RDF>
28 </metadata> 28 </metadata>
diff --git a/Documentation/media/uapi/v4l/vbi_525.svg b/Documentation/media/uapi/v4l/vbi_525.svg
index b05f7777ccf8..643aec8d0ba2 100644
--- a/Documentation/media/uapi/v4l/vbi_525.svg
+++ b/Documentation/media/uapi/v4l/vbi_525.svg
@@ -42,19 +42,21 @@
42 inkscape:current-layer="g10" 42 inkscape:current-layer="g10"
43 units="mm" /><metadata 43 units="mm" /><metadata
44 id="metadata8"><rdf:RDF><cc:Work 44 id="metadata8"><rdf:RDF><cc:Work
45 rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type 45 rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
46 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs 46 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
47 id="defs6"><clipPath 47 id="defs6"><clipPath
48 id="clipPath20" 48 id="clipPath20"
49 clipPathUnits="userSpaceOnUse"><path 49 clipPathUnits="userSpaceOnUse"><path
50 inkscape:connector-curvature="0" 50 inkscape:connector-curvature="0"
51 id="path22" 51 id="path22"
52 d="m 0,0 5950,0 0,3922 L 0,3922 0,0 Z m 0,3922 5950,0 0,1 -5950,0 0,-1 z m 0,1 1359,0 0,1 -1359,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1363,0 0,1 -1363,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1367,0 0,1 -1367,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1371,0 0,1 -1371,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1375,0 0,1 -1375,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1379,0 0,1 -1379,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1383,0 0,1 -1383,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1387,0 0,1 -1387,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1391,0 0,1 -1391,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1390,0 0,1 -1390,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1386,0 0,1 -1386,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1382,0 0,1 -1382,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1378,0 0,1 -1378,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1374,0 0,1 -1374,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1370,0 0,1 -1370,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1366,0 0,1 -1366,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1362,0 0,1 -1362,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1358,0 0,1 -1358,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 5950,0 0,1 -5950,0 0,-1 z m 0,1 5950,0 0,4478 -5950,0 0,-4478 z" /></clipPath><clipPath 52 d="m 0,0 5950,0 0,3922 L 0,3922 0,0 Z m 0,3922 5950,0 0,1 -5950,0 0,-1 z m 0,1 1359,0 0,1 -1359,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1363,0 0,1 -1363,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1367,0 0,1 -1367,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1371,0 0,1 -1371,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1375,0 0,1 -1375,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1379,0 0,1 -1379,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1383,0 0,1 -1383,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1387,0 0,1 -1387,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1391,0 0,1 -1391,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1390,0 0,1 -1390,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1386,0 0,1 -1386,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1382,0 0,1 -1382,0 0,-1 z m
531399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1378,0 0,1 -1378,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1374,0 0,1 -1374,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1370,0 0,1 -1370,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1366,0 0,1 -1366,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1362,0 0,1 -1362,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1358,0 0,1 -1358,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 5950,0 0,1 -5950,0 0,-1 z m 0,1 5950,0 0,4478 -5950,0 0,-4478 z" /></clipPath><clipPath
53 id="clipPath98" 54 id="clipPath98"
54 clipPathUnits="userSpaceOnUse"><path 55 clipPathUnits="userSpaceOnUse"><path
55 inkscape:connector-curvature="0" 56 inkscape:connector-curvature="0"
56 id="path100" 57 id="path100"
57 d="m 0,0 5950,0 0,4546 L 0,4546 0,0 Z m 0,4546 5950,0 0,1 -5950,0 0,-1 z m 0,1 1360,0 0,1 -1360,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1364,0 0,1 -1364,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1368,0 0,1 -1368,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1372,0 0,1 -1372,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1376,0 0,1 -1376,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1380,0 0,1 -1380,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1384,0 0,1 -1384,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1388,0 0,1 -1388,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1391,0 0,1 -1391,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1389,0 0,1 -1389,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1385,0 0,1 -1385,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1381,0 0,1 -1381,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1377,0 0,1 -1377,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1373,0 0,1 -1373,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1369,0 0,1 -1369,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1365,0 0,1 -1365,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1361,0 0,1 -1361,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1357,0 0,1 -1357,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 5950,0 0,1 -5950,0 0,-1 z m 0,1 5950,0 0,3854 -5950,0 0,-3854 z" /></clipPath></defs><g 58 d="m 0,0 5950,0 0,4546 L 0,4546 0,0 Z m 0,4546 5950,0 0,1 -5950,0 0,-1 z m 0,1 1360,0 0,1 -1360,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1364,0 0,1 -1364,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1368,0 0,1 -1368,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1372,0 0,1 -1372,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1376,0 0,1 -1376,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1380,0 0,1 -1380,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1384,0 0,1 -1384,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1388,0 0,1 -1388,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1391,0 0,1 -1391,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1389,0 0,1 -1389,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1385,0 0,1 -1385,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1381,0 0,1 -1381,0 0,-1 z m
591399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1377,0 0,1 -1377,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1373,0 0,1 -1373,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1369,0 0,1 -1369,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1365,0 0,1 -1365,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1361,0 0,1 -1361,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 1357,0 0,1 -1357,0 0,-1 z m 1399,0 4551,0 0,1 -4551,0 0,-1 z m -1399,1 5950,0 0,1 -5950,0 0,-1 z m 0,1 5950,0 0,3854 -5950,0 0,-3854 z" /></clipPath></defs><g
58 transform="matrix(0.125,0,0,-0.125,-87.571875,638.05691)" 60 transform="matrix(0.125,0,0,-0.125,-87.571875,638.05691)"
59 inkscape:label="vbi_525" 61 inkscape:label="vbi_525"
60 inkscape:groupmode="layer" 62 inkscape:groupmode="layer"
@@ -62,165 +64,165 @@
62 transform="matrix(1.3000026,0,0,1.3000026,-210.17435,-1094.2823)" 64 transform="matrix(1.3000026,0,0,1.3000026,-210.17435,-1094.2823)"
63 id="g12" 65 id="g12"
64 style=""><path 66 style=""><path
65 inkscape:connector-curvature="0" 67 inkscape:connector-curvature="0"
66 id="path14" 68 id="path14"
67 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 69 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
68 d="m 1281.75,3974.45 0,-85.05" /></g><g 70 d="m 1281.75,3974.45 0,-85.05" /></g><g
69 transform="matrix(1.3000026,0,0,1.3000026,-210.17435,-1094.2823)" 71 transform="matrix(1.3000026,0,0,1.3000026,-210.17435,-1094.2823)"
70 id="g16" 72 id="g16"
71 style=""><g 73 style=""><g
72 clip-path="url(#clipPath20)" 74 clip-path="url(#clipPath20)"
73 id="g18" 75 id="g18"
74 style=""><path 76 style=""><path
75 inkscape:connector-curvature="0" 77 inkscape:connector-curvature="0"
76 id="path24" 78 id="path24"
77 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 79 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
78 d="m 1281.75,3931.93 113.4,0" /></g></g><g 80 d="m 1281.75,3931.93 113.4,0" /></g></g><g
79 transform="matrix(1.3000026,0,0,1.3000026,-210.17435,-1094.2823)" 81 transform="matrix(1.3000026,0,0,1.3000026,-210.17435,-1094.2823)"
80 id="g26" 82 id="g26"
81 style=""><path 83 style=""><path
82 inkscape:connector-curvature="0" 84 inkscape:connector-curvature="0"
83 id="path28" 85 id="path28"
84 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 86 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
85 d="m 1352.31,3922.48 37.8,9.45 -37.8,9.45 0,-18.9" /><path 87 d="m 1352.31,3922.48 37.8,9.45 -37.8,9.45 0,-18.9" /><path
86 inkscape:connector-curvature="0" 88 inkscape:connector-curvature="0"
87 id="path30" 89 id="path30"
88 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 90 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
89 d="m 1352.31,3922.48 37.8,9.45 -37.8,9.45 0,-18.9 z" /><path 91 d="m 1352.31,3922.48 37.8,9.45 -37.8,9.45 0,-18.9 z" /><path
90 inkscape:connector-curvature="0" 92 inkscape:connector-curvature="0"
91 id="path32" 93 id="path32"
92 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 94 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
93 d="m 4683.75,4059.5 0,-56.7" /><path 95 d="m 4683.75,4059.5 0,-56.7" /><path
94 inkscape:connector-curvature="0" 96 inkscape:connector-curvature="0"
95 id="path34" 97 id="path34"
96 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 98 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
97 d="m 4400.25,4059.5 0,-56.7" /><path 99 d="m 4400.25,4059.5 0,-56.7" /><path
98 inkscape:connector-curvature="0" 100 inkscape:connector-curvature="0"
99 id="path36" 101 id="path36"
100 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 102 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
101 d="m 4116.75,4059.5 0,-56.7" /><path 103 d="m 4116.75,4059.5 0,-56.7" /><path
102 inkscape:connector-curvature="0" 104 inkscape:connector-curvature="0"
103 id="path38" 105 id="path38"
104 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 106 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
105 d="m 3833.25,4059.5 0,-56.7" /><path 107 d="m 3833.25,4059.5 0,-56.7" /><path
106 inkscape:connector-curvature="0" 108 inkscape:connector-curvature="0"
107 id="path40" 109 id="path40"
108 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 110 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
109 d="m 3549.75,4059.5 0,-56.7" /><path 111 d="m 3549.75,4059.5 0,-56.7" /><path
110 inkscape:connector-curvature="0" 112 inkscape:connector-curvature="0"
111 id="path42" 113 id="path42"
112 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 114 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
113 d="m 3266.25,4059.5 0,-56.7" /><path 115 d="m 3266.25,4059.5 0,-56.7" /><path
114 inkscape:connector-curvature="0" 116 inkscape:connector-curvature="0"
115 id="path44" 117 id="path44"
116 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 118 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
117 d="m 2982.75,4059.5 0,-56.7" /><path 119 d="m 2982.75,4059.5 0,-56.7" /><path
118 inkscape:connector-curvature="0" 120 inkscape:connector-curvature="0"
119 id="path46" 121 id="path46"
120 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 122 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
121 d="m 2699.25,4059.5 0,-56.7" /><path 123 d="m 2699.25,4059.5 0,-56.7" /><path
122 inkscape:connector-curvature="0" 124 inkscape:connector-curvature="0"
123 id="path48" 125 id="path48"
124 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 126 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
125 d="m 2415.75,4059.5 0,-56.7" /><path 127 d="m 2415.75,4059.5 0,-56.7" /><path
126 inkscape:connector-curvature="0" 128 inkscape:connector-curvature="0"
127 id="path50" 129 id="path50"
128 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 130 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
129 d="m 2132.25,4059.5 0,-56.7" /><path 131 d="m 2132.25,4059.5 0,-56.7" /><path
130 inkscape:connector-curvature="0" 132 inkscape:connector-curvature="0"
131 id="path52" 133 id="path52"
132 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 134 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
133 d="m 1848.75,4059.5 0,-56.7" /><path 135 d="m 1848.75,4059.5 0,-56.7" /><path
134 inkscape:connector-curvature="0" 136 inkscape:connector-curvature="0"
135 id="path54" 137 id="path54"
136 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 138 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
137 d="m 1565.25,4059.5 0,-56.7" /><path 139 d="m 1565.25,4059.5 0,-56.7" /><path
138 inkscape:connector-curvature="0" 140 inkscape:connector-curvature="0"
139 id="path56" 141 id="path56"
140 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 142 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
141 d="m 1281.75,4059.5 0,-56.7" /><path 143 d="m 1281.75,4059.5 0,-56.7" /><path
142 inkscape:connector-curvature="0" 144 inkscape:connector-curvature="0"
143 id="path58" 145 id="path58"
144 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 146 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
145 d="m 998.25,4059.5 0,-56.7" /><path 147 d="m 998.25,4059.5 0,-56.7" /><path
146 inkscape:connector-curvature="0" 148 inkscape:connector-curvature="0"
147 id="path60" 149 id="path60"
148 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 150 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
149 d="m 714.75,4059.5 0,-56.7" /><path 151 d="m 714.75,4059.5 0,-56.7" /><path
150 inkscape:connector-curvature="0" 152 inkscape:connector-curvature="0"
151 id="path62" 153 id="path62"
152 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 154 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
153 d="m 4683.75,4144.55 0,-56.7" /><path 155 d="m 4683.75,4144.55 0,-56.7" /><path
154 inkscape:connector-curvature="0" 156 inkscape:connector-curvature="0"
155 id="path64" 157 id="path64"
156 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 158 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
157 d="m 4400.25,4144.55 0,-56.7" /><path 159 d="m 4400.25,4144.55 0,-56.7" /><path
158 inkscape:connector-curvature="0" 160 inkscape:connector-curvature="0"
159 id="path66" 161 id="path66"
160 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 162 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
161 d="m 4116.75,4144.55 0,-56.7" /><path 163 d="m 4116.75,4144.55 0,-56.7" /><path
162 inkscape:connector-curvature="0" 164 inkscape:connector-curvature="0"
163 id="path68" 165 id="path68"
164 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 166 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
165 d="m 3833.25,4144.55 0,-56.7" /><path 167 d="m 3833.25,4144.55 0,-56.7" /><path
166 inkscape:connector-curvature="0" 168 inkscape:connector-curvature="0"
167 id="path70" 169 id="path70"
168 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 170 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
169 d="m 3549.75,4144.55 0,-56.7" /><path 171 d="m 3549.75,4144.55 0,-56.7" /><path
170 inkscape:connector-curvature="0" 172 inkscape:connector-curvature="0"
171 id="path72" 173 id="path72"
172 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 174 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
173 d="m 3266.25,4144.55 0,-56.7" /><path 175 d="m 3266.25,4144.55 0,-56.7" /><path
174 inkscape:connector-curvature="0" 176 inkscape:connector-curvature="0"
175 id="path74" 177 id="path74"
176 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 178 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
177 d="m 2982.75,4144.55 0,-56.7" /><path 179 d="m 2982.75,4144.55 0,-56.7" /><path
178 inkscape:connector-curvature="0" 180 inkscape:connector-curvature="0"
179 id="path76" 181 id="path76"
180 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 182 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
181 d="m 2699.25,4144.55 0,-56.7" /><path 183 d="m 2699.25,4144.55 0,-56.7" /><path
182 inkscape:connector-curvature="0" 184 inkscape:connector-curvature="0"
183 id="path78" 185 id="path78"
184 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 186 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
185 d="m 2415.75,4144.55 0,-56.7" /><path 187 d="m 2415.75,4144.55 0,-56.7" /><path
186 inkscape:connector-curvature="0" 188 inkscape:connector-curvature="0"
187 id="path80" 189 id="path80"
188 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 190 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
189 d="m 2132.25,4144.55 0,-56.7" /><path 191 d="m 2132.25,4144.55 0,-56.7" /><path
190 inkscape:connector-curvature="0" 192 inkscape:connector-curvature="0"
191 id="path82" 193 id="path82"
192 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 194 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
193 d="m 1848.75,4144.55 0,-56.7" /><path 195 d="m 1848.75,4144.55 0,-56.7" /><path
194 inkscape:connector-curvature="0" 196 inkscape:connector-curvature="0"
195 id="path84" 197 id="path84"
196 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 198 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
197 d="m 1565.25,4144.55 0,-56.7" /><path 199 d="m 1565.25,4144.55 0,-56.7" /><path
198 inkscape:connector-curvature="0" 200 inkscape:connector-curvature="0"
199 id="path86" 201 id="path86"
200 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 202 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
201 d="m 1281.75,4144.55 0,-56.7" /><path 203 d="m 1281.75,4144.55 0,-56.7" /><path
202 inkscape:connector-curvature="0" 204 inkscape:connector-curvature="0"
203 id="path88" 205 id="path88"
204 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 206 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
205 d="m 998.25,4144.55 0,-56.7" /><path 207 d="m 998.25,4144.55 0,-56.7" /><path
206 inkscape:connector-curvature="0" 208 inkscape:connector-curvature="0"
207 id="path90" 209 id="path90"
208 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 210 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
209 d="m 714.75,4144.55 0,-56.7" /><path 211 d="m 714.75,4144.55 0,-56.7" /><path
210 inkscape:connector-curvature="0" 212 inkscape:connector-curvature="0"
211 id="path92" 213 id="path92"
212 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 214 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
213 d="m 1281.75,4598.15 0,-85.05" /></g><g 215 d="m 1281.75,4598.15 0,-85.05" /></g><g
214 transform="matrix(1.3000026,0,0,1.3000026,-210.17435,-1094.2823)" 216 transform="matrix(1.3000026,0,0,1.3000026,-210.17435,-1094.2823)"
215 id="g94" 217 id="g94"
216 style=""><g 218 style=""><g
217 clip-path="url(#clipPath98)" 219 clip-path="url(#clipPath98)"
218 id="g96" 220 id="g96"
219 style=""><path 221 style=""><path
220 inkscape:connector-curvature="0" 222 inkscape:connector-curvature="0"
221 id="path102" 223 id="path102"
222 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 224 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
223 d="m 1281.75,4555.63 113.4,0" /></g></g><path 225 d="m 1281.75,4555.63 113.4,0" /></g></g><path
224 d="m 1547.8322,4815.7637 49.1401,12.2851 -49.1401,12.285 0,-24.5701" 226 d="m 1547.8322,4815.7637 49.1401,12.2851 -49.1401,12.285 0,-24.5701"
225 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 227 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
226 id="path106" 228 id="path106"
@@ -546,266 +548,266 @@
546 id="text268" 548 id="text268"
547 style="font-variant:normal;font-weight:normal;font-size:61.42512512px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 549 style="font-variant:normal;font-weight:normal;font-size:61.42512512px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
548 transform="scale(1,-1)"><tspan 550 transform="scale(1,-1)"><tspan
549 id="tspan270" 551 id="tspan270"
550 sodipodi:role="line" 552 sodipodi:role="line"
551 y="-4035.6582" 553 y="-4035.6582"
552 x="1621.9453 1642.3999 1676.5522">(1)</tspan></text> 554 x="1621.9453 1642.3999 1676.5522">(1)</tspan></text>
553<text 555<text
554 y="-4127.7959" 556 y="-4127.7959"
555 x="4199.7334" 557 x="4199.7334"
556 id="text272" 558 id="text272"
557 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 559 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
558 transform="scale(1,-1)"><tspan 560 transform="scale(1,-1)"><tspan
559 id="tspan274" 561 id="tspan274"
560 sodipodi:role="line" 562 sodipodi:role="line"
561 y="-4127.7959" 563 y="-4127.7959"
562 x="4199.7334 3831.1829 2725.5305 3112.509 3462.6321 4568.2842 4916.3442 4957.3271 5653.4458 5694.4287 5284.895 5325.8779 2356.9773 1988.4264 1210.3424 1251.3252 1292.3081 1619.8759 841.79163 882.77454 923.75732">874569101211322631262</tspan><tspan 564 x="4199.7334 3831.1829 2725.5305 3112.509 3462.6321 4568.2842 4916.3442 4957.3271 5653.4458 5694.4287 5284.895 5325.8779 2356.9773 1988.4264 1210.3424 1251.3252 1292.3081 1619.8759 841.79163 882.77454 923.75732">874569101211322631262</tspan><tspan
563 id="tspan276" 565 id="tspan276"
564 sodipodi:role="line" 566 sodipodi:role="line"
565 y="-4238.3613" 567 y="-4238.3613"
566 x="4158.748 4199.7314 4240.7144 3790.1975 3831.1807 3872.1633 2684.5457 2725.5283 2766.5112 3071.5237 3112.5063 3153.4895 3421.647 3462.6299 3503.6125 4527.2988 4568.2822 4609.2646 4895.8496 4936.833 4977.8154 5632.9517 5673.9341 5714.917 5264.4009 5305.3833 5346.3662 2315.9946 2356.9775 2397.9604 1947.444 1988.4269 2029.4097 1210.3424 1251.3252 1292.3081 1578.8931 1619.876 1660.8589 841.79163 882.77454 923.75732">271270267268269272273275274266265263264262</tspan><tspan 568 x="4158.748 4199.7314 4240.7144 3790.1975 3831.1807 3872.1633 2684.5457 2725.5283 2766.5112 3071.5237 3112.5063 3153.4895 3421.647 3462.6299 3503.6125 4527.2988 4568.2822 4609.2646 4895.8496 4936.833 4977.8154 5632.9517 5673.9341 5714.917 5264.4009 5305.3833 5346.3662 2315.9946 2356.9775 2397.9604 1947.444 1988.4269 2029.4097 1210.3424 1251.3252 1292.3081 1578.8931 1619.876 1660.8589 841.79163 882.77454 923.75732">271270267268269272273275274266265263264262</tspan><tspan
567 id="tspan278" 569 id="tspan278"
568 sodipodi:role="line" 570 sodipodi:role="line"
569 y="-5049.1729" 571 y="-5049.1729"
570 x="2725.5347 4568.2881 1988.4331 2356.9839 1619.8822 3094.0852 3462.636 4916.3506 4957.334 5284.9019 5325.8843 5653.4526 5694.4351 3812.7656 4181.3164">492315610111278</tspan><tspan 572 x="2725.5347 4568.2881 1988.4331 2356.9839 1619.8822 3094.0852 3462.636 4916.3506 4957.334 5284.9019 5325.8843 5653.4526 5694.4351 3812.7656 4181.3164">492315610111278</tspan><tspan
571 id="tspan280" 573 id="tspan280"
572 sodipodi:role="line" 574 sodipodi:role="line"
573 y="-4938.6074" 575 y="-4938.6074"
574 x="2725.5474 4568.3013 1988.446 2356.9966 1619.8953 3094.0981 3462.6489 4916.3638 4957.3472 5284.9146 5325.8975 5653.4653 5694.4482 3812.7788 4181.3296">492315610111278</tspan><tspan 576 x="2725.5474 4568.3013 1988.446 2356.9966 1619.8953 3094.0981 3462.6489 4916.3638 4957.3472 5284.9146 5325.8975 5653.4653 5694.4482 3812.7788 4181.3296">492315610111278</tspan><tspan
575 id="tspan282" 577 id="tspan282"
576 sodipodi:role="line" 578 sodipodi:role="line"
577 y="-5049.1729" 579 y="-5049.1729"
578 x="841.81781 882.8006 923.78326">524</tspan><tspan 580 x="841.81781 882.8006 923.78326">524</tspan><tspan
579 id="tspan284" 581 id="tspan284"
580 sodipodi:role="line" 582 sodipodi:role="line"
581 y="-4938.6074" 583 y="-4938.6074"
582 x="841.81781 882.8006 923.78326">261</tspan><tspan 584 x="841.81781 882.8006 923.78326">261</tspan><tspan
583 id="tspan286" 585 id="tspan286"
584 sodipodi:role="line" 586 sodipodi:role="line"
585 y="-5049.1729" 587 y="-5049.1729"
586 x="1210.3684 1251.3512 1292.3342">525</tspan><tspan 588 x="1210.3684 1251.3512 1292.3342">525</tspan><tspan
587 id="tspan288" 589 id="tspan288"
588 sodipodi:role="line" 590 sodipodi:role="line"
589 y="-4938.6074" 591 y="-4938.6074"
590 x="1210.3684 1251.3512 1292.3342">262</tspan><tspan 592 x="1210.3684 1251.3512 1292.3342">262</tspan><tspan
591 id="tspan290" 593 id="tspan290"
592 sodipodi:role="line" 594 sodipodi:role="line"
593 y="-5049.1729" 595 y="-5049.1729"
594 x="6022.0161 6062.999">22</tspan><tspan 596 x="6022.0161 6062.999">22</tspan><tspan
595 id="tspan292" 597 id="tspan292"
596 sodipodi:role="line" 598 sodipodi:role="line"
597 y="-4938.6074" 599 y="-4938.6074"
598 x="6022.0161 6062.999">22</tspan><tspan 600 x="6022.0161 6062.999">22</tspan><tspan
599 id="tspan294" 601 id="tspan294"
600 sodipodi:role="line" 602 sodipodi:role="line"
601 y="-5049.1729" 603 y="-5049.1729"
602 x="6390.5669 6431.5498">23</tspan><tspan 604 x="6390.5669 6431.5498">23</tspan><tspan
603 id="tspan296" 605 id="tspan296"
604 sodipodi:role="line" 606 sodipodi:role="line"
605 y="-4938.6074" 607 y="-4938.6074"
606 x="6390.5669 6431.5498">23</tspan><tspan 608 x="6390.5669 6431.5498">23</tspan><tspan
607 id="tspan298" 609 id="tspan298"
608 sodipodi:role="line" 610 sodipodi:role="line"
609 y="-4238.3623" 611 y="-4238.3623"
610 x="6001.5244 6042.5068 6083.4902">285</tspan><tspan 612 x="6001.5244 6042.5068 6083.4902">285</tspan><tspan
611 id="tspan300" 613 id="tspan300"
612 sodipodi:role="line" 614 sodipodi:role="line"
613 y="-4127.7964" 615 y="-4127.7964"
614 x="6022.0156 6062.9985">22</tspan><tspan 616 x="6022.0156 6062.9985">22</tspan><tspan
615 id="tspan302" 617 id="tspan302"
616 sodipodi:role="line" 618 sodipodi:role="line"
617 y="-4238.3623" 619 y="-4238.3623"
618 x="6370.0747 6411.0571 6452.04">286</tspan><tspan 620 x="6370.0747 6411.0571 6452.04">286</tspan><tspan
619 id="tspan304" 621 id="tspan304"
620 sodipodi:role="line" 622 sodipodi:role="line"
621 y="-4127.7964" 623 y="-4127.7964"
622 x="6390.5664 6431.5493">23</tspan><tspan 624 x="6390.5664 6431.5493">23</tspan><tspan
623 id="tspan306" 625 id="tspan306"
624 sodipodi:role="line" 626 sodipodi:role="line"
625 y="-4459.4922" 627 y="-4459.4922"
626 x="3540.4146 3581.3972 3618.2522 3638.7437 3659.2354 3679.7266 3696.0901 3737.073 3753.4365">1st field</tspan><tspan 628 x="3540.4146 3581.3972 3618.2522 3638.7437 3659.2354 3679.7266 3696.0901 3737.073 3753.4365">1st field</tspan><tspan
627 id="tspan308" 629 id="tspan308"
628 sodipodi:role="line" 630 sodipodi:role="line"
629 y="-3648.6809" 631 y="-3648.6809"
630 x="3528.1047 3569.0876 3610.0703 3651.0532 3671.5447 3692.0361 3708.3999 3749.3826 3765.7463">2nd field</tspan></text> 632 x="3528.1047 3569.0876 3610.0703 3651.0532 3671.5447 3692.0361 3708.3999 3749.3826 3765.7463">2nd field</tspan></text>
631<text 633<text
632 y="-4127.7959" 634 y="-4127.7959"
633 x="4199.7334 3831.1829 2725.5305 3112.509 3462.6321 4568.2842 4916.3442 4957.3271 5653.4458 5694.4287 5284.895 5325.8779 2356.9773 1988.4264 1210.3424 1251.3252 1292.3081 1619.8759 841.79163 882.77454 923.75732" 635 x="4199.7334 3831.1829 2725.5305 3112.509 3462.6321 4568.2842 4916.3442 4957.3271 5653.4458 5694.4287 5284.895 5325.8779 2356.9773 1988.4264 1210.3424 1251.3252 1292.3081 1619.8759 841.79163 882.77454 923.75732"
634 id="text3632" 636 id="text3632"
635 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 637 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
636 transform="scale(1,-1)"><tspan 638 transform="scale(1,-1)"><tspan
637 id="tspan3634" 639 id="tspan3634"
638 sodipodi:role="line" 640 sodipodi:role="line"
639 y="-4127.7959" 641 y="-4127.7959"
640 x="4199.7334 3831.1829 2725.5305 3112.509 3462.6321 4568.2842 4916.3442 4957.3271 5653.4458 5694.4287 5284.895 5325.8779 2356.9773 1988.4264 1210.3424 1251.3252 1292.3081 1619.8759 841.79163 882.77454 923.75732">874569101211322631262</tspan></text> 642 x="4199.7334 3831.1829 2725.5305 3112.509 3462.6321 4568.2842 4916.3442 4957.3271 5653.4458 5694.4287 5284.895 5325.8779 2356.9773 1988.4264 1210.3424 1251.3252 1292.3081 1619.8759 841.79163 882.77454 923.75732">874569101211322631262</tspan></text>
641<text 643<text
642 y="-4238.3613" 644 y="-4238.3613"
643 x="4158.748 4199.7314 4240.7144 3790.1975 3831.1807 3872.1633 2684.5457 2725.5283 2766.5112 3071.5237 3112.5063 3153.4895 3421.647 3462.6299 3503.6125 4527.2988 4568.2822 4609.2646 4895.8496 4936.833 4977.8154 5632.9517 5673.9341 5714.917 5264.4009 5305.3833 5346.3662 2315.9946 2356.9775 2397.9604 1947.444 1988.4269 2029.4097 1210.3424 1251.3252 1292.3081 1578.8931 1619.876 1660.8589 841.79163 882.77454 923.75732" 645 x="4158.748 4199.7314 4240.7144 3790.1975 3831.1807 3872.1633 2684.5457 2725.5283 2766.5112 3071.5237 3112.5063 3153.4895 3421.647 3462.6299 3503.6125 4527.2988 4568.2822 4609.2646 4895.8496 4936.833 4977.8154 5632.9517 5673.9341 5714.917 5264.4009 5305.3833 5346.3662 2315.9946 2356.9775 2397.9604 1947.444 1988.4269 2029.4097 1210.3424 1251.3252 1292.3081 1578.8931 1619.876 1660.8589 841.79163 882.77454 923.75732"
644 id="text3636" 646 id="text3636"
645 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 647 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
646 transform="scale(1,-1)"><tspan 648 transform="scale(1,-1)"><tspan
647 id="tspan3638" 649 id="tspan3638"
648 sodipodi:role="line" 650 sodipodi:role="line"
649 y="-4238.3613" 651 y="-4238.3613"
650 x="4158.748 4199.7314 4240.7144 3790.1975 3831.1807 3872.1633 2684.5457 2725.5283 2766.5112 3071.5237 3112.5063 3153.4895 3421.647 3462.6299 3503.6125 4527.2988 4568.2822 4609.2646 4895.8496 4936.833 4977.8154 5632.9517 5673.9341 5714.917 5264.4009 5305.3833 5346.3662 2315.9946 2356.9775 2397.9604 1947.444 1988.4269 2029.4097 1210.3424 1251.3252 1292.3081 1578.8931 1619.876 1660.8589 841.79163 882.77454 923.75732">271270267268269272273275274266265263264262</tspan></text> 652 x="4158.748 4199.7314 4240.7144 3790.1975 3831.1807 3872.1633 2684.5457 2725.5283 2766.5112 3071.5237 3112.5063 3153.4895 3421.647 3462.6299 3503.6125 4527.2988 4568.2822 4609.2646 4895.8496 4936.833 4977.8154 5632.9517 5673.9341 5714.917 5264.4009 5305.3833 5346.3662 2315.9946 2356.9775 2397.9604 1947.444 1988.4269 2029.4097 1210.3424 1251.3252 1292.3081 1578.8931 1619.876 1660.8589 841.79163 882.77454 923.75732">271270267268269272273275274266265263264262</tspan></text>
651<text 653<text
652 y="-5049.1729" 654 y="-5049.1729"
653 x="2725.5347 4568.2881 1988.4331 2356.9839 1619.8822 3094.0852 3462.636 4916.3506 4957.334 5284.9019 5325.8843 5653.4526 5694.4351 3812.7656 4181.3164" 655 x="2725.5347 4568.2881 1988.4331 2356.9839 1619.8822 3094.0852 3462.636 4916.3506 4957.334 5284.9019 5325.8843 5653.4526 5694.4351 3812.7656 4181.3164"
654 id="text3640" 656 id="text3640"
655 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 657 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
656 transform="scale(1,-1)"><tspan 658 transform="scale(1,-1)"><tspan
657 id="tspan3642" 659 id="tspan3642"
658 sodipodi:role="line" 660 sodipodi:role="line"
659 y="-5049.1729" 661 y="-5049.1729"
660 x="2725.5347 4568.2881 1988.4331 2356.9839 1619.8822 3094.0852 3462.636 4916.3506 4957.334 5284.9019 5325.8843 5653.4526 5694.4351 3812.7656 4181.3164">492315610111278</tspan></text> 662 x="2725.5347 4568.2881 1988.4331 2356.9839 1619.8822 3094.0852 3462.636 4916.3506 4957.334 5284.9019 5325.8843 5653.4526 5694.4351 3812.7656 4181.3164">492315610111278</tspan></text>
661<text 663<text
662 y="-4938.6074" 664 y="-4938.6074"
663 x="2725.5474 4568.3013 1988.446 2356.9966 1619.8953 3094.0981 3462.6489 4916.3638 4957.3472 5284.9146 5325.8975 5653.4653 5694.4482 3812.7788 4181.3296" 665 x="2725.5474 4568.3013 1988.446 2356.9966 1619.8953 3094.0981 3462.6489 4916.3638 4957.3472 5284.9146 5325.8975 5653.4653 5694.4482 3812.7788 4181.3296"
664 id="text3644" 666 id="text3644"
665 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 667 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
666 transform="scale(1,-1)"><tspan 668 transform="scale(1,-1)"><tspan
667 id="tspan3646" 669 id="tspan3646"
668 sodipodi:role="line" 670 sodipodi:role="line"
669 y="-4938.6074" 671 y="-4938.6074"
670 x="2725.5474 4568.3013 1988.446 2356.9966 1619.8953 3094.0981 3462.6489 4916.3638 4957.3472 5284.9146 5325.8975 5653.4653 5694.4482 3812.7788 4181.3296">492315610111278</tspan></text> 672 x="2725.5474 4568.3013 1988.446 2356.9966 1619.8953 3094.0981 3462.6489 4916.3638 4957.3472 5284.9146 5325.8975 5653.4653 5694.4482 3812.7788 4181.3296">492315610111278</tspan></text>
671<text 673<text
672 y="-5049.1729" 674 y="-5049.1729"
673 x="841.81781 882.8006 923.78326" 675 x="841.81781 882.8006 923.78326"
674 id="text3648" 676 id="text3648"
675 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 677 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
676 transform="scale(1,-1)"><tspan 678 transform="scale(1,-1)"><tspan
677 id="tspan3650" 679 id="tspan3650"
678 sodipodi:role="line" 680 sodipodi:role="line"
679 y="-5049.1729" 681 y="-5049.1729"
680 x="841.81781 882.8006 923.78326">524</tspan></text> 682 x="841.81781 882.8006 923.78326">524</tspan></text>
681<text 683<text
682 y="-4938.6074" 684 y="-4938.6074"
683 x="841.81781 882.8006 923.78326" 685 x="841.81781 882.8006 923.78326"
684 id="text3652" 686 id="text3652"
685 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 687 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
686 transform="scale(1,-1)"><tspan 688 transform="scale(1,-1)"><tspan
687 id="tspan3654" 689 id="tspan3654"
688 sodipodi:role="line" 690 sodipodi:role="line"
689 y="-4938.6074" 691 y="-4938.6074"
690 x="841.81781 882.8006 923.78326">261</tspan></text> 692 x="841.81781 882.8006 923.78326">261</tspan></text>
691<text 693<text
692 y="-5049.1729" 694 y="-5049.1729"
693 x="1210.3684 1251.3512 1292.3342" 695 x="1210.3684 1251.3512 1292.3342"
694 id="text3656" 696 id="text3656"
695 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 697 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
696 transform="scale(1,-1)"><tspan 698 transform="scale(1,-1)"><tspan
697 id="tspan3658" 699 id="tspan3658"
698 sodipodi:role="line" 700 sodipodi:role="line"
699 y="-5049.1729" 701 y="-5049.1729"
700 x="1210.3684 1251.3512 1292.3342">525</tspan></text> 702 x="1210.3684 1251.3512 1292.3342">525</tspan></text>
701<text 703<text
702 y="-4938.6074" 704 y="-4938.6074"
703 x="1210.3684 1251.3512 1292.3342" 705 x="1210.3684 1251.3512 1292.3342"
704 id="text3660" 706 id="text3660"
705 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 707 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
706 transform="scale(1,-1)"><tspan 708 transform="scale(1,-1)"><tspan
707 id="tspan3662" 709 id="tspan3662"
708 sodipodi:role="line" 710 sodipodi:role="line"
709 y="-4938.6074" 711 y="-4938.6074"
710 x="1210.3684 1251.3512 1292.3342">262</tspan></text> 712 x="1210.3684 1251.3512 1292.3342">262</tspan></text>
711<text 713<text
712 y="-5049.1729" 714 y="-5049.1729"
713 x="6022.0161 6062.999" 715 x="6022.0161 6062.999"
714 id="text3664" 716 id="text3664"
715 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 717 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
716 transform="scale(1,-1)"><tspan 718 transform="scale(1,-1)"><tspan
717 id="tspan3666" 719 id="tspan3666"
718 sodipodi:role="line" 720 sodipodi:role="line"
719 y="-5049.1729" 721 y="-5049.1729"
720 x="6022.0161 6062.999">22</tspan></text> 722 x="6022.0161 6062.999">22</tspan></text>
721<text 723<text
722 y="-4938.6074" 724 y="-4938.6074"
723 x="6022.0161 6062.999" 725 x="6022.0161 6062.999"
724 id="text3668" 726 id="text3668"
725 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 727 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
726 transform="scale(1,-1)"><tspan 728 transform="scale(1,-1)"><tspan
727 id="tspan3670" 729 id="tspan3670"
728 sodipodi:role="line" 730 sodipodi:role="line"
729 y="-4938.6074" 731 y="-4938.6074"
730 x="6022.0161 6062.999">22</tspan></text> 732 x="6022.0161 6062.999">22</tspan></text>
731<text 733<text
732 y="-5049.1729" 734 y="-5049.1729"
733 x="6390.5669 6431.5498" 735 x="6390.5669 6431.5498"
734 id="text3672" 736 id="text3672"
735 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 737 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
736 transform="scale(1,-1)"><tspan 738 transform="scale(1,-1)"><tspan
737 id="tspan3674" 739 id="tspan3674"
738 sodipodi:role="line" 740 sodipodi:role="line"
739 y="-5049.1729" 741 y="-5049.1729"
740 x="6390.5669 6431.5498">23</tspan></text> 742 x="6390.5669 6431.5498">23</tspan></text>
741<text 743<text
742 y="-4938.6074" 744 y="-4938.6074"
743 x="6390.5669 6431.5498" 745 x="6390.5669 6431.5498"
744 id="text3676" 746 id="text3676"
745 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 747 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
746 transform="scale(1,-1)"><tspan 748 transform="scale(1,-1)"><tspan
747 id="tspan3678" 749 id="tspan3678"
748 sodipodi:role="line" 750 sodipodi:role="line"
749 y="-4938.6074" 751 y="-4938.6074"
750 x="6390.5669 6431.5498">23</tspan></text> 752 x="6390.5669 6431.5498">23</tspan></text>
751<text 753<text
752 y="-4238.3623" 754 y="-4238.3623"
753 x="6001.5244 6042.5068 6083.4902" 755 x="6001.5244 6042.5068 6083.4902"
754 id="text3680" 756 id="text3680"
755 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 757 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
756 transform="scale(1,-1)"><tspan 758 transform="scale(1,-1)"><tspan
757 id="tspan3682" 759 id="tspan3682"
758 sodipodi:role="line" 760 sodipodi:role="line"
759 y="-4238.3623" 761 y="-4238.3623"
760 x="6001.5244 6042.5068 6083.4902">285</tspan></text> 762 x="6001.5244 6042.5068 6083.4902">285</tspan></text>
761<text 763<text
762 y="-4127.7964" 764 y="-4127.7964"
763 x="6022.0156 6062.9985" 765 x="6022.0156 6062.9985"
764 id="text3684" 766 id="text3684"
765 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 767 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
766 transform="scale(1,-1)"><tspan 768 transform="scale(1,-1)"><tspan
767 id="tspan3686" 769 id="tspan3686"
768 sodipodi:role="line" 770 sodipodi:role="line"
769 y="-4127.7964" 771 y="-4127.7964"
770 x="6022.0156 6062.9985">22</tspan></text> 772 x="6022.0156 6062.9985">22</tspan></text>
771<text 773<text
772 y="-4238.3623" 774 y="-4238.3623"
773 x="6370.0747 6411.0571 6452.04" 775 x="6370.0747 6411.0571 6452.04"
774 id="text3688" 776 id="text3688"
775 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 777 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
776 transform="scale(1,-1)"><tspan 778 transform="scale(1,-1)"><tspan
777 id="tspan3690" 779 id="tspan3690"
778 sodipodi:role="line" 780 sodipodi:role="line"
779 y="-4238.3623" 781 y="-4238.3623"
780 x="6370.0747 6411.0571 6452.04">286</tspan></text> 782 x="6370.0747 6411.0571 6452.04">286</tspan></text>
781<text 783<text
782 y="-4127.7964" 784 y="-4127.7964"
783 x="6390.5664 6431.5493" 785 x="6390.5664 6431.5493"
784 id="text3692" 786 id="text3692"
785 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 787 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
786 transform="scale(1,-1)"><tspan 788 transform="scale(1,-1)"><tspan
787 id="tspan3694" 789 id="tspan3694"
788 sodipodi:role="line" 790 sodipodi:role="line"
789 y="-4127.7964" 791 y="-4127.7964"
790 x="6390.5664 6431.5493">23</tspan></text> 792 x="6390.5664 6431.5493">23</tspan></text>
791<text 793<text
792 y="-4459.4922" 794 y="-4459.4922"
793 x="3540.4146 3581.3972 3618.2522 3638.7437 3659.2354 3679.7266 3696.0901 3737.073 3753.4365" 795 x="3540.4146 3581.3972 3618.2522 3638.7437 3659.2354 3679.7266 3696.0901 3737.073 3753.4365"
794 id="text3696" 796 id="text3696"
795 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 797 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
796 transform="scale(1,-1)"><tspan 798 transform="scale(1,-1)"><tspan
797 id="tspan3698" 799 id="tspan3698"
798 sodipodi:role="line" 800 sodipodi:role="line"
799 y="-4459.4922" 801 y="-4459.4922"
800 x="3540.4146 3581.3972 3618.2522 3638.7437 3659.2354 3679.7266 3696.0901 3737.073 3753.4365">1st field</tspan></text> 802 x="3540.4146 3581.3972 3618.2522 3638.7437 3659.2354 3679.7266 3696.0901 3737.073 3753.4365">1st field</tspan></text>
801<text 803<text
802 y="-3648.6809" 804 y="-3648.6809"
803 x="3528.1047 3569.0876 3610.0703 3651.0532 3671.5447 3692.0361 3708.3999 3749.3826 3765.7463" 805 x="3528.1047 3569.0876 3610.0703 3651.0532 3671.5447 3692.0361 3708.3999 3749.3826 3765.7463"
804 id="text3700" 806 id="text3700"
805 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 807 style="font-variant:normal;font-weight:normal;font-size:73.71015167px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
806 transform="scale(1,-1)"><tspan 808 transform="scale(1,-1)"><tspan
807 id="tspan3702" 809 id="tspan3702"
808 sodipodi:role="line" 810 sodipodi:role="line"
809 y="-3648.6809" 811 y="-3648.6809"
810 x="3528.1047 3569.0876 3610.0703 3651.0532 3671.5447 3692.0361 3708.3999 3749.3826 3765.7463">2nd field</tspan></text> 812 x="3528.1047 3569.0876 3610.0703 3651.0532 3671.5447 3692.0361 3708.3999 3749.3826 3765.7463">2nd field</tspan></text>
811</g></svg> \ No newline at end of file 813</g></svg> \ No newline at end of file
diff --git a/Documentation/media/uapi/v4l/vbi_625.svg b/Documentation/media/uapi/v4l/vbi_625.svg
index c117ddb7bf7e..9b18243c0a06 100644
--- a/Documentation/media/uapi/v4l/vbi_625.svg
+++ b/Documentation/media/uapi/v4l/vbi_625.svg
@@ -42,19 +42,21 @@
42 inkscape:current-layer="g10" 42 inkscape:current-layer="g10"
43 units="mm" /><metadata 43 units="mm" /><metadata
44 id="metadata8"><rdf:RDF><cc:Work 44 id="metadata8"><rdf:RDF><cc:Work
45 rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type 45 rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
46 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs 46 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
47 id="defs6"><clipPath 47 id="defs6"><clipPath
48 clipPathUnits="userSpaceOnUse" 48 clipPathUnits="userSpaceOnUse"
49 id="clipPath20"><path 49 id="clipPath20"><path
50 d="m 0,0 5950,0 0,4546 L 0,4546 0,0 Z m 0,4546 5950,0 0,1 -5950,0 0,-1 z m 0,1 2211,0 0,1 -2211,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2215,0 0,1 -2215,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2219,0 0,1 -2219,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2223,0 0,1 -2223,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2227,0 0,1 -2227,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2231,0 0,1 -2231,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2235,0 0,1 -2235,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2239,0 0,1 -2239,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2241,0 0,1 -2241,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2240,0 0,1 -2240,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2236,0 0,1 -2236,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2232,0 0,1 -2232,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2228,0 0,1 -2228,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2224,0 0,1 -2224,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2220,0 0,1 -2220,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2216,0 0,1 -2216,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2212,0 0,1 -2212,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2208,0 0,1 -2208,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 5950,0 0,1 -5950,0 0,-1 z m 0,1 5950,0 0,3854 -5950,0 0,-3854 z" 50 d="m 0,0 5950,0 0,4546 L 0,4546 0,0 Z m 0,4546 5950,0 0,1 -5950,0 0,-1 z m 0,1 2211,0 0,1 -2211,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2215,0 0,1 -2215,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2219,0 0,1 -2219,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2223,0 0,1 -2223,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2227,0 0,1 -2227,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2231,0 0,1 -2231,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2235,0 0,1 -2235,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2239,0 0,1 -2239,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2241,0 0,1 -2241,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2240,0 0,1 -2240,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2236,0 0,1 -2236,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2232,0 0,1 -2232,0 0,-1 z m
51 id="path22" 512250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2228,0 0,1 -2228,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2224,0 0,1 -2224,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2220,0 0,1 -2220,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2216,0 0,1 -2216,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2212,0 0,1 -2212,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2208,0 0,1 -2208,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 5950,0 0,1 -5950,0 0,-1 z m 0,1 5950,0 0,3854 -5950,0 0,-3854 z"
52 inkscape:connector-curvature="0" /></clipPath><clipPath 52 id="path22"
53 inkscape:connector-curvature="0" /></clipPath><clipPath
53 clipPathUnits="userSpaceOnUse" 54 clipPathUnits="userSpaceOnUse"
54 id="clipPath98"><path 55 id="clipPath98"><path
55 d="m 0,0 5950,0 0,3922 L 0,3922 0,0 Z m 0,3922 5950,0 0,1 -5950,0 0,-1 z m 0,1 2209,0 0,1 -2209,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2213,0 0,1 -2213,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2217,0 0,1 -2217,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2221,0 0,1 -2221,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2225,0 0,1 -2225,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2229,0 0,1 -2229,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2233,0 0,1 -2233,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2237,0 0,1 -2237,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2241,0 0,1 -2241,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2241,0 0,1 -2241,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2237,0 0,1 -2237,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2233,0 0,1 -2233,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2229,0 0,1 -2229,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2225,0 0,1 -2225,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2221,0 0,1 -2221,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2217,0 0,1 -2217,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2213,0 0,1 -2213,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2209,0 0,1 -2209,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 5950,0 0,1 -5950,0 0,-1 z m 0,1 5950,0 0,4478 -5950,0 0,-4478 z" 56 d="m 0,0 5950,0 0,3922 L 0,3922 0,0 Z m 0,3922 5950,0 0,1 -5950,0 0,-1 z m 0,1 2209,0 0,1 -2209,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2213,0 0,1 -2213,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2217,0 0,1 -2217,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2221,0 0,1 -2221,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2225,0 0,1 -2225,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2229,0 0,1 -2229,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2233,0 0,1 -2233,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2237,0 0,1 -2237,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2241,0 0,1 -2241,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2241,0 0,1 -2241,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2237,0 0,1 -2237,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2233,0 0,1 -2233,0 0,-1 z m
56 id="path100" 572250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2229,0 0,1 -2229,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2225,0 0,1 -2225,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2221,0 0,1 -2221,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2217,0 0,1 -2217,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2213,0 0,1 -2213,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 2209,0 0,1 -2209,0 0,-1 z m 2250,0 3700,0 0,1 -3700,0 0,-1 z m -2250,1 5950,0 0,1 -5950,0 0,-1 z m 0,1 5950,0 0,4478 -5950,0 0,-4478 z"
57 inkscape:connector-curvature="0" /></clipPath></defs><g 58 id="path100"
59 inkscape:connector-curvature="0" /></clipPath></defs><g
58 id="g10" 60 id="g10"
59 inkscape:groupmode="layer" 61 inkscape:groupmode="layer"
60 inkscape:label="vbi_625" 62 inkscape:label="vbi_625"
@@ -62,20 +64,20 @@
62 id="g12" 64 id="g12"
63 transform="matrix(1.3045828,0,0,1.3045828,-213.38312,-1110.9872)" 65 transform="matrix(1.3045828,0,0,1.3045828,-213.38312,-1110.9872)"
64 style=""><path 66 style=""><path
65 d="m 2132.25,4598.15 0,-85.05" 67 d="m 2132.25,4598.15 0,-85.05"
66 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 68 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
67 id="path14" 69 id="path14"
68 inkscape:connector-curvature="0" /></g><g 70 inkscape:connector-curvature="0" /></g><g
69 id="g16" 71 id="g16"
70 transform="matrix(1.3045828,0,0,1.3045828,-213.38312,-1110.9872)" 72 transform="matrix(1.3045828,0,0,1.3045828,-213.38312,-1110.9872)"
71 style=""><g 73 style=""><g
72 id="g18" 74 id="g18"
73 clip-path="url(#clipPath20)" 75 clip-path="url(#clipPath20)"
74 style=""><path 76 style=""><path
75 d="m 2132.25,4555.63 113.4,0" 77 d="m 2132.25,4555.63 113.4,0"
76 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 78 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
77 id="path24" 79 id="path24"
78 inkscape:connector-curvature="0" /></g></g><path 80 inkscape:connector-curvature="0" /></g></g><path
79 inkscape:connector-curvature="0" 81 inkscape:connector-curvature="0"
80 id="path28" 82 id="path28"
81 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 83 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
@@ -211,13 +213,13 @@
211 id="g94" 213 id="g94"
212 transform="matrix(1.3045828,0,0,1.3045828,-213.38312,-1110.9872)" 214 transform="matrix(1.3045828,0,0,1.3045828,-213.38312,-1110.9872)"
213 style=""><g 215 style=""><g
214 id="g96" 216 id="g96"
215 clip-path="url(#clipPath98)" 217 clip-path="url(#clipPath98)"
216 style=""><path 218 style=""><path
217 d="m 2132.25,3931.93 113.4,0" 219 d="m 2132.25,3931.93 113.4,0"
218 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 220 style="fill:none;stroke:#000000;stroke-width:2.36249995;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
219 id="path102" 221 id="path102"
220 inkscape:connector-curvature="0" /></g></g><path 222 inkscape:connector-curvature="0" /></g></g><path
221 inkscape:connector-curvature="0" 223 inkscape:connector-curvature="0"
222 id="path106" 224 id="path106"
223 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 225 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
@@ -385,7 +387,8 @@
385 inkscape:connector-curvature="0" 387 inkscape:connector-curvature="0"
386 id="path188" 388 id="path188"
387 style="fill:none;stroke:#000000;stroke-width:3.08207679;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 389 style="fill:none;stroke:#000000;stroke-width:3.08207679;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
388 d="m 1162.8865,4739.7407 18.486,0 0,92.4688 18.499,-18.499 18.4859,36.9849 18.499,-36.9849 18.4859,36.9849 18.499,-55.4708 18.4859,55.4708 18.499,-18.4859 18.486,55.4708 18.499,-55.4708 18.4859,18.4859 18.499,36.9849 18.4859,-73.9698 18.499,36.9849 18.4859,-55.4708 0,-55.4839 18.499,0 0,-110.9548 36.985,0 0,110.9548 18.4859,0 0,55.4839 18.499,36.9849 18.4859,-36.9849 18.499,55.4708 18.4859,-18.4859 18.499,55.4708 18.486,-18.4859 0,-129.4537 18.4989,0 0,-110.9548 18.486,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 147.9397,0 0,110.9548 36.9849,0 0,-110.9548 147.9397,0 0,110.9548 36.985,0 0,-110.9548 147.9397,0 0,110.9548 36.9849,0 0,-110.9548 147.9397,0 0,110.9548 36.9849,0 0,-110.9548 147.9397,0 0,110.9548 36.9849,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 18.486,0 0,110.9548 166.4386,0 0,-110.9548 18.486,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 36.9849,0 0,110.9548 332.8643,0 0,-110.9548 36.9849,0 0,110.9548 18.486,0" /><path 390 d="m 1162.8865,4739.7407 18.486,0 0,92.4688 18.499,-18.499 18.4859,36.9849 18.499,-36.9849 18.4859,36.9849 18.499,-55.4708 18.4859,55.4708 18.499,-18.4859 18.486,55.4708 18.499,-55.4708 18.4859,18.4859 18.499,36.9849 18.4859,-73.9698 18.499,36.9849 18.4859,-55.4708 0,-55.4839 18.499,0 0,-110.9548 36.985,0 0,110.9548 18.4859,0 0,55.4839 18.499,36.9849 18.4859,-36.9849 18.499,55.4708 18.4859,-18.4859 18.499,55.4708 18.486,-18.4859 0,-129.4537 18.4989,0 0,-110.9548 18.486,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 147.9397,0 0,110.9548 36.9849,0 0,-110.9548 147.9397,0 0,110.9548 36.985,0 0,-110.9548 147.9397,0 0,110.9548 36.9849,0 0,-110.9548 147.9397,0 0,110.9548 36.9849,0 0,-110.9548 147.9397,0 0,110.9548 36.9849,0
3910,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 18.486,0 0,110.9548 166.4386,0 0,-110.9548 18.486,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 18.4859,0 0,110.9548 166.4387,0 0,-110.9548 36.9849,0 0,110.9548 332.8643,0 0,-110.9548 36.9849,0 0,110.9548 18.486,0" /><path
389 inkscape:connector-curvature="0" 392 inkscape:connector-curvature="0"
390 id="path190" 393 id="path190"
391 style="fill:none;stroke:#000000;stroke-width:3.08207679;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 394 style="fill:none;stroke:#000000;stroke-width:3.08207679;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
@@ -409,7 +412,8 @@
409 inkscape:connector-curvature="0" 412 inkscape:connector-curvature="0"
410 id="path200" 413 id="path200"
411 style="fill:none;stroke:#000000;stroke-width:3.08207679;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 414 style="fill:none;stroke:#000000;stroke-width:3.08207679;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
412 d="m 1162.8865,3926.0723 18.486,0 0,55.4839 18.499,92.4558 18.4859,-55.4708 36.9849,36.9849 18.499,-55.4839 18.4859,18.499 18.499,-36.985 18.486,55.4709 18.499,-18.4859 18.4859,-36.985 18.499,18.486 18.4859,36.9849 18.499,-36.9849 18.4859,36.9849 0,-110.9548 18.499,0 0,-110.9547 18.486,0 0,110.9547 166.4386,0 0,-110.9547 18.486,0 0,110.9547 166.4387,0 0,-110.9547 18.4859,0 0,110.9547 166.4387,0 0,-110.9547 18.4859,0 0,110.9547 166.4387,0 0,-110.9547 18.4859,0 0,110.9547 166.4387,0 0,-110.9547 147.9397,0 0,110.9547 36.9849,0 0,-110.9547 147.9397,0 0,110.9547 36.9849,0 0,-110.9547 147.9397,0 0,110.9547 36.985,0 0,-110.9547 147.9397,0 0,110.9547 36.9849,0 0,-110.9547 147.9397,0 0,110.9547 36.9849,0 0,-110.9547 18.4859,0 0,110.9547 166.4387,0 0,-110.9547 18.4859,0 0,110.9547 166.4387,0 0,-110.9547 18.486,0 0,110.9547 166.4386,0 0,-110.9547 18.486,0 0,110.9547 166.4387,0 0,-110.9547 18.4859,0 0,110.9547 351.3633,0 0,-110.9547 36.9849,0 0,110.9547 18.486,0" /><path 415 d="m 1162.8865,3926.0723 18.486,0 0,55.4839 18.499,92.4558 18.4859,-55.4708 36.9849,36.9849 18.499,-55.4839 18.4859,18.499 18.499,-36.985 18.486,55.4709 18.499,-18.4859 18.4859,-36.985 18.499,18.486 18.4859,36.9849 18.499,-36.9849 18.4859,36.9849 0,-110.9548 18.499,0 0,-110.9547 18.486,0 0,110.9547 166.4386,0 0,-110.9547 18.486,0 0,110.9547 166.4387,0 0,-110.9547 18.4859,0 0,110.9547 166.4387,0 0,-110.9547 18.4859,0 0,110.9547 166.4387,0 0,-110.9547 18.4859,0 0,110.9547 166.4387,0 0,-110.9547 147.9397,0 0,110.9547 36.9849,0 0,-110.9547 147.9397,0 0,110.9547 36.9849,0 0,-110.9547 147.9397,0 0,110.9547 36.985,0 0,-110.9547 147.9397,0 0,110.9547 36.9849,0 0,-110.9547 147.9397,0 0,110.9547 36.9849,0 0,-110.9547 18.4859,0 0,110.9547 166.4387,0 0,-110.9547 18.4859,0 0,110.9547 166.4387,0 0,-110.9547 18.486,0 0,110.9547 166.4386,0 0,-110.9547 18.486,0 0,110.9547 166.4387,0 0,-110.9547
41618.4859,0 0,110.9547 351.3633,0 0,-110.9547 36.9849,0 0,110.9547 18.486,0" /><path
413 inkscape:connector-curvature="0" 417 inkscape:connector-curvature="0"
414 id="path202" 418 id="path202"
415 style="fill:none;stroke:#000000;stroke-width:3.08207679;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 419 style="fill:none;stroke:#000000;stroke-width:3.08207679;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
@@ -559,300 +563,300 @@
559 id="text276" 563 id="text276"
560 x="3550.4165" 564 x="3550.4165"
561 y="-4462.3472"><tspan 565 y="-4462.3472"><tspan
562 x="3550.4165 3591.5437 3628.5286 3649.0923 3669.656 3690.2195 3706.6409 3747.7681 3764.1895" 566 x="3550.4165 3591.5437 3628.5286 3649.0923 3669.656 3690.2195 3706.6409 3747.7681 3764.1895"
563 y="-4462.3472" 567 y="-4462.3472"
564 sodipodi:role="line" 568 sodipodi:role="line"
565 id="tspan278">1st field</tspan><tspan 569 id="tspan278">1st field</tspan><tspan
566 x="2732.6792 3823.7344 4193.5835 4581.9253 4951.7744 5321.6235 3472.3777 3102.5283 2321.7029 2362.8303 2403.9575 1951.8538 1992.981 2034.1083 1582.0045 1623.132 1664.259 5670.9062 5712.0337" 570 x="2732.6792 3823.7344 4193.5835 4581.9253 4951.7744 5321.6235 3472.3777 3102.5283 2321.7029 2362.8303 2403.9575 1951.8538 1992.981 2034.1083 1582.0045 1623.132 1664.259 5670.9062 5712.0337"
567 y="-4943.1509" 571 y="-4943.1509"
568 sodipodi:role="line" 572 sodipodi:role="line"
569 id="tspan280">1456783231231131022</tspan><tspan 573 id="tspan280">1456783231231131022</tspan><tspan
570 x="2732.6726 3823.7278 4193.5771 4581.9189 4951.7681 5321.6172 3472.3711 3102.522 2321.6965 2362.8237 2403.9509 1951.8473 1992.9745 2034.1018 1581.998 1623.1254 1664.2524 5670.8999 5712.0269" 574 x="2732.6726 3823.7278 4193.5771 4581.9189 4951.7681 5321.6172 3472.3711 3102.522 2321.6965 2362.8237 2403.9509 1951.8473 1992.9745 2034.1018 1581.998 1623.1254 1664.2524 5670.8999 5712.0269"
571 y="-5054.1064" 575 y="-5054.1064"
572 sodipodi:role="line" 576 sodipodi:role="line"
573 id="tspan282">1456783262562462322</tspan><tspan 577 id="tspan282">1456783262562462322</tspan><tspan
574 x="842.29962 883.42694 924.55408" 578 x="842.29962 883.42694 924.55408"
575 y="-4943.1509" 579 y="-4943.1509"
576 sodipodi:role="line" 580 sodipodi:role="line"
577 id="tspan284">308</tspan><tspan 581 id="tspan284">308</tspan><tspan
578 x="842.29962 883.42694 924.55408" 582 x="842.29962 883.42694 924.55408"
579 y="-5054.1064" 583 y="-5054.1064"
580 sodipodi:role="line" 584 sodipodi:role="line"
581 id="tspan286">621</tspan><tspan 585 id="tspan286">621</tspan><tspan
582 x="1212.1489 1253.276 1294.4033" 586 x="1212.1489 1253.276 1294.4033"
583 y="-4943.1509" 587 y="-4943.1509"
584 sodipodi:role="line" 588 sodipodi:role="line"
585 id="tspan288">309</tspan><tspan 589 id="tspan288">309</tspan><tspan
586 x="1212.1489 1253.276 1294.4033" 590 x="1212.1489 1253.276 1294.4033"
587 y="-5054.1064" 591 y="-5054.1064"
588 sodipodi:role="line" 592 sodipodi:role="line"
589 id="tspan290">622</tspan><tspan 593 id="tspan290">622</tspan><tspan
590 x="3538.0635 3579.1907 3620.3179 3661.4451 3682.0088 3702.5723 3718.9937 3760.1208 3776.5422" 594 x="3538.0635 3579.1907 3620.3179 3661.4451 3682.0088 3702.5723 3718.9937 3760.1208 3776.5422"
591 y="-3648.6792" 595 y="-3648.6792"
592 sodipodi:role="line" 596 sodipodi:role="line"
593 id="tspan292">2nd field</tspan></text> 597 id="tspan292">2nd field</tspan></text>
594<text 598<text
595 transform="scale(1,-1)" 599 transform="scale(1,-1)"
596 style="font-variant:normal;font-weight:normal;font-size:61.64153671px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 600 style="font-variant:normal;font-weight:normal;font-size:61.64153671px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
597 id="text294" 601 id="text294"
598 x="2734.751" 602 x="2734.751"
599 y="-4037.021"><tspan 603 y="-4037.021"><tspan
600 x="2734.751 2755.2776 2789.5503" 604 x="2734.751 2755.2776 2789.5503"
601 y="-4037.021" 605 y="-4037.021"
602 sodipodi:role="line" 606 sodipodi:role="line"
603 id="tspan296">(1)</tspan></text> 607 id="tspan296">(1)</tspan></text>
604<text 608<text
605 transform="scale(1,-1)" 609 transform="scale(1,-1)"
606 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 610 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
607 id="text298" 611 id="text298"
608 x="4951.772" 612 x="4951.772"
609 y="-4129.4834"><tspan 613 y="-4129.4834"><tspan
610 x="4951.772 4581.9229 4212.0737 3842.2244 3490.8677 3102.5259 2321.7004 2362.8276 2403.9551 1951.8512 1992.9785 2034.1057 1582.0022 1623.1293 1664.2563" 614 x="4951.772 4581.9229 4212.0737 3842.2244 3490.8677 3102.5259 2321.7004 2362.8276 2403.9551 1951.8512 1992.9785 2034.1057 1582.0022 1623.1293 1664.2563"
611 y="-4129.4834" 615 y="-4129.4834"
612 sodipodi:role="line" 616 sodipodi:role="line"
613 id="tspan300">765432313312311</tspan><tspan 617 id="tspan300">765432313312311</tspan><tspan
614 x="6020.1929 6061.3198 6102.4473 5650.3433 5691.4707 5732.5981 5280.4941 5321.6216 5362.7485 4910.645 4951.7725 4992.8994 4540.7959 4581.9229 4623.0503 4170.9468 4212.0737 4253.2012 3801.0974 3842.2246 3883.3518 3449.7405 3490.8677 3531.9951 3061.3989 3102.5261 3143.6533 2691.5496 2732.677 2773.8042 2321.7004 2362.8276 2403.9551 1951.8512 1992.9785 2034.1057 1582.0022 1623.1293 1664.2563" 618 x="6020.1929 6061.3198 6102.4473 5650.3433 5691.4707 5732.5981 5280.4941 5321.6216 5362.7485 4910.645 4951.7725 4992.8994 4540.7959 4581.9229 4623.0503 4170.9468 4212.0737 4253.2012 3801.0974 3842.2246 3883.3518 3449.7405 3490.8677 3531.9951 3061.3989 3102.5261 3143.6533 2691.5496 2732.677 2773.8042 2321.7004 2362.8276 2403.9551 1951.8512 1992.9785 2034.1057 1582.0022 1623.1293 1664.2563"
615 y="-4240.4385" 619 y="-4240.4385"
616 sodipodi:role="line" 620 sodipodi:role="line"
617 id="tspan302">336335321320319318317316315314313312311</tspan><tspan 621 id="tspan302">336335321320319318317316315314313312311</tspan><tspan
618 x="2732.6765 5321.6211 5670.9062 5712.0337 6040.7554 6081.8828 842.30634 883.43323 924.56055" 622 x="2732.6765 5321.6211 5670.9062 5712.0337 6040.7554 6081.8828 842.30634 883.43323 924.56055"
619 y="-4129.4834" 623 y="-4129.4834"
620 sodipodi:role="line" 624 sodipodi:role="line"
621 id="tspan304">182223309</tspan><tspan 625 id="tspan304">182223309</tspan><tspan
622 x="842.30634 883.43323 924.56055" 626 x="842.30634 883.43323 924.56055"
623 y="-4240.4385" 627 y="-4240.4385"
624 sodipodi:role="line" 628 sodipodi:role="line"
625 id="tspan306">309</tspan><tspan 629 id="tspan306">309</tspan><tspan
626 x="1212.1553 1253.2826 1294.4099" 630 x="1212.1553 1253.2826 1294.4099"
627 y="-4129.4834" 631 y="-4129.4834"
628 sodipodi:role="line" 632 sodipodi:role="line"
629 id="tspan308">310</tspan><tspan 633 id="tspan308">310</tspan><tspan
630 x="1212.1553 1253.2826 1294.4099" 634 x="1212.1553 1253.2826 1294.4099"
631 y="-4240.4385" 635 y="-4240.4385"
632 sodipodi:role="line" 636 sodipodi:role="line"
633 id="tspan310">310</tspan><tspan 637 id="tspan310">310</tspan><tspan
634 x="6410.605 6451.7319" 638 x="6410.605 6451.7319"
635 y="-4129.4834" 639 y="-4129.4834"
636 sodipodi:role="line" 640 sodipodi:role="line"
637 id="tspan312">24</tspan><tspan 641 id="tspan312">24</tspan><tspan
638 x="6390.041 6431.1685 6472.2954" 642 x="6390.041 6431.1685 6472.2954"
639 y="-4240.4385" 643 y="-4240.4385"
640 sodipodi:role="line" 644 sodipodi:role="line"
641 id="tspan314">337</tspan><tspan 645 id="tspan314">337</tspan><tspan
642 x="6040.7559 6081.8833" 646 x="6040.7559 6081.8833"
643 y="-4943.1504" 647 y="-4943.1504"
644 sodipodi:role="line" 648 sodipodi:role="line"
645 id="tspan316">23</tspan><tspan 649 id="tspan316">23</tspan><tspan
646 x="6040.7559 6081.8833" 650 x="6040.7559 6081.8833"
647 y="-5054.106" 651 y="-5054.106"
648 sodipodi:role="line" 652 sodipodi:role="line"
649 id="tspan318">23</tspan><tspan 653 id="tspan318">23</tspan><tspan
650 x="6410.605 6451.7324" 654 x="6410.605 6451.7324"
651 y="-4943.1504" 655 y="-4943.1504"
652 sodipodi:role="line" 656 sodipodi:role="line"
653 id="tspan320">24</tspan><tspan 657 id="tspan320">24</tspan><tspan
654 x="6410.605 6451.7324" 658 x="6410.605 6451.7324"
655 y="-5054.106" 659 y="-5054.106"
656 sodipodi:role="line" 660 sodipodi:role="line"
657 id="tspan322">24</tspan></text> 661 id="tspan322">24</tspan></text>
658<text 662<text
659 transform="scale(1,-1)" 663 transform="scale(1,-1)"
660 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 664 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
661 id="text3671" 665 id="text3671"
662 x="3550.4165 3591.5437 3628.5286 3649.0923 3669.656 3690.2195 3706.6409 3747.7681 3764.1895" 666 x="3550.4165 3591.5437 3628.5286 3649.0923 3669.656 3690.2195 3706.6409 3747.7681 3764.1895"
663 y="-4462.3472"><tspan 667 y="-4462.3472"><tspan
664 x="3550.4165 3591.5437 3628.5286 3649.0923 3669.656 3690.2195 3706.6409 3747.7681 3764.1895" 668 x="3550.4165 3591.5437 3628.5286 3649.0923 3669.656 3690.2195 3706.6409 3747.7681 3764.1895"
665 y="-4462.3472" 669 y="-4462.3472"
666 sodipodi:role="line" 670 sodipodi:role="line"
667 id="tspan3673">1st field</tspan></text> 671 id="tspan3673">1st field</tspan></text>
668<text 672<text
669 transform="scale(1,-1)" 673 transform="scale(1,-1)"
670 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 674 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
671 id="text3675" 675 id="text3675"
672 x="2732.6792 3823.7344 4193.5835 4581.9253 4951.7744 5321.6235 3472.3777 3102.5283 2321.7029 2362.8303 2403.9575 1951.8538 1992.981 2034.1083 1582.0045 1623.132 1664.259 5670.9062 5712.0337" 676 x="2732.6792 3823.7344 4193.5835 4581.9253 4951.7744 5321.6235 3472.3777 3102.5283 2321.7029 2362.8303 2403.9575 1951.8538 1992.981 2034.1083 1582.0045 1623.132 1664.259 5670.9062 5712.0337"
673 y="-4943.1509"><tspan 677 y="-4943.1509"><tspan
674 x="2732.6792 3823.7344 4193.5835 4581.9253 4951.7744 5321.6235 3472.3777 3102.5283 2321.7029 2362.8303 2403.9575 1951.8538 1992.981 2034.1083 1582.0045 1623.132 1664.259 5670.9062 5712.0337" 678 x="2732.6792 3823.7344 4193.5835 4581.9253 4951.7744 5321.6235 3472.3777 3102.5283 2321.7029 2362.8303 2403.9575 1951.8538 1992.981 2034.1083 1582.0045 1623.132 1664.259 5670.9062 5712.0337"
675 y="-4943.1509" 679 y="-4943.1509"
676 sodipodi:role="line" 680 sodipodi:role="line"
677 id="tspan3677">1456783231231131022</tspan></text> 681 id="tspan3677">1456783231231131022</tspan></text>
678<text 682<text
679 transform="scale(1,-1)" 683 transform="scale(1,-1)"
680 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 684 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
681 id="text3679" 685 id="text3679"
682 x="2732.6726 3823.7278 4193.5771 4581.9189 4951.7681 5321.6172 3472.3711 3102.522 2321.6965 2362.8237 2403.9509 1951.8473 1992.9745 2034.1018 1581.998 1623.1254 1664.2524 5670.8999 5712.0269" 686 x="2732.6726 3823.7278 4193.5771 4581.9189 4951.7681 5321.6172 3472.3711 3102.522 2321.6965 2362.8237 2403.9509 1951.8473 1992.9745 2034.1018 1581.998 1623.1254 1664.2524 5670.8999 5712.0269"
683 y="-5054.1064"><tspan 687 y="-5054.1064"><tspan
684 x="2732.6726 3823.7278 4193.5771 4581.9189 4951.7681 5321.6172 3472.3711 3102.522 2321.6965 2362.8237 2403.9509 1951.8473 1992.9745 2034.1018 1581.998 1623.1254 1664.2524 5670.8999 5712.0269" 688 x="2732.6726 3823.7278 4193.5771 4581.9189 4951.7681 5321.6172 3472.3711 3102.522 2321.6965 2362.8237 2403.9509 1951.8473 1992.9745 2034.1018 1581.998 1623.1254 1664.2524 5670.8999 5712.0269"
685 y="-5054.1064" 689 y="-5054.1064"
686 sodipodi:role="line" 690 sodipodi:role="line"
687 id="tspan3681">1456783262562462322</tspan></text> 691 id="tspan3681">1456783262562462322</tspan></text>
688<text 692<text
689 transform="scale(1,-1)" 693 transform="scale(1,-1)"
690 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 694 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
691 id="text3683" 695 id="text3683"
692 x="842.29962 883.42694 924.55408" 696 x="842.29962 883.42694 924.55408"
693 y="-4943.1509"><tspan 697 y="-4943.1509"><tspan
694 x="842.29962 883.42694 924.55408" 698 x="842.29962 883.42694 924.55408"
695 y="-4943.1509" 699 y="-4943.1509"
696 sodipodi:role="line" 700 sodipodi:role="line"
697 id="tspan3685">308</tspan></text> 701 id="tspan3685">308</tspan></text>
698<text 702<text
699 transform="scale(1,-1)" 703 transform="scale(1,-1)"
700 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 704 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
701 id="text3687" 705 id="text3687"
702 x="842.29962 883.42694 924.55408" 706 x="842.29962 883.42694 924.55408"
703 y="-5054.1064"><tspan 707 y="-5054.1064"><tspan
704 x="842.29962 883.42694 924.55408" 708 x="842.29962 883.42694 924.55408"
705 y="-5054.1064" 709 y="-5054.1064"
706 sodipodi:role="line" 710 sodipodi:role="line"
707 id="tspan3689">621</tspan></text> 711 id="tspan3689">621</tspan></text>
708<text 712<text
709 transform="scale(1,-1)" 713 transform="scale(1,-1)"
710 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 714 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
711 id="text3691" 715 id="text3691"
712 x="1212.1489 1253.276 1294.4033" 716 x="1212.1489 1253.276 1294.4033"
713 y="-4943.1509"><tspan 717 y="-4943.1509"><tspan
714 x="1212.1489 1253.276 1294.4033" 718 x="1212.1489 1253.276 1294.4033"
715 y="-4943.1509" 719 y="-4943.1509"
716 sodipodi:role="line" 720 sodipodi:role="line"
717 id="tspan3693">309</tspan></text> 721 id="tspan3693">309</tspan></text>
718<text 722<text
719 transform="scale(1,-1)" 723 transform="scale(1,-1)"
720 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 724 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
721 id="text3695" 725 id="text3695"
722 x="1212.1489 1253.276 1294.4033" 726 x="1212.1489 1253.276 1294.4033"
723 y="-5054.1064"><tspan 727 y="-5054.1064"><tspan
724 x="1212.1489 1253.276 1294.4033" 728 x="1212.1489 1253.276 1294.4033"
725 y="-5054.1064" 729 y="-5054.1064"
726 sodipodi:role="line" 730 sodipodi:role="line"
727 id="tspan3697">622</tspan></text> 731 id="tspan3697">622</tspan></text>
728<text 732<text
729 transform="scale(1,-1)" 733 transform="scale(1,-1)"
730 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 734 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
731 id="text3699" 735 id="text3699"
732 x="3538.0635 3579.1907 3620.3179 3661.4451 3682.0088 3702.5723 3718.9937 3760.1208 3776.5422" 736 x="3538.0635 3579.1907 3620.3179 3661.4451 3682.0088 3702.5723 3718.9937 3760.1208 3776.5422"
733 y="-3648.6792"><tspan 737 y="-3648.6792"><tspan
734 x="3538.0635 3579.1907 3620.3179 3661.4451 3682.0088 3702.5723 3718.9937 3760.1208 3776.5422" 738 x="3538.0635 3579.1907 3620.3179 3661.4451 3682.0088 3702.5723 3718.9937 3760.1208 3776.5422"
735 y="-3648.6792" 739 y="-3648.6792"
736 sodipodi:role="line" 740 sodipodi:role="line"
737 id="tspan3701">2nd field</tspan></text> 741 id="tspan3701">2nd field</tspan></text>
738<text 742<text
739 transform="scale(1,-1)" 743 transform="scale(1,-1)"
740 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 744 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
741 id="text4083" 745 id="text4083"
742 x="4951.772 4581.9229 4212.0737 3842.2244 3490.8677 3102.5259 2321.7004 2362.8276 2403.9551 1951.8512 1992.9785 2034.1057 1582.0022 1623.1293 1664.2563" 746 x="4951.772 4581.9229 4212.0737 3842.2244 3490.8677 3102.5259 2321.7004 2362.8276 2403.9551 1951.8512 1992.9785 2034.1057 1582.0022 1623.1293 1664.2563"
743 y="-4129.4834"><tspan 747 y="-4129.4834"><tspan
744 x="4951.772 4581.9229 4212.0737 3842.2244 3490.8677 3102.5259 2321.7004 2362.8276 2403.9551 1951.8512 1992.9785 2034.1057 1582.0022 1623.1293 1664.2563" 748 x="4951.772 4581.9229 4212.0737 3842.2244 3490.8677 3102.5259 2321.7004 2362.8276 2403.9551 1951.8512 1992.9785 2034.1057 1582.0022 1623.1293 1664.2563"
745 y="-4129.4834" 749 y="-4129.4834"
746 sodipodi:role="line" 750 sodipodi:role="line"
747 id="tspan4085">765432313312311</tspan></text> 751 id="tspan4085">765432313312311</tspan></text>
748<text 752<text
749 transform="scale(1,-1)" 753 transform="scale(1,-1)"
750 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 754 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
751 id="text4087" 755 id="text4087"
752 x="6020.1929 6061.3198 6102.4473 5650.3433 5691.4707 5732.5981 5280.4941 5321.6216 5362.7485 4910.645 4951.7725 4992.8994 4540.7959 4581.9229 4623.0503 4170.9468 4212.0737 4253.2012 3801.0974 3842.2246 3883.3518 3449.7405 3490.8677 3531.9951 3061.3989 3102.5261 3143.6533 2691.5496 2732.677 2773.8042 2321.7004 2362.8276 2403.9551 1951.8512 1992.9785 2034.1057 1582.0022 1623.1293 1664.2563" 756 x="6020.1929 6061.3198 6102.4473 5650.3433 5691.4707 5732.5981 5280.4941 5321.6216 5362.7485 4910.645 4951.7725 4992.8994 4540.7959 4581.9229 4623.0503 4170.9468 4212.0737 4253.2012 3801.0974 3842.2246 3883.3518 3449.7405 3490.8677 3531.9951 3061.3989 3102.5261 3143.6533 2691.5496 2732.677 2773.8042 2321.7004 2362.8276 2403.9551 1951.8512 1992.9785 2034.1057 1582.0022 1623.1293 1664.2563"
753 y="-4240.4385"><tspan 757 y="-4240.4385"><tspan
754 x="6020.1929 6061.3198 6102.4473 5650.3433 5691.4707 5732.5981 5280.4941 5321.6216 5362.7485 4910.645 4951.7725 4992.8994 4540.7959 4581.9229 4623.0503 4170.9468 4212.0737 4253.2012 3801.0974 3842.2246 3883.3518 3449.7405 3490.8677 3531.9951 3061.3989 3102.5261 3143.6533 2691.5496 2732.677 2773.8042 2321.7004 2362.8276 2403.9551 1951.8512 1992.9785 2034.1057 1582.0022 1623.1293 1664.2563" 758 x="6020.1929 6061.3198 6102.4473 5650.3433 5691.4707 5732.5981 5280.4941 5321.6216 5362.7485 4910.645 4951.7725 4992.8994 4540.7959 4581.9229 4623.0503 4170.9468 4212.0737 4253.2012 3801.0974 3842.2246 3883.3518 3449.7405 3490.8677 3531.9951 3061.3989 3102.5261 3143.6533 2691.5496 2732.677 2773.8042 2321.7004 2362.8276 2403.9551 1951.8512 1992.9785 2034.1057 1582.0022 1623.1293 1664.2563"
755 y="-4240.4385" 759 y="-4240.4385"
756 sodipodi:role="line" 760 sodipodi:role="line"
757 id="tspan4089">336335321320319318317316315314313312311</tspan></text> 761 id="tspan4089">336335321320319318317316315314313312311</tspan></text>
758<text 762<text
759 transform="scale(1,-1)" 763 transform="scale(1,-1)"
760 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 764 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
761 id="text4091" 765 id="text4091"
762 x="2732.6765 5321.6211 5670.9062 5712.0337 6040.7554 6081.8828 842.30634 883.43323 924.56055" 766 x="2732.6765 5321.6211 5670.9062 5712.0337 6040.7554 6081.8828 842.30634 883.43323 924.56055"
763 y="-4129.4834"><tspan 767 y="-4129.4834"><tspan
764 x="2732.6765 5321.6211 5670.9062 5712.0337 6040.7554 6081.8828 842.30634 883.43323 924.56055" 768 x="2732.6765 5321.6211 5670.9062 5712.0337 6040.7554 6081.8828 842.30634 883.43323 924.56055"
765 y="-4129.4834" 769 y="-4129.4834"
766 sodipodi:role="line" 770 sodipodi:role="line"
767 id="tspan4093">182223309</tspan></text> 771 id="tspan4093">182223309</tspan></text>
768<text 772<text
769 transform="scale(1,-1)" 773 transform="scale(1,-1)"
770 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 774 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
771 id="text4095" 775 id="text4095"
772 x="842.30634 883.43323 924.56055" 776 x="842.30634 883.43323 924.56055"
773 y="-4240.4385"><tspan 777 y="-4240.4385"><tspan
774 x="842.30634 883.43323 924.56055" 778 x="842.30634 883.43323 924.56055"
775 y="-4240.4385" 779 y="-4240.4385"
776 sodipodi:role="line" 780 sodipodi:role="line"
777 id="tspan4097">309</tspan></text> 781 id="tspan4097">309</tspan></text>
778<text 782<text
779 transform="scale(1,-1)" 783 transform="scale(1,-1)"
780 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 784 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
781 id="text4099" 785 id="text4099"
782 x="1212.1553 1253.2826 1294.4099" 786 x="1212.1553 1253.2826 1294.4099"
783 y="-4129.4834"><tspan 787 y="-4129.4834"><tspan
784 x="1212.1553 1253.2826 1294.4099" 788 x="1212.1553 1253.2826 1294.4099"
785 y="-4129.4834" 789 y="-4129.4834"
786 sodipodi:role="line" 790 sodipodi:role="line"
787 id="tspan4101">310</tspan></text> 791 id="tspan4101">310</tspan></text>
788<text 792<text
789 transform="scale(1,-1)" 793 transform="scale(1,-1)"
790 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 794 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
791 id="text4103" 795 id="text4103"
792 x="1212.1553 1253.2826 1294.4099" 796 x="1212.1553 1253.2826 1294.4099"
793 y="-4240.4385"><tspan 797 y="-4240.4385"><tspan
794 x="1212.1553 1253.2826 1294.4099" 798 x="1212.1553 1253.2826 1294.4099"
795 y="-4240.4385" 799 y="-4240.4385"
796 sodipodi:role="line" 800 sodipodi:role="line"
797 id="tspan4105">310</tspan></text> 801 id="tspan4105">310</tspan></text>
798<text 802<text
799 transform="scale(1,-1)" 803 transform="scale(1,-1)"
800 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 804 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
801 id="text4107" 805 id="text4107"
802 x="6410.605 6451.7319" 806 x="6410.605 6451.7319"
803 y="-4129.4834"><tspan 807 y="-4129.4834"><tspan
804 x="6410.605 6451.7319" 808 x="6410.605 6451.7319"
805 y="-4129.4834" 809 y="-4129.4834"
806 sodipodi:role="line" 810 sodipodi:role="line"
807 id="tspan4109">24</tspan></text> 811 id="tspan4109">24</tspan></text>
808<text 812<text
809 transform="scale(1,-1)" 813 transform="scale(1,-1)"
810 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 814 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
811 id="text4111" 815 id="text4111"
812 x="6390.041 6431.1685 6472.2954" 816 x="6390.041 6431.1685 6472.2954"
813 y="-4240.4385"><tspan 817 y="-4240.4385"><tspan
814 x="6390.041 6431.1685 6472.2954" 818 x="6390.041 6431.1685 6472.2954"
815 y="-4240.4385" 819 y="-4240.4385"
816 sodipodi:role="line" 820 sodipodi:role="line"
817 id="tspan4113">337</tspan></text> 821 id="tspan4113">337</tspan></text>
818<text 822<text
819 transform="scale(1,-1)" 823 transform="scale(1,-1)"
820 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 824 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
821 id="text4115" 825 id="text4115"
822 x="6040.7559 6081.8833" 826 x="6040.7559 6081.8833"
823 y="-4943.1504"><tspan 827 y="-4943.1504"><tspan
824 x="6040.7559 6081.8833" 828 x="6040.7559 6081.8833"
825 y="-4943.1504" 829 y="-4943.1504"
826 sodipodi:role="line" 830 sodipodi:role="line"
827 id="tspan4117">23</tspan></text> 831 id="tspan4117">23</tspan></text>
828<text 832<text
829 transform="scale(1,-1)" 833 transform="scale(1,-1)"
830 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 834 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
831 id="text4119" 835 id="text4119"
832 x="6040.7559 6081.8833" 836 x="6040.7559 6081.8833"
833 y="-5054.106"><tspan 837 y="-5054.106"><tspan
834 x="6040.7559 6081.8833" 838 x="6040.7559 6081.8833"
835 y="-5054.106" 839 y="-5054.106"
836 sodipodi:role="line" 840 sodipodi:role="line"
837 id="tspan4121">23</tspan></text> 841 id="tspan4121">23</tspan></text>
838<text 842<text
839 transform="scale(1,-1)" 843 transform="scale(1,-1)"
840 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 844 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
841 id="text4123" 845 id="text4123"
842 x="6410.605 6451.7324" 846 x="6410.605 6451.7324"
843 y="-4943.1504"><tspan 847 y="-4943.1504"><tspan
844 x="6410.605 6451.7324" 848 x="6410.605 6451.7324"
845 y="-4943.1504" 849 y="-4943.1504"
846 sodipodi:role="line" 850 sodipodi:role="line"
847 id="tspan4125">24</tspan></text> 851 id="tspan4125">24</tspan></text>
848<text 852<text
849 transform="scale(1,-1)" 853 transform="scale(1,-1)"
850 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 854 style="font-variant:normal;font-weight:normal;font-size:73.96984863px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
851 id="text4127" 855 id="text4127"
852 x="6410.605 6451.7324" 856 x="6410.605 6451.7324"
853 y="-5054.106"><tspan 857 y="-5054.106"><tspan
854 x="6410.605 6451.7324" 858 x="6410.605 6451.7324"
855 y="-5054.106" 859 y="-5054.106"
856 sodipodi:role="line" 860 sodipodi:role="line"
857 id="tspan4129">24</tspan></text> 861 id="tspan4129">24</tspan></text>
858</g></svg> \ No newline at end of file 862</g></svg> \ No newline at end of file
diff --git a/Documentation/media/uapi/v4l/vbi_hsync.svg b/Documentation/media/uapi/v4l/vbi_hsync.svg
index 4d5c0b4f146e..e17ff8314e7b 100644
--- a/Documentation/media/uapi/v4l/vbi_hsync.svg
+++ b/Documentation/media/uapi/v4l/vbi_hsync.svg
@@ -42,27 +42,27 @@
42 fit-margin-right="0" 42 fit-margin-right="0"
43 fit-margin-bottom="0" /><metadata 43 fit-margin-bottom="0" /><metadata
44 id="metadata8"><rdf:RDF><cc:Work 44 id="metadata8"><rdf:RDF><cc:Work
45 rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type 45 rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type
46 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs 46 rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs
47 id="defs6"><clipPath 47 id="defs6"><clipPath
48 clipPathUnits="userSpaceOnUse" 48 clipPathUnits="userSpaceOnUse"
49 id="clipPath30"><path 49 id="clipPath30"><path
50 d="m 0,0 0,1163 1544,0 L 1544,0 0,0 Z m 187.184,836.05 0,-19.278 48.517,0 -38.556,9.639 38.556,9.639 -48.517,0 z m 689.189,-19.278 0,19.278 -48.516,0 38.556,-9.639 -38.556,-9.639 48.516,0 z" 50 d="m 0,0 0,1163 1544,0 L 1544,0 0,0 Z m 187.184,836.05 0,-19.278 48.517,0 -38.556,9.639 38.556,9.639 -48.517,0 z m 689.189,-19.278 0,19.278 -48.516,0 38.556,-9.639 -38.556,-9.639 48.516,0 z"
51 id="path32" 51 id="path32"
52 inkscape:connector-curvature="0" 52 inkscape:connector-curvature="0"
53 style="clip-rule:evenodd" /></clipPath><clipPath 53 style="clip-rule:evenodd" /></clipPath><clipPath
54 clipPathUnits="userSpaceOnUse" 54 clipPathUnits="userSpaceOnUse"
55 id="clipPath52"><path 55 id="clipPath52"><path
56 d="m 0,0 0,1163 1544,0 L 1544,0 0,0 Z m 804.08,79.3887 0,19.2778 -48.516,0 38.556,-9.6389 -38.556,-9.6389 48.516,0 z m -703.647,19.2778 0,-19.2778 48.517,0 -38.556,9.6389 38.556,9.6389 -48.517,0 z" 56 d="m 0,0 0,1163 1544,0 L 1544,0 0,0 Z m 804.08,79.3887 0,19.2778 -48.516,0 38.556,-9.6389 -38.556,-9.6389 48.516,0 z m -703.647,19.2778 0,-19.2778 48.517,0 -38.556,9.6389 38.556,9.6389 -48.517,0 z"
57 id="path54" 57 id="path54"
58 inkscape:connector-curvature="0" 58 inkscape:connector-curvature="0"
59 style="clip-rule:evenodd" /></clipPath><clipPath 59 style="clip-rule:evenodd" /></clipPath><clipPath
60 clipPathUnits="userSpaceOnUse" 60 clipPathUnits="userSpaceOnUse"
61 id="clipPath94"><path 61 id="clipPath94"><path
62 d="m 0,0 0,1163 1544,0 L 1544,0 0,0 Z m 471.535,195.057 0,19.278 -48.516,0 38.555,-9.639 -38.555,-9.639 48.516,0 z m -284.351,19.278 0,-19.278 48.517,0 -38.556,9.639 38.556,9.639 -48.517,0 z" 62 d="m 0,0 0,1163 1544,0 L 1544,0 0,0 Z m 471.535,195.057 0,19.278 -48.516,0 38.555,-9.639 -38.555,-9.639 48.516,0 z m -284.351,19.278 0,-19.278 48.517,0 -38.556,9.639 38.556,9.639 -48.517,0 z"
63 id="path96" 63 id="path96"
64 inkscape:connector-curvature="0" 64 inkscape:connector-curvature="0"
65 style="clip-rule:evenodd" /></clipPath></defs><g 65 style="clip-rule:evenodd" /></clipPath></defs><g
66 id="g10" 66 id="g10"
67 inkscape:groupmode="layer" 67 inkscape:groupmode="layer"
68 inkscape:label="vbi_hsync" 68 inkscape:label="vbi_hsync"
@@ -70,69 +70,69 @@
70 id="g14" 70 id="g14"
71 transform="matrix(0.36030235,0,0,0.36030235,-0.75498483,-1.0743684)" 71 transform="matrix(0.36030235,0,0,0.36030235,-0.75498483,-1.0743684)"
72 style=""><path 72 style=""><path
73 inkscape:connector-curvature="0" 73 inkscape:connector-curvature="0"
74 id="path16" 74 id="path16"
75 style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 75 style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
76 d="M 32.9604,580.617 4.04346,493.866" /><path 76 d="M 32.9604,580.617 4.04346,493.866" /><path
77 inkscape:connector-curvature="0" 77 inkscape:connector-curvature="0"
78 id="path18" 78 id="path18"
79 style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 79 style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
80 d="m 192.004,855.328 0,-665.091" /><path 80 d="m 192.004,855.328 0,-665.091" /><path
81 inkscape:connector-curvature="0" 81 inkscape:connector-curvature="0"
82 id="path20" 82 id="path20"
83 style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 83 style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
84 d="m 466.715,392.656 0,-202.419" /><path 84 d="m 466.715,392.656 0,-202.419" /><path
85 inkscape:connector-curvature="0" 85 inkscape:connector-curvature="0"
86 id="path22" 86 id="path22"
87 style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 87 style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
88 d="m 799.261,508.324 0,-433.7549" /><path 88 d="m 799.261,508.324 0,-433.7549" /><path
89 inkscape:connector-curvature="0" 89 inkscape:connector-curvature="0"
90 id="path24" 90 id="path24"
91 style="fill:none;stroke:#000000;stroke-width:4.81949997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 91 style="fill:none;stroke:#000000;stroke-width:4.81949997;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
92 d="m 857.095,537.241 231.335,0" /></g><g 92 d="m 857.095,537.241 231.335,0" /></g><g
93 id="g26" 93 id="g26"
94 transform="matrix(0.36030235,0,0,0.36030235,-0.75498483,-1.0743684)" 94 transform="matrix(0.36030235,0,0,0.36030235,-0.75498483,-1.0743684)"
95 style=""><g 95 style=""><g
96 clip-path="url(#clipPath30)" 96 clip-path="url(#clipPath30)"
97 id="g28" 97 id="g28"
98 style=""><path 98 style=""><path
99 inkscape:connector-curvature="0" 99 inkscape:connector-curvature="0"
100 id="path34" 100 id="path34"
101 style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 101 style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
102 d="m 871.553,826.411 -679.549,0" /></g></g><g 102 d="m 871.553,826.411 -679.549,0" /></g></g><g
103 id="g36" 103 id="g36"
104 transform="matrix(0.36030235,0,0,0.36030235,-0.75498483,-1.0743684)" 104 transform="matrix(0.36030235,0,0,0.36030235,-0.75498483,-1.0743684)"
105 style=""><path 105 style=""><path
106 inkscape:connector-curvature="0" 106 inkscape:connector-curvature="0"
107 id="path38" 107 id="path38"
108 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 108 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
109 d="m 827.857,816.772 38.556,9.639 -38.556,9.639 0,-19.278" /><path 109 d="m 827.857,816.772 38.556,9.639 -38.556,9.639 0,-19.278" /><path
110 inkscape:connector-curvature="0" 110 inkscape:connector-curvature="0"
111 id="path40" 111 id="path40"
112 style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 112 style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
113 d="m 827.857,816.772 38.556,9.639 -38.556,9.639 0,-19.278 z" /><path 113 d="m 827.857,816.772 38.556,9.639 -38.556,9.639 0,-19.278 z" /><path
114 inkscape:connector-curvature="0" 114 inkscape:connector-curvature="0"
115 id="path42" 115 id="path42"
116 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 116 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
117 d="m 235.701,836.05 -38.556,-9.639 38.556,-9.639 0,19.278" /><path 117 d="m 235.701,836.05 -38.556,-9.639 38.556,-9.639 0,19.278" /><path
118 inkscape:connector-curvature="0" 118 inkscape:connector-curvature="0"
119 id="path44" 119 id="path44"
120 style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 120 style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
121 d="m 235.701,836.05 -38.556,-9.639 38.556,-9.639 0,19.278 z" /><path 121 d="m 235.701,836.05 -38.556,-9.639 38.556,-9.639 0,19.278 z" /><path
122 inkscape:connector-curvature="0" 122 inkscape:connector-curvature="0"
123 id="path46" 123 id="path46"
124 style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 124 style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
125 d="m 1073.97,493.866 28.92,86.751" /></g><g 125 d="m 1073.97,493.866 28.92,86.751" /></g><g
126 id="g48" 126 id="g48"
127 transform="matrix(0.36030235,0,0,0.36030235,-0.75498483,-1.0743684)" 127 transform="matrix(0.36030235,0,0,0.36030235,-0.75498483,-1.0743684)"
128 style=""><g 128 style=""><g
129 clip-path="url(#clipPath52)" 129 clip-path="url(#clipPath52)"
130 id="g50" 130 id="g50"
131 style=""><path 131 style=""><path
132 inkscape:connector-curvature="0" 132 inkscape:connector-curvature="0"
133 id="path56" 133 id="path56"
134 style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 134 style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
135 d="m 105.253,89.0276 694.008,0" /></g></g><path 135 d="m 105.253,89.0276 694.008,0" /></g></g><path
136 d="m 52.91205,34.475403 -13.891817,-3.472918 13.891817,-3.472918 0,6.945836" 136 d="m 52.91205,34.475403 -13.891817,-3.472918 13.891817,-3.472918 0,6.945836"
137 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 137 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
138 id="path60" 138 id="path60"
@@ -196,13 +196,13 @@
196 id="g90" 196 id="g90"
197 transform="matrix(0.36030235,0,0,0.36030235,-0.75498483,-1.0743684)" 197 transform="matrix(0.36030235,0,0,0.36030235,-0.75498483,-1.0743684)"
198 style=""><g 198 style=""><g
199 clip-path="url(#clipPath94)" 199 clip-path="url(#clipPath94)"
200 id="g92" 200 id="g92"
201 style=""><path 201 style=""><path
202 inkscape:connector-curvature="0" 202 inkscape:connector-curvature="0"
203 id="path98" 203 id="path98"
204 style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1" 204 style="fill:none;stroke:#000000;stroke-width:2.40974998;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:10;stroke-dasharray:none;stroke-opacity:1"
205 d="m 192.004,204.696 274.711,0" /></g></g><path 205 d="m 192.004,204.696 274.711,0" /></g></g><path
206 d="m 84.168639,76.151036 -13.891817,-3.472955 13.891817,-3.472954 0,6.945909" 206 d="m 84.168639,76.151036 -13.891817,-3.472955 13.891817,-3.472954 0,6.945909"
207 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none" 207 style="fill:#000000;fill-opacity:1;fill-rule:evenodd;stroke:none"
208 id="path102" 208 id="path102"
@@ -224,90 +224,90 @@
224 transform="scale(1,-1)" 224 transform="scale(1,-1)"
225 x="438.29504" 225 x="438.29504"
226 y="-187.28558"><tspan 226 y="-187.28558"><tspan
227 id="tspan114" 227 id="tspan114"
228 sodipodi:role="line" 228 sodipodi:role="line"
229 y="-187.28558" 229 y="-187.28558"
230 x="438.29504 452.19382 456.81979 468.40555 478.82443 489.24329 495.03619 506.62195 518.2077 528.62659 540.21234">Black Level</tspan><tspan 230 x="438.29504 452.19382 456.81979 468.40555 478.82443 489.24329 495.03619 506.62195 518.2077 528.62659 540.21234">Black Level</tspan><tspan
231 id="tspan116" 231 id="tspan116"
232 sodipodi:role="line" 232 sodipodi:role="line"
233 y="-83.096947" 233 y="-83.096947"
234 x="438.29504 452.19382 462.61267 474.19846 484.61731 490.41019 501.99597 513.58173 524.00061 535.58636">Sync Level</tspan><tspan 234 x="438.29504 452.19382 462.61267 474.19846 484.61731 490.41019 501.99597 513.58173 524.00061 535.58636">Sync Level</tspan><tspan
235 id="tspan118" 235 id="tspan118"
236 sodipodi:role="line" 236 sodipodi:role="line"
237 y="-395.66284" 237 y="-395.66284"
238 x="438.29504 457.96585 469.55164 474.17761 479.97049 491.55627 497.34915 508.93494 520.52069 530.93958 542.52533">White Level</tspan></text> 238 x="438.29504 457.96585 469.55164 474.17761 479.97049 491.55627 497.34915 508.93494 520.52069 530.93958 542.52533">White Level</tspan></text>
239<text 239<text
240 id="text120" 240 id="text120"
241 style="font-variant:normal;font-weight:normal;font-size:20.83772659px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 241 style="font-variant:normal;font-weight:normal;font-size:20.83772659px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
242 transform="scale(1,-1)" 242 transform="scale(1,-1)"
243 x="159.88258" 243 x="159.88258"
244 y="-270.63647"><tspan 244 y="-270.63647"><tspan
245 id="tspan122" 245 id="tspan122"
246 sodipodi:role="line" 246 sodipodi:role="line"
247 y="-270.63647" 247 y="-270.63647"
248 x="159.88258 172.61443 179.55339 186.49236 198.07812 209.66391">offset</tspan></text> 248 x="159.88258 172.61443 179.55339 186.49236 198.07812 209.66391">offset</tspan></text>
249<text 249<text
250 id="text124" 250 id="text124"
251 style="font-variant:normal;font-weight:normal;font-size:20.83772659px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 251 style="font-variant:normal;font-weight:normal;font-size:20.83772659px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
252 transform="scale(1,-1)" 252 transform="scale(1,-1)"
253 x="46.973549" 253 x="46.973549"
254 y="-46.630745"><tspan 254 y="-46.630745"><tspan
255 id="tspan126" 255 id="tspan126"
256 sodipodi:role="line" 256 sodipodi:role="line"
257 y="-46.630745" 257 y="-46.630745"
258 x="46.973549 58.559322 63.185299 74.771072 86.35685 92.149734 102.5686 112.98746 124.57324 134.9921 146.57788 153.51685 159.30972 165.10262 176.68839 188.27417 192.90015 203.319">Line synchr. pulse</tspan><tspan 258 x="46.973549 58.559322 63.185299 74.771072 86.35685 92.149734 102.5686 112.98746 124.57324 134.9921 146.57788 153.51685 159.30972 165.10262 176.68839 188.27417 192.90015 203.319">Line synchr. pulse</tspan><tspan
259 id="tspan128" 259 id="tspan128"
260 sodipodi:role="line" 260 sodipodi:role="line"
261 y="-4.9552913" 261 y="-4.9552913"
262 x="100.80776 112.39354 117.01952 128.60529 140.19107 145.98395 157.56973 162.19569 173.78148 185.36726 195.78612 200.41209 211.99788">Line blanking</tspan></text> 262 x="100.80776 112.39354 117.01952 128.60529 140.19107 145.98395 157.56973 162.19569 173.78148 185.36726 195.78612 200.41209 211.99788">Line blanking</tspan></text>
263<text 263<text
264 id="text3473" 264 id="text3473"
265 style="font-variant:normal;font-weight:normal;font-size:20.83772659px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 265 style="font-variant:normal;font-weight:normal;font-size:20.83772659px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
266 transform="scale(1,-1)" 266 transform="scale(1,-1)"
267 x="46.973549 58.559322 63.185299 74.771072 86.35685 92.149734 102.5686 112.98746 124.57324 134.9921 146.57788 153.51685 159.30972 165.10262 176.68839 188.27417 192.90015 203.319" 267 x="46.973549 58.559322 63.185299 74.771072 86.35685 92.149734 102.5686 112.98746 124.57324 134.9921 146.57788 153.51685 159.30972 165.10262 176.68839 188.27417 192.90015 203.319"
268 y="-46.630745"><tspan 268 y="-46.630745"><tspan
269 id="tspan3475" 269 id="tspan3475"
270 sodipodi:role="line" 270 sodipodi:role="line"
271 y="-46.630745" 271 y="-46.630745"
272 x="46.973549 58.559322 63.185299 74.771072 86.35685 92.149734 102.5686 112.98746 124.57324 134.9921 146.57788 153.51685 159.30972 165.10262 176.68839 188.27417 192.90015 203.319">Line synchr. pulse</tspan></text> 272 x="46.973549 58.559322 63.185299 74.771072 86.35685 92.149734 102.5686 112.98746 124.57324 134.9921 146.57788 153.51685 159.30972 165.10262 176.68839 188.27417 192.90015 203.319">Line synchr. pulse</tspan></text>
273<text 273<text
274 id="text3477" 274 id="text3477"
275 style="font-variant:normal;font-weight:normal;font-size:20.83772659px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 275 style="font-variant:normal;font-weight:normal;font-size:20.83772659px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
276 transform="scale(1,-1)" 276 transform="scale(1,-1)"
277 x="100.80776 112.39354 117.01952 128.60529 140.19107 145.98395 157.56973 162.19569 173.78148 185.36726 195.78612 200.41209 211.99788" 277 x="100.80776 112.39354 117.01952 128.60529 140.19107 145.98395 157.56973 162.19569 173.78148 185.36726 195.78612 200.41209 211.99788"
278 y="-4.9552913"><tspan 278 y="-4.9552913"><tspan
279 id="tspan3479" 279 id="tspan3479"
280 sodipodi:role="line" 280 sodipodi:role="line"
281 y="-4.9552913" 281 y="-4.9552913"
282 x="100.80776 112.39354 117.01952 128.60529 140.19107 145.98395 157.56973 162.19569 173.78148 185.36726 195.78612 200.41209 211.99788">Line blanking</tspan></text> 282 x="100.80776 112.39354 117.01952 128.60529 140.19107 145.98395 157.56973 162.19569 173.78148 185.36726 195.78612 200.41209 211.99788">Line blanking</tspan></text>
283<text 283<text
284 id="text3607" 284 id="text3607"
285 style="font-variant:normal;font-weight:normal;font-size:20.83772659px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 285 style="font-variant:normal;font-weight:normal;font-size:20.83772659px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
286 transform="scale(1,-1)" 286 transform="scale(1,-1)"
287 x="438.29504 452.19382 456.81979 468.40555 478.82443 489.24329 495.03619 506.62195 518.2077 528.62659 540.21234" 287 x="438.29504 452.19382 456.81979 468.40555 478.82443 489.24329 495.03619 506.62195 518.2077 528.62659 540.21234"
288 y="-187.28558"><tspan 288 y="-187.28558"><tspan
289 id="tspan3609" 289 id="tspan3609"
290 sodipodi:role="line" 290 sodipodi:role="line"
291 y="-187.28558" 291 y="-187.28558"
292 x="438.29504 452.19382 456.81979 468.40555 478.82443 489.24329 495.03619 506.62195 518.2077 528.62659 540.21234">Black Level</tspan></text> 292 x="438.29504 452.19382 456.81979 468.40555 478.82443 489.24329 495.03619 506.62195 518.2077 528.62659 540.21234">Black Level</tspan></text>
293<text 293<text
294 id="text3611" 294 id="text3611"
295 style="font-variant:normal;font-weight:normal;font-size:20.83772659px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 295 style="font-variant:normal;font-weight:normal;font-size:20.83772659px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
296 transform="scale(1,-1)" 296 transform="scale(1,-1)"
297 x="438.29504 452.19382 462.61267 474.19846 484.61731 490.41019 501.99597 513.58173 524.00061 535.58636" 297 x="438.29504 452.19382 462.61267 474.19846 484.61731 490.41019 501.99597 513.58173 524.00061 535.58636"
298 y="-83.096947"><tspan 298 y="-83.096947"><tspan
299 id="tspan3613" 299 id="tspan3613"
300 sodipodi:role="line" 300 sodipodi:role="line"
301 y="-83.096947" 301 y="-83.096947"
302 x="438.29504 452.19382 462.61267 474.19846 484.61731 490.41019 501.99597 513.58173 524.00061 535.58636">Sync Level</tspan></text> 302 x="438.29504 452.19382 462.61267 474.19846 484.61731 490.41019 501.99597 513.58173 524.00061 535.58636">Sync Level</tspan></text>
303<text 303<text
304 id="text3615" 304 id="text3615"
305 style="font-variant:normal;font-weight:normal;font-size:20.83772659px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;" 305 style="font-variant:normal;font-weight:normal;font-size:20.83772659px;font-family:sans-serif;-inkscape-font-specification:sans-serif;writing-mode:lr-tb;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;font-style:normal;font-stretch:normal;"
306 transform="scale(1,-1)" 306 transform="scale(1,-1)"
307 x="438.29504 457.96585 469.55164 474.17761 479.97049 491.55627 497.34915 508.93494 520.52069 530.93958 542.52533" 307 x="438.29504 457.96585 469.55164 474.17761 479.97049 491.55627 497.34915 508.93494 520.52069 530.93958 542.52533"
308 y="-395.66284"><tspan 308 y="-395.66284"><tspan
309 id="tspan3617" 309 id="tspan3617"
310 sodipodi:role="line" 310 sodipodi:role="line"
311 y="-395.66284" 311 y="-395.66284"
312 x="438.29504 457.96585 469.55164 474.17761 479.97049 491.55627 497.34915 508.93494 520.52069 530.93958 542.52533">White Level</tspan></text> 312 x="438.29504 457.96585 469.55164 474.17761 479.97049 491.55627 497.34915 508.93494 520.52069 530.93958 542.52533">White Level</tspan></text>
313</g></svg> \ No newline at end of file 313</g></svg> \ No newline at end of file
diff --git a/Documentation/media/uapi/v4l/vidioc-g-fmt.rst b/Documentation/media/uapi/v4l/vidioc-g-fmt.rst
index b853e48312e2..d082f9a21548 100644
--- a/Documentation/media/uapi/v4l/vidioc-g-fmt.rst
+++ b/Documentation/media/uapi/v4l/vidioc-g-fmt.rst
@@ -147,3 +147,9 @@ appropriately. The generic error codes are described at the
147EINVAL 147EINVAL
148 The struct :c:type:`v4l2_format` ``type`` field is 148 The struct :c:type:`v4l2_format` ``type`` field is
149 invalid or the requested buffer type not supported. 149 invalid or the requested buffer type not supported.
150
151EBUSY
152 The device is busy and cannot change the format. This could be
153 because or the device is streaming or buffers are allocated or
154 queued to the driver. Relevant for :ref:`VIDIOC_S_FMT
155 <VIDIOC_G_FMT>` only.
diff --git a/Documentation/media/v4l-drivers/imx.rst b/Documentation/media/v4l-drivers/imx.rst
index e0ee0f1aeb05..3c4f58bda178 100644
--- a/Documentation/media/v4l-drivers/imx.rst
+++ b/Documentation/media/v4l-drivers/imx.rst
@@ -607,8 +607,9 @@ References
607 607
608Authors 608Authors
609------- 609-------
610Steve Longerbeam <steve_longerbeam@mentor.com> 610
611Philipp Zabel <kernel@pengutronix.de> 611- Steve Longerbeam <steve_longerbeam@mentor.com>
612Russell King <linux@armlinux.org.uk> 612- Philipp Zabel <kernel@pengutronix.de>
613- Russell King <linux@armlinux.org.uk>
613 614
614Copyright (C) 2012-2017 Mentor Graphics Inc. 615Copyright (C) 2012-2017 Mentor Graphics Inc.
diff --git a/Documentation/media/v4l-drivers/index.rst b/Documentation/media/v4l-drivers/index.rst
index 2e24d6806052..10f2ce42ece2 100644
--- a/Documentation/media/v4l-drivers/index.rst
+++ b/Documentation/media/v4l-drivers/index.rst
@@ -41,6 +41,7 @@ For more details see the file COPYING in the source distribution of Linux.
41 cx88 41 cx88
42 davinci-vpbe 42 davinci-vpbe
43 fimc 43 fimc
44 imx
44 ivtv 45 ivtv
45 max2175 46 max2175
46 meye 47 meye
diff --git a/Documentation/power/runtime_pm.txt b/Documentation/power/runtime_pm.txt
index 0fde3dcf077a..625549d4c74a 100644
--- a/Documentation/power/runtime_pm.txt
+++ b/Documentation/power/runtime_pm.txt
@@ -435,7 +435,8 @@ drivers/base/power/runtime.c and include/linux/pm_runtime.h:
435 PM status to 'suspended' and update its parent's counter of 'active' 435 PM status to 'suspended' and update its parent's counter of 'active'
436 children as appropriate (it is only valid to use this function if 436 children as appropriate (it is only valid to use this function if
437 'power.runtime_error' is set or 'power.disable_depth' is greater than 437 'power.runtime_error' is set or 'power.disable_depth' is greater than
438 zero) 438 zero); it will fail and return an error code if the device has a child
439 which is active and the 'power.ignore_children' flag is unset
439 440
440 bool pm_runtime_active(struct device *dev); 441 bool pm_runtime_active(struct device *dev);
441 - return true if the device's runtime PM status is 'active' or its 442 - return true if the device's runtime PM status is 'active' or its
diff --git a/MAINTAINERS b/MAINTAINERS
index f66488dfdbc9..84d6a8277cbd 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1161,7 +1161,7 @@ M: Brendan Higgins <brendanhiggins@google.com>
1161R: Benjamin Herrenschmidt <benh@kernel.crashing.org> 1161R: Benjamin Herrenschmidt <benh@kernel.crashing.org>
1162R: Joel Stanley <joel@jms.id.au> 1162R: Joel Stanley <joel@jms.id.au>
1163L: linux-i2c@vger.kernel.org 1163L: linux-i2c@vger.kernel.org
1164L: openbmc@lists.ozlabs.org 1164L: openbmc@lists.ozlabs.org (moderated for non-subscribers)
1165S: Maintained 1165S: Maintained
1166F: drivers/irqchip/irq-aspeed-i2c-ic.c 1166F: drivers/irqchip/irq-aspeed-i2c-ic.c
1167F: drivers/i2c/busses/i2c-aspeed.c 1167F: drivers/i2c/busses/i2c-aspeed.c
@@ -5090,12 +5090,20 @@ M: Andrew Lunn <andrew@lunn.ch>
5090M: Florian Fainelli <f.fainelli@gmail.com> 5090M: Florian Fainelli <f.fainelli@gmail.com>
5091L: netdev@vger.kernel.org 5091L: netdev@vger.kernel.org
5092S: Maintained 5092S: Maintained
5093F: include/linux/phy.h 5093F: Documentation/ABI/testing/sysfs-bus-mdio
5094F: include/linux/phy_fixed.h 5094F: Documentation/devicetree/bindings/net/mdio*
5095F: drivers/net/phy/
5096F: Documentation/networking/phy.txt 5095F: Documentation/networking/phy.txt
5096F: drivers/net/phy/
5097F: drivers/of/of_mdio.c 5097F: drivers/of/of_mdio.c
5098F: drivers/of/of_net.c 5098F: drivers/of/of_net.c
5099F: include/linux/*mdio*.h
5100F: include/linux/of_net.h
5101F: include/linux/phy.h
5102F: include/linux/phy_fixed.h
5103F: include/linux/platform_data/mdio-gpio.h
5104F: include/trace/events/mdio.h
5105F: include/uapi/linux/mdio.h
5106F: include/uapi/linux/mii.h
5099 5107
5100EXT2 FILE SYSTEM 5108EXT2 FILE SYSTEM
5101M: Jan Kara <jack@suse.com> 5109M: Jan Kara <jack@suse.com>
@@ -5826,7 +5834,7 @@ F: drivers/staging/greybus/spi.c
5826F: drivers/staging/greybus/spilib.c 5834F: drivers/staging/greybus/spilib.c
5827F: drivers/staging/greybus/spilib.h 5835F: drivers/staging/greybus/spilib.h
5828 5836
5829GREYBUS LOOBACK/TIME PROTOCOLS DRIVERS 5837GREYBUS LOOPBACK/TIME PROTOCOLS DRIVERS
5830M: Bryan O'Donoghue <pure.logic@nexus-software.ie> 5838M: Bryan O'Donoghue <pure.logic@nexus-software.ie>
5831S: Maintained 5839S: Maintained
5832F: drivers/staging/greybus/loopback.c 5840F: drivers/staging/greybus/loopback.c
@@ -10375,7 +10383,7 @@ L: linux-gpio@vger.kernel.org
10375T: git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git 10383T: git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git
10376S: Maintained 10384S: Maintained
10377F: Documentation/devicetree/bindings/pinctrl/ 10385F: Documentation/devicetree/bindings/pinctrl/
10378F: Documentation/pinctrl.txt 10386F: Documentation/driver-api/pinctl.rst
10379F: drivers/pinctrl/ 10387F: drivers/pinctrl/
10380F: include/linux/pinctrl/ 10388F: include/linux/pinctrl/
10381 10389
@@ -14210,6 +14218,12 @@ F: drivers/watchdog/
14210F: include/linux/watchdog.h 14218F: include/linux/watchdog.h
14211F: include/uapi/linux/watchdog.h 14219F: include/uapi/linux/watchdog.h
14212 14220
14221WHISKEYCOVE PMIC GPIO DRIVER
14222M: Kuppuswamy Sathyanarayanan <sathyanarayanan.kuppuswamy@linux.intel.com>
14223L: linux-gpio@vger.kernel.org
14224S: Maintained
14225F: drivers/gpio/gpio-wcove.c
14226
14213WIIMOTE HID DRIVER 14227WIIMOTE HID DRIVER
14214M: David Herrmann <dh.herrmann@googlemail.com> 14228M: David Herrmann <dh.herrmann@googlemail.com>
14215L: linux-input@vger.kernel.org 14229L: linux-input@vger.kernel.org
diff --git a/Makefile b/Makefile
index 0662b5201d3e..6eba23bcb5ad 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
1VERSION = 4 1VERSION = 4
2PATCHLEVEL = 13 2PATCHLEVEL = 13
3SUBLEVEL = 0 3SUBLEVEL = 0
4EXTRAVERSION = -rc2 4EXTRAVERSION = -rc4
5NAME = Fearless Coyote 5NAME = Fearless Coyote
6 6
7# *DOCUMENTATION* 7# *DOCUMENTATION*
diff --git a/arch/arc/mm/dma.c b/arch/arc/mm/dma.c
index 2a07e6ecafbd..71d3efff99d3 100644
--- a/arch/arc/mm/dma.c
+++ b/arch/arc/mm/dma.c
@@ -117,7 +117,7 @@ static int arc_dma_mmap(struct device *dev, struct vm_area_struct *vma,
117 117
118 vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); 118 vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
119 119
120 if (dma_mmap_from_coherent(dev, vma, cpu_addr, size, &ret)) 120 if (dma_mmap_from_dev_coherent(dev, vma, cpu_addr, size, &ret))
121 return ret; 121 return ret;
122 122
123 if (off < count && user_count <= (count - off)) { 123 if (off < count && user_count <= (count - off)) {
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index a208bfe367b5..61a0cb15067e 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -380,7 +380,7 @@ config ARCH_EP93XX
380 bool "EP93xx-based" 380 bool "EP93xx-based"
381 select ARCH_HAS_HOLES_MEMORYMODEL 381 select ARCH_HAS_HOLES_MEMORYMODEL
382 select ARM_AMBA 382 select ARM_AMBA
383 select ARM_PATCH_PHYS_VIRT 383 imply ARM_PATCH_PHYS_VIRT
384 select ARM_VIC 384 select ARM_VIC
385 select AUTO_ZRELADDR 385 select AUTO_ZRELADDR
386 select CLKDEV_LOOKUP 386 select CLKDEV_LOOKUP
diff --git a/arch/arm/boot/dts/armada-388-gp.dts b/arch/arm/boot/dts/armada-388-gp.dts
index 895fa6cfa15a..563901e0ec07 100644
--- a/arch/arm/boot/dts/armada-388-gp.dts
+++ b/arch/arm/boot/dts/armada-388-gp.dts
@@ -75,7 +75,7 @@
75 pinctrl-names = "default"; 75 pinctrl-names = "default";
76 pinctrl-0 = <&pca0_pins>; 76 pinctrl-0 = <&pca0_pins>;
77 interrupt-parent = <&gpio0>; 77 interrupt-parent = <&gpio0>;
78 interrupts = <18 IRQ_TYPE_EDGE_FALLING>; 78 interrupts = <18 IRQ_TYPE_LEVEL_LOW>;
79 gpio-controller; 79 gpio-controller;
80 #gpio-cells = <2>; 80 #gpio-cells = <2>;
81 interrupt-controller; 81 interrupt-controller;
@@ -87,7 +87,7 @@
87 compatible = "nxp,pca9555"; 87 compatible = "nxp,pca9555";
88 pinctrl-names = "default"; 88 pinctrl-names = "default";
89 interrupt-parent = <&gpio0>; 89 interrupt-parent = <&gpio0>;
90 interrupts = <18 IRQ_TYPE_EDGE_FALLING>; 90 interrupts = <18 IRQ_TYPE_LEVEL_LOW>;
91 gpio-controller; 91 gpio-controller;
92 #gpio-cells = <2>; 92 #gpio-cells = <2>;
93 interrupt-controller; 93 interrupt-controller;
diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts
index a423e8ebfb37..67e72bc72e80 100644
--- a/arch/arm/boot/dts/da850-evm.dts
+++ b/arch/arm/boot/dts/da850-evm.dts
@@ -301,25 +301,4 @@
301 pinctrl-names = "default"; 301 pinctrl-names = "default";
302 pinctrl-0 = <&vpif_capture_pins>, <&vpif_display_pins>; 302 pinctrl-0 = <&vpif_capture_pins>, <&vpif_display_pins>;
303 status = "okay"; 303 status = "okay";
304
305 /* VPIF capture port */
306 port@0 {
307 vpif_input_ch0: endpoint@0 {
308 reg = <0>;
309 bus-width = <8>;
310 };
311
312 vpif_input_ch1: endpoint@1 {
313 reg = <1>;
314 bus-width = <8>;
315 data-shift = <8>;
316 };
317 };
318
319 /* VPIF display port */
320 port@1 {
321 vpif_output_ch0: endpoint {
322 bus-width = <8>;
323 };
324 };
325}; 304};
diff --git a/arch/arm/boot/dts/da850-lcdk.dts b/arch/arm/boot/dts/da850-lcdk.dts
index b837fec70eec..a0f0916156e6 100644
--- a/arch/arm/boot/dts/da850-lcdk.dts
+++ b/arch/arm/boot/dts/da850-lcdk.dts
@@ -318,11 +318,4 @@
318 pinctrl-names = "default"; 318 pinctrl-names = "default";
319 pinctrl-0 = <&vpif_capture_pins>; 319 pinctrl-0 = <&vpif_capture_pins>;
320 status = "okay"; 320 status = "okay";
321
322 /* VPIF capture port */
323 port {
324 vpif_ch0: endpoint {
325 bus-width = <8>;
326 };
327 };
328}; 321};
diff --git a/arch/arm/boot/dts/dm8168-evm.dts b/arch/arm/boot/dts/dm8168-evm.dts
index 1865976db5f9..c72a2132aa82 100644
--- a/arch/arm/boot/dts/dm8168-evm.dts
+++ b/arch/arm/boot/dts/dm8168-evm.dts
@@ -68,6 +68,34 @@
68 DM816X_IOPAD(0x0d08, MUX_MODE0) /* USB1_DRVVBUS */ 68 DM816X_IOPAD(0x0d08, MUX_MODE0) /* USB1_DRVVBUS */
69 >; 69 >;
70 }; 70 };
71
72 nandflash_pins: nandflash_pins {
73 pinctrl-single,pins = <
74 DM816X_IOPAD(0x0b38, PULL_UP | MUX_MODE0) /* PINCTRL207 GPMC_CS0*/
75 DM816X_IOPAD(0x0b60, PULL_ENA | MUX_MODE0) /* PINCTRL217 GPMC_ADV_ALE */
76 DM816X_IOPAD(0x0b54, PULL_UP | PULL_ENA | MUX_MODE0) /* PINCTRL214 GPMC_OE_RE */
77 DM816X_IOPAD(0x0b58, PULL_ENA | MUX_MODE0) /* PINCTRL215 GPMC_BE0_CLE */
78 DM816X_IOPAD(0x0b50, PULL_UP | MUX_MODE0) /* PINCTRL213 GPMC_WE */
79 DM816X_IOPAD(0x0b6c, MUX_MODE0) /* PINCTRL220 GPMC_WAIT */
80 DM816X_IOPAD(0x0be4, PULL_ENA | MUX_MODE0) /* PINCTRL250 GPMC_CLK */
81 DM816X_IOPAD(0x0ba4, MUX_MODE0) /* PINCTRL234 GPMC_D0 */
82 DM816X_IOPAD(0x0ba8, MUX_MODE0) /* PINCTRL234 GPMC_D1 */
83 DM816X_IOPAD(0x0bac, MUX_MODE0) /* PINCTRL234 GPMC_D2 */
84 DM816X_IOPAD(0x0bb0, MUX_MODE0) /* PINCTRL234 GPMC_D3 */
85 DM816X_IOPAD(0x0bb4, MUX_MODE0) /* PINCTRL234 GPMC_D4 */
86 DM816X_IOPAD(0x0bb8, MUX_MODE0) /* PINCTRL234 GPMC_D5 */
87 DM816X_IOPAD(0x0bbc, MUX_MODE0) /* PINCTRL234 GPMC_D6 */
88 DM816X_IOPAD(0x0bc0, MUX_MODE0) /* PINCTRL234 GPMC_D7 */
89 DM816X_IOPAD(0x0bc4, MUX_MODE0) /* PINCTRL234 GPMC_D8 */
90 DM816X_IOPAD(0x0bc8, MUX_MODE0) /* PINCTRL234 GPMC_D9 */
91 DM816X_IOPAD(0x0bcc, MUX_MODE0) /* PINCTRL234 GPMC_D10 */
92 DM816X_IOPAD(0x0bd0, MUX_MODE0) /* PINCTRL234 GPMC_D11 */
93 DM816X_IOPAD(0x0bd4, MUX_MODE0) /* PINCTRL234 GPMC_D12 */
94 DM816X_IOPAD(0x0bd8, MUX_MODE0) /* PINCTRL234 GPMC_D13 */
95 DM816X_IOPAD(0x0bdc, MUX_MODE0) /* PINCTRL234 GPMC_D14 */
96 DM816X_IOPAD(0x0be0, MUX_MODE0) /* PINCTRL234 GPMC_D15 */
97 >;
98 };
71}; 99};
72 100
73&i2c1 { 101&i2c1 {
@@ -90,6 +118,8 @@
90 118
91&gpmc { 119&gpmc {
92 ranges = <0 0 0x04000000 0x01000000>; /* CS0: 16MB for NAND */ 120 ranges = <0 0 0x04000000 0x01000000>; /* CS0: 16MB for NAND */
121 pinctrl-names = "default";
122 pinctrl-0 = <&nandflash_pins>;
93 123
94 nand@0,0 { 124 nand@0,0 {
95 compatible = "ti,omap2-nand"; 125 compatible = "ti,omap2-nand";
@@ -98,9 +128,11 @@
98 interrupt-parent = <&gpmc>; 128 interrupt-parent = <&gpmc>;
99 interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */ 129 interrupts = <0 IRQ_TYPE_NONE>, /* fifoevent */
100 <1 IRQ_TYPE_NONE>; /* termcount */ 130 <1 IRQ_TYPE_NONE>; /* termcount */
131 rb-gpios = <&gpmc 0 GPIO_ACTIVE_HIGH>; /* gpmc_wait0 */
101 #address-cells = <1>; 132 #address-cells = <1>;
102 #size-cells = <1>; 133 #size-cells = <1>;
103 ti,nand-ecc-opt = "bch8"; 134 ti,nand-ecc-opt = "bch8";
135 ti,elm-id = <&elm>;
104 nand-bus-width = <16>; 136 nand-bus-width = <16>;
105 gpmc,device-width = <2>; 137 gpmc,device-width = <2>;
106 gpmc,sync-clk-ps = <0>; 138 gpmc,sync-clk-ps = <0>;
@@ -164,7 +196,7 @@
164 vmmc-supply = <&vmmcsd_fixed>; 196 vmmc-supply = <&vmmcsd_fixed>;
165 bus-width = <4>; 197 bus-width = <4>;
166 cd-gpios = <&gpio2 7 GPIO_ACTIVE_LOW>; 198 cd-gpios = <&gpio2 7 GPIO_ACTIVE_LOW>;
167 wp-gpios = <&gpio2 8 GPIO_ACTIVE_LOW>; 199 wp-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>;
168}; 200};
169 201
170/* At least dm8168-evm rev c won't support multipoint, later may */ 202/* At least dm8168-evm rev c won't support multipoint, later may */
diff --git a/arch/arm/boot/dts/dm816x.dtsi b/arch/arm/boot/dts/dm816x.dtsi
index 59cbf958fcc3..566b2a8c8b96 100644
--- a/arch/arm/boot/dts/dm816x.dtsi
+++ b/arch/arm/boot/dts/dm816x.dtsi
@@ -145,7 +145,7 @@
145 }; 145 };
146 146
147 elm: elm@48080000 { 147 elm: elm@48080000 {
148 compatible = "ti,816-elm"; 148 compatible = "ti,am3352-elm";
149 ti,hwmods = "elm"; 149 ti,hwmods = "elm";
150 reg = <0x48080000 0x2000>; 150 reg = <0x48080000 0x2000>;
151 interrupts = <4>; 151 interrupts = <4>;
diff --git a/arch/arm/boot/dts/dra71-evm.dts b/arch/arm/boot/dts/dra71-evm.dts
index 4d57a55473af..a6298eb56978 100644
--- a/arch/arm/boot/dts/dra71-evm.dts
+++ b/arch/arm/boot/dts/dra71-evm.dts
@@ -190,7 +190,7 @@
190 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>; 190 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
191 ti,tx-internal-delay = <DP83867_RGMIIDCTL_250_PS>; 191 ti,tx-internal-delay = <DP83867_RGMIIDCTL_250_PS>;
192 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_8_B_NIB>; 192 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_8_B_NIB>;
193 ti,impedance-control = <0x1f>; 193 ti,min-output-impedance;
194 }; 194 };
195 195
196 dp83867_1: ethernet-phy@3 { 196 dp83867_1: ethernet-phy@3 {
@@ -198,7 +198,7 @@
198 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>; 198 ti,rx-internal-delay = <DP83867_RGMIIDCTL_2_25_NS>;
199 ti,tx-internal-delay = <DP83867_RGMIIDCTL_250_PS>; 199 ti,tx-internal-delay = <DP83867_RGMIIDCTL_250_PS>;
200 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_8_B_NIB>; 200 ti,fifo-depth = <DP83867_PHYCR_FIFO_DEPTH_8_B_NIB>;
201 ti,impedance-control = <0x1f>; 201 ti,min-output-impedance;
202 }; 202 };
203}; 203};
204 204
diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
index 497a9470c888..5739389f5bb8 100644
--- a/arch/arm/boot/dts/exynos4.dtsi
+++ b/arch/arm/boot/dts/exynos4.dtsi
@@ -59,6 +59,9 @@
59 compatible = "samsung,exynos4210-audss-clock"; 59 compatible = "samsung,exynos4210-audss-clock";
60 reg = <0x03810000 0x0C>; 60 reg = <0x03810000 0x0C>;
61 #clock-cells = <1>; 61 #clock-cells = <1>;
62 clocks = <&clock CLK_FIN_PLL>, <&clock CLK_FOUT_EPLL>,
63 <&clock CLK_SCLK_AUDIO0>, <&clock CLK_SCLK_AUDIO0>;
64 clock-names = "pll_ref", "pll_in", "sclk_audio", "sclk_pcm_in";
62 }; 65 };
63 66
64 i2s0: i2s@03830000 { 67 i2s0: i2s@03830000 {
diff --git a/arch/arm/boot/dts/rk3288.dtsi b/arch/arm/boot/dts/rk3288.dtsi
index 2484f11761ea..858e1fed762a 100644
--- a/arch/arm/boot/dts/rk3288.dtsi
+++ b/arch/arm/boot/dts/rk3288.dtsi
@@ -1126,8 +1126,8 @@
1126 }; 1126 };
1127 }; 1127 };
1128 1128
1129 gpu: mali@ffa30000 { 1129 gpu: gpu@ffa30000 {
1130 compatible = "rockchip,rk3288-mali", "arm,mali-t760", "arm,mali-midgard"; 1130 compatible = "rockchip,rk3288-mali", "arm,mali-t760";
1131 reg = <0xffa30000 0x10000>; 1131 reg = <0xffa30000 0x10000>;
1132 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>, 1132 interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
1133 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>, 1133 <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
diff --git a/arch/arm/boot/dts/sun8i-a83t.dtsi b/arch/arm/boot/dts/sun8i-a83t.dtsi
index 8923ba625b76..19a8f4fcfab5 100644
--- a/arch/arm/boot/dts/sun8i-a83t.dtsi
+++ b/arch/arm/boot/dts/sun8i-a83t.dtsi
@@ -44,7 +44,9 @@
44 44
45#include <dt-bindings/interrupt-controller/arm-gic.h> 45#include <dt-bindings/interrupt-controller/arm-gic.h>
46 46
47#include <dt-bindings/clock/sun8i-a83t-ccu.h>
47#include <dt-bindings/clock/sun8i-r-ccu.h> 48#include <dt-bindings/clock/sun8i-r-ccu.h>
49#include <dt-bindings/reset/sun8i-a83t-ccu.h>
48 50
49/ { 51/ {
50 interrupt-parent = <&gic>; 52 interrupt-parent = <&gic>;
@@ -175,8 +177,8 @@
175 compatible = "allwinner,sun8i-a83t-dma"; 177 compatible = "allwinner,sun8i-a83t-dma";
176 reg = <0x01c02000 0x1000>; 178 reg = <0x01c02000 0x1000>;
177 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>; 179 interrupts = <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>;
178 clocks = <&ccu 21>; 180 clocks = <&ccu CLK_BUS_DMA>;
179 resets = <&ccu 7>; 181 resets = <&ccu RST_BUS_DMA>;
180 #dma-cells = <1>; 182 #dma-cells = <1>;
181 }; 183 };
182 184
@@ -195,7 +197,7 @@
195 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>, 197 <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
196 <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>; 198 <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
197 reg = <0x01c20800 0x400>; 199 reg = <0x01c20800 0x400>;
198 clocks = <&ccu 45>, <&osc24M>, <&osc16Md512>; 200 clocks = <&ccu CLK_BUS_PIO>, <&osc24M>, <&osc16Md512>;
199 clock-names = "apb", "hosc", "losc"; 201 clock-names = "apb", "hosc", "losc";
200 gpio-controller; 202 gpio-controller;
201 interrupt-controller; 203 interrupt-controller;
@@ -247,8 +249,8 @@
247 "allwinner,sun8i-h3-spdif"; 249 "allwinner,sun8i-h3-spdif";
248 reg = <0x01c21000 0x400>; 250 reg = <0x01c21000 0x400>;
249 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; 251 interrupts = <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>;
250 clocks = <&ccu 44>, <&ccu 76>; 252 clocks = <&ccu CLK_BUS_SPDIF>, <&ccu CLK_SPDIF>;
251 resets = <&ccu 32>; 253 resets = <&ccu RST_BUS_SPDIF>;
252 clock-names = "apb", "spdif"; 254 clock-names = "apb", "spdif";
253 dmas = <&dma 2>; 255 dmas = <&dma 2>;
254 dma-names = "tx"; 256 dma-names = "tx";
@@ -263,8 +265,8 @@
263 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>; 265 interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>;
264 reg-shift = <2>; 266 reg-shift = <2>;
265 reg-io-width = <4>; 267 reg-io-width = <4>;
266 clocks = <&ccu 53>; 268 clocks = <&ccu CLK_BUS_UART0>;
267 resets = <&ccu 40>; 269 resets = <&ccu RST_BUS_UART0>;
268 status = "disabled"; 270 status = "disabled";
269 }; 271 };
270 272
diff --git a/arch/arm/boot/dts/sunxi-h3-h5.dtsi b/arch/arm/boot/dts/sunxi-h3-h5.dtsi
index 6f2162608006..d38282b9e5d4 100644
--- a/arch/arm/boot/dts/sunxi-h3-h5.dtsi
+++ b/arch/arm/boot/dts/sunxi-h3-h5.dtsi
@@ -394,7 +394,7 @@
394 emac: ethernet@1c30000 { 394 emac: ethernet@1c30000 {
395 compatible = "allwinner,sun8i-h3-emac"; 395 compatible = "allwinner,sun8i-h3-emac";
396 syscon = <&syscon>; 396 syscon = <&syscon>;
397 reg = <0x01c30000 0x104>; 397 reg = <0x01c30000 0x10000>;
398 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 398 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
399 interrupt-names = "macirq"; 399 interrupt-names = "macirq";
400 resets = <&ccu RST_BUS_EMAC>; 400 resets = <&ccu RST_BUS_EMAC>;
diff --git a/arch/arm/boot/dts/tango4-vantage-1172.dts b/arch/arm/boot/dts/tango4-vantage-1172.dts
index 86d8df98802f..13bcc460bcb2 100644
--- a/arch/arm/boot/dts/tango4-vantage-1172.dts
+++ b/arch/arm/boot/dts/tango4-vantage-1172.dts
@@ -22,7 +22,7 @@
22}; 22};
23 23
24&eth0 { 24&eth0 {
25 phy-connection-type = "rgmii"; 25 phy-connection-type = "rgmii-id";
26 phy-handle = <&eth0_phy>; 26 phy-handle = <&eth0_phy>;
27 #address-cells = <1>; 27 #address-cells = <1>;
28 #size-cells = <0>; 28 #size-cells = <0>;
diff --git a/arch/arm/include/asm/kexec.h b/arch/arm/include/asm/kexec.h
index 1869af6bac5c..25021b798a1e 100644
--- a/arch/arm/include/asm/kexec.h
+++ b/arch/arm/include/asm/kexec.h
@@ -19,6 +19,11 @@
19 19
20#ifndef __ASSEMBLY__ 20#ifndef __ASSEMBLY__
21 21
22#define ARCH_HAS_KIMAGE_ARCH
23struct kimage_arch {
24 u32 kernel_r2;
25};
26
22/** 27/**
23 * crash_setup_regs() - save registers for the panic kernel 28 * crash_setup_regs() - save registers for the panic kernel
24 * @newregs: registers are saved here 29 * @newregs: registers are saved here
diff --git a/arch/arm/include/asm/ucontext.h b/arch/arm/include/asm/ucontext.h
index 14749aec94bf..921d8274855c 100644
--- a/arch/arm/include/asm/ucontext.h
+++ b/arch/arm/include/asm/ucontext.h
@@ -35,6 +35,12 @@ struct ucontext {
35 * bytes, to prevent unpredictable padding in the signal frame. 35 * bytes, to prevent unpredictable padding in the signal frame.
36 */ 36 */
37 37
38/*
39 * Dummy padding block: if this magic is encountered, the block should
40 * be skipped using the corresponding size field.
41 */
42#define DUMMY_MAGIC 0xb0d9ed01
43
38#ifdef CONFIG_CRUNCH 44#ifdef CONFIG_CRUNCH
39#define CRUNCH_MAGIC 0x5065cf03 45#define CRUNCH_MAGIC 0x5065cf03
40#define CRUNCH_STORAGE_SIZE (CRUNCH_SIZE + 8) 46#define CRUNCH_STORAGE_SIZE (CRUNCH_SIZE + 8)
diff --git a/arch/arm/kernel/machine_kexec.c b/arch/arm/kernel/machine_kexec.c
index 15495887ca14..fe1419eeb932 100644
--- a/arch/arm/kernel/machine_kexec.c
+++ b/arch/arm/kernel/machine_kexec.c
@@ -30,7 +30,6 @@ extern unsigned long kexec_boot_atags;
30 30
31static atomic_t waiting_for_crash_ipi; 31static atomic_t waiting_for_crash_ipi;
32 32
33static unsigned long dt_mem;
34/* 33/*
35 * Provide a dummy crash_notes definition while crash dump arrives to arm. 34 * Provide a dummy crash_notes definition while crash dump arrives to arm.
36 * This prevents breakage of crash_notes attribute in kernel/ksysfs.c. 35 * This prevents breakage of crash_notes attribute in kernel/ksysfs.c.
@@ -42,6 +41,9 @@ int machine_kexec_prepare(struct kimage *image)
42 __be32 header; 41 __be32 header;
43 int i, err; 42 int i, err;
44 43
44 image->arch.kernel_r2 = image->start - KEXEC_ARM_ZIMAGE_OFFSET
45 + KEXEC_ARM_ATAGS_OFFSET;
46
45 /* 47 /*
46 * Validate that if the current HW supports SMP, then the SW supports 48 * Validate that if the current HW supports SMP, then the SW supports
47 * and implements CPU hotplug for the current HW. If not, we won't be 49 * and implements CPU hotplug for the current HW. If not, we won't be
@@ -66,8 +68,8 @@ int machine_kexec_prepare(struct kimage *image)
66 if (err) 68 if (err)
67 return err; 69 return err;
68 70
69 if (be32_to_cpu(header) == OF_DT_HEADER) 71 if (header == cpu_to_be32(OF_DT_HEADER))
70 dt_mem = current_segment->mem; 72 image->arch.kernel_r2 = current_segment->mem;
71 } 73 }
72 return 0; 74 return 0;
73} 75}
@@ -165,8 +167,7 @@ void machine_kexec(struct kimage *image)
165 kexec_start_address = image->start; 167 kexec_start_address = image->start;
166 kexec_indirection_page = page_list; 168 kexec_indirection_page = page_list;
167 kexec_mach_type = machine_arch_type; 169 kexec_mach_type = machine_arch_type;
168 kexec_boot_atags = dt_mem ?: image->start - KEXEC_ARM_ZIMAGE_OFFSET 170 kexec_boot_atags = image->arch.kernel_r2;
169 + KEXEC_ARM_ATAGS_OFFSET;
170 171
171 /* copy our kernel relocation code to the control code page */ 172 /* copy our kernel relocation code to the control code page */
172 reboot_entry = fncpy(reboot_code_buffer, 173 reboot_entry = fncpy(reboot_code_buffer,
diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
index 4e80bf7420d4..8e9a3e40d949 100644
--- a/arch/arm/kernel/setup.c
+++ b/arch/arm/kernel/setup.c
@@ -987,6 +987,9 @@ static void __init reserve_crashkernel(void)
987 987
988 if (crash_base <= 0) { 988 if (crash_base <= 0) {
989 unsigned long long crash_max = idmap_to_phys((u32)~0); 989 unsigned long long crash_max = idmap_to_phys((u32)~0);
990 unsigned long long lowmem_max = __pa(high_memory - 1) + 1;
991 if (crash_max > lowmem_max)
992 crash_max = lowmem_max;
990 crash_base = memblock_find_in_range(CRASH_ALIGN, crash_max, 993 crash_base = memblock_find_in_range(CRASH_ALIGN, crash_max,
991 crash_size, CRASH_ALIGN); 994 crash_size, CRASH_ALIGN);
992 if (!crash_base) { 995 if (!crash_base) {
diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
index 7b8f2141427b..5814298ef0b7 100644
--- a/arch/arm/kernel/signal.c
+++ b/arch/arm/kernel/signal.c
@@ -40,8 +40,10 @@ static int preserve_crunch_context(struct crunch_sigframe __user *frame)
40 return __copy_to_user(frame, kframe, sizeof(*frame)); 40 return __copy_to_user(frame, kframe, sizeof(*frame));
41} 41}
42 42
43static int restore_crunch_context(struct crunch_sigframe __user *frame) 43static int restore_crunch_context(char __user **auxp)
44{ 44{
45 struct crunch_sigframe __user *frame =
46 (struct crunch_sigframe __user *)*auxp;
45 char kbuf[sizeof(*frame) + 8]; 47 char kbuf[sizeof(*frame) + 8];
46 struct crunch_sigframe *kframe; 48 struct crunch_sigframe *kframe;
47 49
@@ -52,6 +54,7 @@ static int restore_crunch_context(struct crunch_sigframe __user *frame)
52 if (kframe->magic != CRUNCH_MAGIC || 54 if (kframe->magic != CRUNCH_MAGIC ||
53 kframe->size != CRUNCH_STORAGE_SIZE) 55 kframe->size != CRUNCH_STORAGE_SIZE)
54 return -1; 56 return -1;
57 *auxp += CRUNCH_STORAGE_SIZE;
55 crunch_task_restore(current_thread_info(), &kframe->storage); 58 crunch_task_restore(current_thread_info(), &kframe->storage);
56 return 0; 59 return 0;
57} 60}
@@ -59,21 +62,39 @@ static int restore_crunch_context(struct crunch_sigframe __user *frame)
59 62
60#ifdef CONFIG_IWMMXT 63#ifdef CONFIG_IWMMXT
61 64
62static int preserve_iwmmxt_context(struct iwmmxt_sigframe *frame) 65static int preserve_iwmmxt_context(struct iwmmxt_sigframe __user *frame)
63{ 66{
64 char kbuf[sizeof(*frame) + 8]; 67 char kbuf[sizeof(*frame) + 8];
65 struct iwmmxt_sigframe *kframe; 68 struct iwmmxt_sigframe *kframe;
69 int err = 0;
66 70
67 /* the iWMMXt context must be 64 bit aligned */ 71 /* the iWMMXt context must be 64 bit aligned */
68 kframe = (struct iwmmxt_sigframe *)((unsigned long)(kbuf + 8) & ~7); 72 kframe = (struct iwmmxt_sigframe *)((unsigned long)(kbuf + 8) & ~7);
69 kframe->magic = IWMMXT_MAGIC; 73
70 kframe->size = IWMMXT_STORAGE_SIZE; 74 if (test_thread_flag(TIF_USING_IWMMXT)) {
71 iwmmxt_task_copy(current_thread_info(), &kframe->storage); 75 kframe->magic = IWMMXT_MAGIC;
72 return __copy_to_user(frame, kframe, sizeof(*frame)); 76 kframe->size = IWMMXT_STORAGE_SIZE;
77 iwmmxt_task_copy(current_thread_info(), &kframe->storage);
78
79 err = __copy_to_user(frame, kframe, sizeof(*frame));
80 } else {
81 /*
82 * For bug-compatibility with older kernels, some space
83 * has to be reserved for iWMMXt even if it's not used.
84 * Set the magic and size appropriately so that properly
85 * written userspace can skip it reliably:
86 */
87 __put_user_error(DUMMY_MAGIC, &frame->magic, err);
88 __put_user_error(IWMMXT_STORAGE_SIZE, &frame->size, err);
89 }
90
91 return err;
73} 92}
74 93
75static int restore_iwmmxt_context(struct iwmmxt_sigframe *frame) 94static int restore_iwmmxt_context(char __user **auxp)
76{ 95{
96 struct iwmmxt_sigframe __user *frame =
97 (struct iwmmxt_sigframe __user *)*auxp;
77 char kbuf[sizeof(*frame) + 8]; 98 char kbuf[sizeof(*frame) + 8];
78 struct iwmmxt_sigframe *kframe; 99 struct iwmmxt_sigframe *kframe;
79 100
@@ -81,10 +102,28 @@ static int restore_iwmmxt_context(struct iwmmxt_sigframe *frame)
81 kframe = (struct iwmmxt_sigframe *)((unsigned long)(kbuf + 8) & ~7); 102 kframe = (struct iwmmxt_sigframe *)((unsigned long)(kbuf + 8) & ~7);
82 if (__copy_from_user(kframe, frame, sizeof(*frame))) 103 if (__copy_from_user(kframe, frame, sizeof(*frame)))
83 return -1; 104 return -1;
84 if (kframe->magic != IWMMXT_MAGIC || 105
85 kframe->size != IWMMXT_STORAGE_SIZE) 106 /*
107 * For non-iWMMXt threads: a single iwmmxt_sigframe-sized dummy
108 * block is discarded for compatibility with setup_sigframe() if
109 * present, but we don't mandate its presence. If some other
110 * magic is here, it's not for us:
111 */
112 if (!test_thread_flag(TIF_USING_IWMMXT) &&
113 kframe->magic != DUMMY_MAGIC)
114 return 0;
115
116 if (kframe->size != IWMMXT_STORAGE_SIZE)
86 return -1; 117 return -1;
87 iwmmxt_task_restore(current_thread_info(), &kframe->storage); 118
119 if (test_thread_flag(TIF_USING_IWMMXT)) {
120 if (kframe->magic != IWMMXT_MAGIC)
121 return -1;
122
123 iwmmxt_task_restore(current_thread_info(), &kframe->storage);
124 }
125
126 *auxp += IWMMXT_STORAGE_SIZE;
88 return 0; 127 return 0;
89} 128}
90 129
@@ -107,8 +146,10 @@ static int preserve_vfp_context(struct vfp_sigframe __user *frame)
107 return vfp_preserve_user_clear_hwstate(&frame->ufp, &frame->ufp_exc); 146 return vfp_preserve_user_clear_hwstate(&frame->ufp, &frame->ufp_exc);
108} 147}
109 148
110static int restore_vfp_context(struct vfp_sigframe __user *frame) 149static int restore_vfp_context(char __user **auxp)
111{ 150{
151 struct vfp_sigframe __user *frame =
152 (struct vfp_sigframe __user *)*auxp;
112 unsigned long magic; 153 unsigned long magic;
113 unsigned long size; 154 unsigned long size;
114 int err = 0; 155 int err = 0;
@@ -121,6 +162,7 @@ static int restore_vfp_context(struct vfp_sigframe __user *frame)
121 if (magic != VFP_MAGIC || size != VFP_STORAGE_SIZE) 162 if (magic != VFP_MAGIC || size != VFP_STORAGE_SIZE)
122 return -EINVAL; 163 return -EINVAL;
123 164
165 *auxp += size;
124 return vfp_restore_user_hwstate(&frame->ufp, &frame->ufp_exc); 166 return vfp_restore_user_hwstate(&frame->ufp, &frame->ufp_exc);
125} 167}
126 168
@@ -141,7 +183,7 @@ struct rt_sigframe {
141 183
142static int restore_sigframe(struct pt_regs *regs, struct sigframe __user *sf) 184static int restore_sigframe(struct pt_regs *regs, struct sigframe __user *sf)
143{ 185{
144 struct aux_sigframe __user *aux; 186 char __user *aux;
145 sigset_t set; 187 sigset_t set;
146 int err; 188 int err;
147 189
@@ -169,18 +211,18 @@ static int restore_sigframe(struct pt_regs *regs, struct sigframe __user *sf)
169 211
170 err |= !valid_user_regs(regs); 212 err |= !valid_user_regs(regs);
171 213
172 aux = (struct aux_sigframe __user *) sf->uc.uc_regspace; 214 aux = (char __user *) sf->uc.uc_regspace;
173#ifdef CONFIG_CRUNCH 215#ifdef CONFIG_CRUNCH
174 if (err == 0) 216 if (err == 0)
175 err |= restore_crunch_context(&aux->crunch); 217 err |= restore_crunch_context(&aux);
176#endif 218#endif
177#ifdef CONFIG_IWMMXT 219#ifdef CONFIG_IWMMXT
178 if (err == 0 && test_thread_flag(TIF_USING_IWMMXT)) 220 if (err == 0)
179 err |= restore_iwmmxt_context(&aux->iwmmxt); 221 err |= restore_iwmmxt_context(&aux);
180#endif 222#endif
181#ifdef CONFIG_VFP 223#ifdef CONFIG_VFP
182 if (err == 0) 224 if (err == 0)
183 err |= restore_vfp_context(&aux->vfp); 225 err |= restore_vfp_context(&aux);
184#endif 226#endif
185 227
186 return err; 228 return err;
@@ -286,7 +328,7 @@ setup_sigframe(struct sigframe __user *sf, struct pt_regs *regs, sigset_t *set)
286 err |= preserve_crunch_context(&aux->crunch); 328 err |= preserve_crunch_context(&aux->crunch);
287#endif 329#endif
288#ifdef CONFIG_IWMMXT 330#ifdef CONFIG_IWMMXT
289 if (err == 0 && test_thread_flag(TIF_USING_IWMMXT)) 331 if (err == 0)
290 err |= preserve_iwmmxt_context(&aux->iwmmxt); 332 err |= preserve_iwmmxt_context(&aux->iwmmxt);
291#endif 333#endif
292#ifdef CONFIG_VFP 334#ifdef CONFIG_VFP
diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c
index b5625d009288..e568c8c6f69c 100644
--- a/arch/arm/mach-davinci/board-da850-evm.c
+++ b/arch/arm/mach-davinci/board-da850-evm.c
@@ -1166,7 +1166,7 @@ static struct tvp514x_platform_data tvp5146_pdata = {
1166 1166
1167#define TVP514X_STD_ALL (V4L2_STD_NTSC | V4L2_STD_PAL) 1167#define TVP514X_STD_ALL (V4L2_STD_NTSC | V4L2_STD_PAL)
1168 1168
1169static const struct vpif_input da850_ch0_inputs[] = { 1169static struct vpif_input da850_ch0_inputs[] = {
1170 { 1170 {
1171 .input = { 1171 .input = {
1172 .index = 0, 1172 .index = 0,
@@ -1181,7 +1181,7 @@ static const struct vpif_input da850_ch0_inputs[] = {
1181 }, 1181 },
1182}; 1182};
1183 1183
1184static const struct vpif_input da850_ch1_inputs[] = { 1184static struct vpif_input da850_ch1_inputs[] = {
1185 { 1185 {
1186 .input = { 1186 .input = {
1187 .index = 0, 1187 .index = 0,
diff --git a/arch/arm/mach-davinci/clock.c b/arch/arm/mach-davinci/clock.c
index f5dce9b4e617..f77a4f766050 100644
--- a/arch/arm/mach-davinci/clock.c
+++ b/arch/arm/mach-davinci/clock.c
@@ -218,6 +218,15 @@ int clk_set_parent(struct clk *clk, struct clk *parent)
218} 218}
219EXPORT_SYMBOL(clk_set_parent); 219EXPORT_SYMBOL(clk_set_parent);
220 220
221struct clk *clk_get_parent(struct clk *clk)
222{
223 if (!clk)
224 return NULL;
225
226 return clk->parent;
227}
228EXPORT_SYMBOL(clk_get_parent);
229
221int clk_register(struct clk *clk) 230int clk_register(struct clk *clk)
222{ 231{
223 if (clk == NULL || IS_ERR(clk)) 232 if (clk == NULL || IS_ERR(clk))
diff --git a/arch/arm/mach-ep93xx/clock.c b/arch/arm/mach-ep93xx/clock.c
index 39ef3b613912..beec5f16443a 100644
--- a/arch/arm/mach-ep93xx/clock.c
+++ b/arch/arm/mach-ep93xx/clock.c
@@ -475,6 +475,26 @@ int clk_set_rate(struct clk *clk, unsigned long rate)
475} 475}
476EXPORT_SYMBOL(clk_set_rate); 476EXPORT_SYMBOL(clk_set_rate);
477 477
478long clk_round_rate(struct clk *clk, unsigned long rate)
479{
480 WARN_ON(clk);
481 return 0;
482}
483EXPORT_SYMBOL(clk_round_rate);
484
485int clk_set_parent(struct clk *clk, struct clk *parent)
486{
487 WARN_ON(clk);
488 return 0;
489}
490EXPORT_SYMBOL(clk_set_parent);
491
492struct clk *clk_get_parent(struct clk *clk)
493{
494 return clk->parent;
495}
496EXPORT_SYMBOL(clk_get_parent);
497
478 498
479static char fclk_divisors[] = { 1, 2, 4, 8, 16, 1, 1, 1 }; 499static char fclk_divisors[] = { 1, 2, 4, 8, 16, 1, 1, 1 };
480static char hclk_divisors[] = { 1, 2, 4, 5, 6, 8, 16, 32 }; 500static char hclk_divisors[] = { 1, 2, 4, 5, 6, 8, 16, 32 };
diff --git a/arch/arm/mach-ixp4xx/include/mach/io.h b/arch/arm/mach-ixp4xx/include/mach/io.h
index 7a0c13bf4269..844e8ac593e2 100644
--- a/arch/arm/mach-ixp4xx/include/mach/io.h
+++ b/arch/arm/mach-ixp4xx/include/mach/io.h
@@ -95,8 +95,10 @@ static inline void __indirect_writeb(u8 value, volatile void __iomem *p)
95} 95}
96 96
97static inline void __indirect_writesb(volatile void __iomem *bus_addr, 97static inline void __indirect_writesb(volatile void __iomem *bus_addr,
98 const u8 *vaddr, int count) 98 const void *p, int count)
99{ 99{
100 const u8 *vaddr = p;
101
100 while (count--) 102 while (count--)
101 writeb(*vaddr++, bus_addr); 103 writeb(*vaddr++, bus_addr);
102} 104}
@@ -118,8 +120,10 @@ static inline void __indirect_writew(u16 value, volatile void __iomem *p)
118} 120}
119 121
120static inline void __indirect_writesw(volatile void __iomem *bus_addr, 122static inline void __indirect_writesw(volatile void __iomem *bus_addr,
121 const u16 *vaddr, int count) 123 const void *p, int count)
122{ 124{
125 const u16 *vaddr = p;
126
123 while (count--) 127 while (count--)
124 writew(*vaddr++, bus_addr); 128 writew(*vaddr++, bus_addr);
125} 129}
@@ -137,8 +141,9 @@ static inline void __indirect_writel(u32 value, volatile void __iomem *p)
137} 141}
138 142
139static inline void __indirect_writesl(volatile void __iomem *bus_addr, 143static inline void __indirect_writesl(volatile void __iomem *bus_addr,
140 const u32 *vaddr, int count) 144 const void *p, int count)
141{ 145{
146 const u32 *vaddr = p;
142 while (count--) 147 while (count--)
143 writel(*vaddr++, bus_addr); 148 writel(*vaddr++, bus_addr);
144} 149}
@@ -160,8 +165,10 @@ static inline u8 __indirect_readb(const volatile void __iomem *p)
160} 165}
161 166
162static inline void __indirect_readsb(const volatile void __iomem *bus_addr, 167static inline void __indirect_readsb(const volatile void __iomem *bus_addr,
163 u8 *vaddr, u32 count) 168 void *p, u32 count)
164{ 169{
170 u8 *vaddr = p;
171
165 while (count--) 172 while (count--)
166 *vaddr++ = readb(bus_addr); 173 *vaddr++ = readb(bus_addr);
167} 174}
@@ -183,8 +190,10 @@ static inline u16 __indirect_readw(const volatile void __iomem *p)
183} 190}
184 191
185static inline void __indirect_readsw(const volatile void __iomem *bus_addr, 192static inline void __indirect_readsw(const volatile void __iomem *bus_addr,
186 u16 *vaddr, u32 count) 193 void *p, u32 count)
187{ 194{
195 u16 *vaddr = p;
196
188 while (count--) 197 while (count--)
189 *vaddr++ = readw(bus_addr); 198 *vaddr++ = readw(bus_addr);
190} 199}
@@ -204,8 +213,10 @@ static inline u32 __indirect_readl(const volatile void __iomem *p)
204} 213}
205 214
206static inline void __indirect_readsl(const volatile void __iomem *bus_addr, 215static inline void __indirect_readsl(const volatile void __iomem *bus_addr,
207 u32 *vaddr, u32 count) 216 void *p, u32 count)
208{ 217{
218 u32 *vaddr = p;
219
209 while (count--) 220 while (count--)
210 *vaddr++ = readl(bus_addr); 221 *vaddr++ = readl(bus_addr);
211} 222}
@@ -523,8 +534,15 @@ static inline void iowrite32_rep(void __iomem *addr, const void *vaddr,
523#endif 534#endif
524} 535}
525 536
526#define ioport_map(port, nr) ((void __iomem*)(port + PIO_OFFSET)) 537#define ioport_map(port, nr) ioport_map(port, nr)
527#define ioport_unmap(addr) 538static inline void __iomem *ioport_map(unsigned long port, unsigned int nr)
539{
540 return ((void __iomem*)((port) + PIO_OFFSET));
541}
542#define ioport_unmap(addr) ioport_unmap(addr)
543static inline void ioport_unmap(void __iomem *addr)
544{
545}
528#endif /* CONFIG_PCI */ 546#endif /* CONFIG_PCI */
529 547
530#endif /* __ASM_ARM_ARCH_IO_H */ 548#endif /* __ASM_ARM_ARCH_IO_H */
diff --git a/arch/arm/mach-mmp/devices.c b/arch/arm/mach-mmp/devices.c
index 3330ac7cfbef..671c7a09ab3d 100644
--- a/arch/arm/mach-mmp/devices.c
+++ b/arch/arm/mach-mmp/devices.c
@@ -238,7 +238,7 @@ void pxa_usb_phy_deinit(void __iomem *phy_reg)
238#endif 238#endif
239 239
240#if IS_ENABLED(CONFIG_USB_SUPPORT) 240#if IS_ENABLED(CONFIG_USB_SUPPORT)
241static u64 usb_dma_mask = ~(u32)0; 241static u64 __maybe_unused usb_dma_mask = ~(u32)0;
242 242
243#if IS_ENABLED(CONFIG_USB_MV_UDC) 243#if IS_ENABLED(CONFIG_USB_MV_UDC)
244struct resource pxa168_u2o_resources[] = { 244struct resource pxa168_u2o_resources[] = {
diff --git a/arch/arm/mach-mvebu/platsmp.c b/arch/arm/mach-mvebu/platsmp.c
index e62273aacb43..4ffbbd217e82 100644
--- a/arch/arm/mach-mvebu/platsmp.c
+++ b/arch/arm/mach-mvebu/platsmp.c
@@ -211,7 +211,7 @@ static int mv98dx3236_resume_set_cpu_boot_addr(int hw_cpu, void *boot_addr)
211 return PTR_ERR(base); 211 return PTR_ERR(base);
212 212
213 writel(0, base + MV98DX3236_CPU_RESUME_CTRL_REG); 213 writel(0, base + MV98DX3236_CPU_RESUME_CTRL_REG);
214 writel(virt_to_phys(boot_addr), base + MV98DX3236_CPU_RESUME_ADDR_REG); 214 writel(__pa_symbol(boot_addr), base + MV98DX3236_CPU_RESUME_ADDR_REG);
215 215
216 iounmap(base); 216 iounmap(base);
217 217
diff --git a/arch/arm/mach-omap1/board-ams-delta.c b/arch/arm/mach-omap1/board-ams-delta.c
index 6613a6ff5dbc..6cbc69c92913 100644
--- a/arch/arm/mach-omap1/board-ams-delta.c
+++ b/arch/arm/mach-omap1/board-ams-delta.c
@@ -510,6 +510,7 @@ static void __init ams_delta_init(void)
510static void modem_pm(struct uart_port *port, unsigned int state, unsigned old) 510static void modem_pm(struct uart_port *port, unsigned int state, unsigned old)
511{ 511{
512 struct modem_private_data *priv = port->private_data; 512 struct modem_private_data *priv = port->private_data;
513 int ret;
513 514
514 if (IS_ERR(priv->regulator)) 515 if (IS_ERR(priv->regulator))
515 return; 516 return;
@@ -518,9 +519,16 @@ static void modem_pm(struct uart_port *port, unsigned int state, unsigned old)
518 return; 519 return;
519 520
520 if (state == 0) 521 if (state == 0)
521 regulator_enable(priv->regulator); 522 ret = regulator_enable(priv->regulator);
522 else if (old == 0) 523 else if (old == 0)
523 regulator_disable(priv->regulator); 524 ret = regulator_disable(priv->regulator);
525 else
526 ret = 0;
527
528 if (ret)
529 dev_warn(port->dev,
530 "ams_delta modem_pm: failed to %sable regulator: %d\n",
531 state ? "dis" : "en", ret);
524} 532}
525 533
526static struct plat_serial8250_port ams_delta_modem_ports[] = { 534static struct plat_serial8250_port ams_delta_modem_ports[] = {
diff --git a/arch/arm/mach-omap1/board-osk.c b/arch/arm/mach-omap1/board-osk.c
index 4dfb99504810..95ac1929aede 100644
--- a/arch/arm/mach-omap1/board-osk.c
+++ b/arch/arm/mach-omap1/board-osk.c
@@ -441,13 +441,11 @@ static struct spi_board_info __initdata mistral_boardinfo[] = { {
441 .chip_select = 0, 441 .chip_select = 0,
442} }; 442} };
443 443
444#ifdef CONFIG_PM
445static irqreturn_t 444static irqreturn_t
446osk_mistral_wake_interrupt(int irq, void *ignored) 445osk_mistral_wake_interrupt(int irq, void *ignored)
447{ 446{
448 return IRQ_HANDLED; 447 return IRQ_HANDLED;
449} 448}
450#endif
451 449
452static void __init osk_mistral_init(void) 450static void __init osk_mistral_init(void)
453{ 451{
@@ -515,7 +513,6 @@ static void __init osk_mistral_init(void)
515 513
516 gpio_direction_input(OMAP_MPUIO(2)); 514 gpio_direction_input(OMAP_MPUIO(2));
517 irq_set_irq_type(irq, IRQ_TYPE_EDGE_RISING); 515 irq_set_irq_type(irq, IRQ_TYPE_EDGE_RISING);
518#ifdef CONFIG_PM
519 /* share the IRQ in case someone wants to use the 516 /* share the IRQ in case someone wants to use the
520 * button for more than wakeup from system sleep. 517 * button for more than wakeup from system sleep.
521 */ 518 */
@@ -529,7 +526,6 @@ static void __init osk_mistral_init(void)
529 ret); 526 ret);
530 } else 527 } else
531 enable_irq_wake(irq); 528 enable_irq_wake(irq);
532#endif
533 } else 529 } else
534 printk(KERN_ERR "OSK+Mistral: wakeup button is awol\n"); 530 printk(KERN_ERR "OSK+Mistral: wakeup button is awol\n");
535 531
diff --git a/arch/arm/mach-omap2/board-generic.c b/arch/arm/mach-omap2/board-generic.c
index dc9e34e670a2..b1e661bb5521 100644
--- a/arch/arm/mach-omap2/board-generic.c
+++ b/arch/arm/mach-omap2/board-generic.c
@@ -28,7 +28,7 @@ static const struct of_device_id omap_dt_match_table[] __initconst = {
28 { } 28 { }
29}; 29};
30 30
31static void __init omap_generic_init(void) 31static void __init __maybe_unused omap_generic_init(void)
32{ 32{
33 pdata_quirks_init(omap_dt_match_table); 33 pdata_quirks_init(omap_dt_match_table);
34 34
diff --git a/arch/arm/mach-omap2/hsmmc.c b/arch/arm/mach-omap2/hsmmc.c
index be517b048762..5b614388d72f 100644
--- a/arch/arm/mach-omap2/hsmmc.c
+++ b/arch/arm/mach-omap2/hsmmc.c
@@ -32,120 +32,6 @@ static u16 control_devconf1_offset;
32 32
33#define HSMMC_NAME_LEN 9 33#define HSMMC_NAME_LEN 9
34 34
35static void omap_hsmmc1_before_set_reg(struct device *dev,
36 int power_on, int vdd)
37{
38 u32 reg, prog_io;
39 struct omap_hsmmc_platform_data *mmc = dev->platform_data;
40
41 if (mmc->remux)
42 mmc->remux(dev, power_on);
43
44 /*
45 * Assume we power both OMAP VMMC1 (for CMD, CLK, DAT0..3) and the
46 * card with Vcc regulator (from twl4030 or whatever). OMAP has both
47 * 1.8V and 3.0V modes, controlled by the PBIAS register.
48 *
49 * In 8-bit modes, OMAP VMMC1A (for DAT4..7) needs a supply, which
50 * is most naturally TWL VSIM; those pins also use PBIAS.
51 *
52 * FIXME handle VMMC1A as needed ...
53 */
54 if (power_on) {
55 if (cpu_is_omap2430()) {
56 reg = omap_ctrl_readl(OMAP243X_CONTROL_DEVCONF1);
57 if ((1 << vdd) >= MMC_VDD_30_31)
58 reg |= OMAP243X_MMC1_ACTIVE_OVERWRITE;
59 else
60 reg &= ~OMAP243X_MMC1_ACTIVE_OVERWRITE;
61 omap_ctrl_writel(reg, OMAP243X_CONTROL_DEVCONF1);
62 }
63
64 if (mmc->internal_clock) {
65 reg = omap_ctrl_readl(OMAP2_CONTROL_DEVCONF0);
66 reg |= OMAP2_MMCSDIO1ADPCLKISEL;
67 omap_ctrl_writel(reg, OMAP2_CONTROL_DEVCONF0);
68 }
69
70 reg = omap_ctrl_readl(control_pbias_offset);
71 if (cpu_is_omap3630()) {
72 /* Set MMC I/O to 52MHz */
73 prog_io = omap_ctrl_readl(OMAP343X_CONTROL_PROG_IO1);
74 prog_io |= OMAP3630_PRG_SDMMC1_SPEEDCTRL;
75 omap_ctrl_writel(prog_io, OMAP343X_CONTROL_PROG_IO1);
76 } else {
77 reg |= OMAP2_PBIASSPEEDCTRL0;
78 }
79 reg &= ~OMAP2_PBIASLITEPWRDNZ0;
80 omap_ctrl_writel(reg, control_pbias_offset);
81 } else {
82 reg = omap_ctrl_readl(control_pbias_offset);
83 reg &= ~OMAP2_PBIASLITEPWRDNZ0;
84 omap_ctrl_writel(reg, control_pbias_offset);
85 }
86}
87
88static void omap_hsmmc1_after_set_reg(struct device *dev, int power_on, int vdd)
89{
90 u32 reg;
91
92 /* 100ms delay required for PBIAS configuration */
93 msleep(100);
94
95 if (power_on) {
96 reg = omap_ctrl_readl(control_pbias_offset);
97 reg |= (OMAP2_PBIASLITEPWRDNZ0 | OMAP2_PBIASSPEEDCTRL0);
98 if ((1 << vdd) <= MMC_VDD_165_195)
99 reg &= ~OMAP2_PBIASLITEVMODE0;
100 else
101 reg |= OMAP2_PBIASLITEVMODE0;
102 omap_ctrl_writel(reg, control_pbias_offset);
103 } else {
104 reg = omap_ctrl_readl(control_pbias_offset);
105 reg |= (OMAP2_PBIASSPEEDCTRL0 | OMAP2_PBIASLITEPWRDNZ0 |
106 OMAP2_PBIASLITEVMODE0);
107 omap_ctrl_writel(reg, control_pbias_offset);
108 }
109}
110
111static void hsmmc2_select_input_clk_src(struct omap_hsmmc_platform_data *mmc)
112{
113 u32 reg;
114
115 reg = omap_ctrl_readl(control_devconf1_offset);
116 if (mmc->internal_clock)
117 reg |= OMAP2_MMCSDIO2ADPCLKISEL;
118 else
119 reg &= ~OMAP2_MMCSDIO2ADPCLKISEL;
120 omap_ctrl_writel(reg, control_devconf1_offset);
121}
122
123static void hsmmc2_before_set_reg(struct device *dev, int power_on, int vdd)
124{
125 struct omap_hsmmc_platform_data *mmc = dev->platform_data;
126
127 if (mmc->remux)
128 mmc->remux(dev, power_on);
129
130 if (power_on)
131 hsmmc2_select_input_clk_src(mmc);
132}
133
134static int am35x_hsmmc2_set_power(struct device *dev, int power_on, int vdd)
135{
136 struct omap_hsmmc_platform_data *mmc = dev->platform_data;
137
138 if (power_on)
139 hsmmc2_select_input_clk_src(mmc);
140
141 return 0;
142}
143
144static int nop_mmc_set_power(struct device *dev, int power_on, int vdd)
145{
146 return 0;
147}
148
149static int __init omap_hsmmc_pdata_init(struct omap2_hsmmc_info *c, 35static int __init omap_hsmmc_pdata_init(struct omap2_hsmmc_info *c,
150 struct omap_hsmmc_platform_data *mmc) 36 struct omap_hsmmc_platform_data *mmc)
151{ 37{
@@ -157,101 +43,11 @@ static int __init omap_hsmmc_pdata_init(struct omap2_hsmmc_info *c,
157 return -ENOMEM; 43 return -ENOMEM;
158 } 44 }
159 45
160 if (c->name) 46 snprintf(hc_name, (HSMMC_NAME_LEN + 1), "mmc%islot%i", c->mmc, 1);
161 strncpy(hc_name, c->name, HSMMC_NAME_LEN);
162 else
163 snprintf(hc_name, (HSMMC_NAME_LEN + 1), "mmc%islot%i",
164 c->mmc, 1);
165 mmc->name = hc_name; 47 mmc->name = hc_name;
166 mmc->caps = c->caps; 48 mmc->caps = c->caps;
167 mmc->internal_clock = !c->ext_clock;
168 mmc->reg_offset = 0; 49 mmc->reg_offset = 0;
169 50
170 if (c->cover_only) {
171 /* detect if mobile phone cover removed */
172 mmc->gpio_cd = -EINVAL;
173 mmc->gpio_cod = c->gpio_cd;
174 } else {
175 /* card detect pin on the mmc socket itself */
176 mmc->gpio_cd = c->gpio_cd;
177 mmc->gpio_cod = -EINVAL;
178 }
179 mmc->gpio_wp = c->gpio_wp;
180
181 mmc->remux = c->remux;
182 mmc->init_card = c->init_card;
183
184 if (c->nonremovable)
185 mmc->nonremovable = 1;
186
187 /*
188 * NOTE: MMC slots should have a Vcc regulator set up.
189 * This may be from a TWL4030-family chip, another
190 * controllable regulator, or a fixed supply.
191 *
192 * temporary HACK: ocr_mask instead of fixed supply
193 */
194 if (soc_is_am35xx())
195 mmc->ocr_mask = MMC_VDD_165_195 |
196 MMC_VDD_26_27 |
197 MMC_VDD_27_28 |
198 MMC_VDD_29_30 |
199 MMC_VDD_30_31 |
200 MMC_VDD_31_32;
201 else
202 mmc->ocr_mask = c->ocr_mask;
203
204 if (!soc_is_am35xx())
205 mmc->features |= HSMMC_HAS_PBIAS;
206
207 switch (c->mmc) {
208 case 1:
209 if (mmc->features & HSMMC_HAS_PBIAS) {
210 /* on-chip level shifting via PBIAS0/PBIAS1 */
211 mmc->before_set_reg =
212 omap_hsmmc1_before_set_reg;
213 mmc->after_set_reg =
214 omap_hsmmc1_after_set_reg;
215 }
216
217 if (soc_is_am35xx())
218 mmc->set_power = nop_mmc_set_power;
219
220 /* OMAP3630 HSMMC1 supports only 4-bit */
221 if (cpu_is_omap3630() &&
222 (c->caps & MMC_CAP_8_BIT_DATA)) {
223 c->caps &= ~MMC_CAP_8_BIT_DATA;
224 c->caps |= MMC_CAP_4_BIT_DATA;
225 mmc->caps = c->caps;
226 }
227 break;
228 case 2:
229 if (soc_is_am35xx())
230 mmc->set_power = am35x_hsmmc2_set_power;
231
232 if (c->ext_clock)
233 c->transceiver = 1;
234 if (c->transceiver && (c->caps & MMC_CAP_8_BIT_DATA)) {
235 c->caps &= ~MMC_CAP_8_BIT_DATA;
236 c->caps |= MMC_CAP_4_BIT_DATA;
237 }
238 if (mmc->features & HSMMC_HAS_PBIAS) {
239 /* off-chip level shifting, or none */
240 mmc->before_set_reg = hsmmc2_before_set_reg;
241 mmc->after_set_reg = NULL;
242 }
243 break;
244 case 3:
245 case 4:
246 case 5:
247 mmc->before_set_reg = NULL;
248 mmc->after_set_reg = NULL;
249 break;
250 default:
251 pr_err("MMC%d configuration not supported!\n", c->mmc);
252 kfree(hc_name);
253 return -ENODEV;
254 }
255 return 0; 51 return 0;
256} 52}
257 53
@@ -260,7 +56,6 @@ static int omap_hsmmc_done;
260void omap_hsmmc_late_init(struct omap2_hsmmc_info *c) 56void omap_hsmmc_late_init(struct omap2_hsmmc_info *c)
261{ 57{
262 struct platform_device *pdev; 58 struct platform_device *pdev;
263 struct omap_hsmmc_platform_data *mmc_pdata;
264 int res; 59 int res;
265 60
266 if (omap_hsmmc_done != 1) 61 if (omap_hsmmc_done != 1)
@@ -269,32 +64,12 @@ void omap_hsmmc_late_init(struct omap2_hsmmc_info *c)
269 omap_hsmmc_done++; 64 omap_hsmmc_done++;
270 65
271 for (; c->mmc; c++) { 66 for (; c->mmc; c++) {
272 if (!c->deferred)
273 continue;
274
275 pdev = c->pdev; 67 pdev = c->pdev;
276 if (!pdev) 68 if (!pdev)
277 continue; 69 continue;
278
279 mmc_pdata = pdev->dev.platform_data;
280 if (!mmc_pdata)
281 continue;
282
283 if (c->cover_only) {
284 /* detect if mobile phone cover removed */
285 mmc_pdata->gpio_cd = -EINVAL;
286 mmc_pdata->gpio_cod = c->gpio_cd;
287 } else {
288 /* card detect pin on the mmc socket itself */
289 mmc_pdata->gpio_cd = c->gpio_cd;
290 mmc_pdata->gpio_cod = -EINVAL;
291 }
292 mmc_pdata->gpio_wp = c->gpio_wp;
293
294 res = omap_device_register(pdev); 70 res = omap_device_register(pdev);
295 if (res) 71 if (res)
296 pr_err("Could not late init MMC %s\n", 72 pr_err("Could not late init MMC\n");
297 c->name);
298 } 73 }
299} 74}
300 75
@@ -336,13 +111,6 @@ static void __init omap_hsmmc_init_one(struct omap2_hsmmc_info *hsmmcinfo,
336 if (oh->dev_attr != NULL) { 111 if (oh->dev_attr != NULL) {
337 mmc_dev_attr = oh->dev_attr; 112 mmc_dev_attr = oh->dev_attr;
338 mmc_data->controller_flags = mmc_dev_attr->flags; 113 mmc_data->controller_flags = mmc_dev_attr->flags;
339 /*
340 * erratum 2.1.1.128 doesn't apply if board has
341 * a transceiver is attached
342 */
343 if (hsmmcinfo->transceiver)
344 mmc_data->controller_flags &=
345 ~OMAP_HSMMC_BROKEN_MULTIBLOCK_READ;
346 } 114 }
347 115
348 pdev = platform_device_alloc(name, ctrl_nr - 1); 116 pdev = platform_device_alloc(name, ctrl_nr - 1);
@@ -367,9 +135,6 @@ static void __init omap_hsmmc_init_one(struct omap2_hsmmc_info *hsmmcinfo,
367 135
368 hsmmcinfo->pdev = pdev; 136 hsmmcinfo->pdev = pdev;
369 137
370 if (hsmmcinfo->deferred)
371 goto free_mmc;
372
373 res = omap_device_register(pdev); 138 res = omap_device_register(pdev);
374 if (res) { 139 if (res) {
375 pr_err("Could not register od for %s\n", name); 140 pr_err("Could not register od for %s\n", name);
diff --git a/arch/arm/mach-omap2/hsmmc.h b/arch/arm/mach-omap2/hsmmc.h
index 69b619ddc765..af9af5094ec3 100644
--- a/arch/arm/mach-omap2/hsmmc.h
+++ b/arch/arm/mach-omap2/hsmmc.h
@@ -12,18 +12,9 @@ struct omap2_hsmmc_info {
12 u8 mmc; /* controller 1/2/3 */ 12 u8 mmc; /* controller 1/2/3 */
13 u32 caps; /* 4/8 wires and any additional host 13 u32 caps; /* 4/8 wires and any additional host
14 * capabilities OR'd (ref. linux/mmc/host.h) */ 14 * capabilities OR'd (ref. linux/mmc/host.h) */
15 bool transceiver; /* MMC-2 option */
16 bool ext_clock; /* use external pin for input clock */
17 bool cover_only; /* No card detect - just cover switch */
18 bool nonremovable; /* Nonremovable e.g. eMMC */
19 bool deferred; /* mmc needs a deferred probe */
20 int gpio_cd; /* or -EINVAL */ 15 int gpio_cd; /* or -EINVAL */
21 int gpio_wp; /* or -EINVAL */ 16 int gpio_wp; /* or -EINVAL */
22 char *name; /* or NULL for default */
23 struct platform_device *pdev; /* mmc controller instance */ 17 struct platform_device *pdev; /* mmc controller instance */
24 int ocr_mask; /* temporary HACK */
25 /* Remux (pad configuration) when powering on/off */
26 void (*remux)(struct device *dev, int power_on);
27 /* init some special card */ 18 /* init some special card */
28 void (*init_card)(struct mmc_card *card); 19 void (*init_card)(struct mmc_card *card);
29}; 20};
diff --git a/arch/arm/mach-omap2/io.c b/arch/arm/mach-omap2/io.c
index 1d739d1a0a65..1cd20e4d56b0 100644
--- a/arch/arm/mach-omap2/io.c
+++ b/arch/arm/mach-omap2/io.c
@@ -410,7 +410,7 @@ static int _set_hwmod_postsetup_state(struct omap_hwmod *oh, void *data)
410 return omap_hwmod_set_postsetup_state(oh, *(u8 *)data); 410 return omap_hwmod_set_postsetup_state(oh, *(u8 *)data);
411} 411}
412 412
413static void __init omap_hwmod_init_postsetup(void) 413static void __init __maybe_unused omap_hwmod_init_postsetup(void)
414{ 414{
415 u8 postsetup_state; 415 u8 postsetup_state;
416 416
diff --git a/arch/arm/mach-omap2/pm34xx.c b/arch/arm/mach-omap2/pm34xx.c
index d44e0e2f1106..841ba19d64a6 100644
--- a/arch/arm/mach-omap2/pm34xx.c
+++ b/arch/arm/mach-omap2/pm34xx.c
@@ -486,7 +486,6 @@ int __init omap3_pm_init(void)
486 ret = request_irq(omap_prcm_event_to_irq("io"), 486 ret = request_irq(omap_prcm_event_to_irq("io"),
487 _prcm_int_handle_io, IRQF_SHARED | IRQF_NO_SUSPEND, "pm_io", 487 _prcm_int_handle_io, IRQF_SHARED | IRQF_NO_SUSPEND, "pm_io",
488 omap3_pm_init); 488 omap3_pm_init);
489 enable_irq(omap_prcm_event_to_irq("io"));
490 489
491 if (ret) { 490 if (ret) {
492 pr_err("pm: Failed to request pm_io irq\n"); 491 pr_err("pm: Failed to request pm_io irq\n");
diff --git a/arch/arm/mach-omap2/prm3xxx.c b/arch/arm/mach-omap2/prm3xxx.c
index 382e236fbfd9..64f6451499a7 100644
--- a/arch/arm/mach-omap2/prm3xxx.c
+++ b/arch/arm/mach-omap2/prm3xxx.c
@@ -692,7 +692,6 @@ static int omap3xxx_prm_late_init(void)
692{ 692{
693 struct device_node *np; 693 struct device_node *np;
694 int irq_num; 694 int irq_num;
695 int ret;
696 695
697 if (!(prm_features & PRM_HAS_IO_WAKEUP)) 696 if (!(prm_features & PRM_HAS_IO_WAKEUP))
698 return 0; 697 return 0;
@@ -712,12 +711,8 @@ static int omap3xxx_prm_late_init(void)
712 } 711 }
713 712
714 omap3xxx_prm_enable_io_wakeup(); 713 omap3xxx_prm_enable_io_wakeup();
715 ret = omap_prcm_register_chain_handler(&omap3_prcm_irq_setup);
716 if (!ret)
717 irq_set_status_flags(omap_prcm_event_to_irq("io"),
718 IRQ_NOAUTOEN);
719 714
720 return ret; 715 return omap_prcm_register_chain_handler(&omap3_prcm_irq_setup);
721} 716}
722 717
723static void __exit omap3xxx_prm_exit(void) 718static void __exit omap3xxx_prm_exit(void)
diff --git a/arch/arm/mach-omap2/prm44xx.c b/arch/arm/mach-omap2/prm44xx.c
index 87e86a4a9ead..3ab5df1ce900 100644
--- a/arch/arm/mach-omap2/prm44xx.c
+++ b/arch/arm/mach-omap2/prm44xx.c
@@ -337,6 +337,27 @@ static void omap44xx_prm_reconfigure_io_chain(void)
337} 337}
338 338
339/** 339/**
340 * omap44xx_prm_enable_io_wakeup - enable wakeup events from I/O wakeup latches
341 *
342 * Activates the I/O wakeup event latches and allows events logged by
343 * those latches to signal a wakeup event to the PRCM. For I/O wakeups
344 * to occur, WAKEUPENABLE bits must be set in the pad mux registers, and
345 * omap44xx_prm_reconfigure_io_chain() must be called. No return value.
346 */
347static void __init omap44xx_prm_enable_io_wakeup(void)
348{
349 s32 inst = omap4_prmst_get_prm_dev_inst();
350
351 if (inst == PRM_INSTANCE_UNKNOWN)
352 return;
353
354 omap4_prm_rmw_inst_reg_bits(OMAP4430_GLOBAL_WUEN_MASK,
355 OMAP4430_GLOBAL_WUEN_MASK,
356 inst,
357 omap4_prcm_irq_setup.pm_ctrl);
358}
359
360/**
340 * omap44xx_prm_read_reset_sources - return the last SoC reset source 361 * omap44xx_prm_read_reset_sources - return the last SoC reset source
341 * 362 *
342 * Return a u32 representing the last reset sources of the SoC. The 363 * Return a u32 representing the last reset sources of the SoC. The
@@ -668,6 +689,8 @@ struct pwrdm_ops omap4_pwrdm_operations = {
668 .pwrdm_has_voltdm = omap4_check_vcvp, 689 .pwrdm_has_voltdm = omap4_check_vcvp,
669}; 690};
670 691
692static int omap44xx_prm_late_init(void);
693
671/* 694/*
672 * XXX document 695 * XXX document
673 */ 696 */
@@ -675,6 +698,7 @@ static struct prm_ll_data omap44xx_prm_ll_data = {
675 .read_reset_sources = &omap44xx_prm_read_reset_sources, 698 .read_reset_sources = &omap44xx_prm_read_reset_sources,
676 .was_any_context_lost_old = &omap44xx_prm_was_any_context_lost_old, 699 .was_any_context_lost_old = &omap44xx_prm_was_any_context_lost_old,
677 .clear_context_loss_flags_old = &omap44xx_prm_clear_context_loss_flags_old, 700 .clear_context_loss_flags_old = &omap44xx_prm_clear_context_loss_flags_old,
701 .late_init = &omap44xx_prm_late_init,
678 .assert_hardreset = omap4_prminst_assert_hardreset, 702 .assert_hardreset = omap4_prminst_assert_hardreset,
679 .deassert_hardreset = omap4_prminst_deassert_hardreset, 703 .deassert_hardreset = omap4_prminst_deassert_hardreset,
680 .is_hardreset_asserted = omap4_prminst_is_hardreset_asserted, 704 .is_hardreset_asserted = omap4_prminst_is_hardreset_asserted,
@@ -711,6 +735,37 @@ int __init omap44xx_prm_init(const struct omap_prcm_init_data *data)
711 return prm_register(&omap44xx_prm_ll_data); 735 return prm_register(&omap44xx_prm_ll_data);
712} 736}
713 737
738static int omap44xx_prm_late_init(void)
739{
740 int irq_num;
741
742 if (!(prm_features & PRM_HAS_IO_WAKEUP))
743 return 0;
744
745 irq_num = of_irq_get(prm_init_data->np, 0);
746 /*
747 * Already have OMAP4 IRQ num. For all other platforms, we need
748 * IRQ numbers from DT
749 */
750 if (irq_num < 0 && !(prm_init_data->flags & PRM_IRQ_DEFAULT)) {
751 if (irq_num == -EPROBE_DEFER)
752 return irq_num;
753
754 /* Have nothing to do */
755 return 0;
756 }
757
758 /* Once OMAP4 DT is filled as well */
759 if (irq_num >= 0) {
760 omap4_prcm_irq_setup.irq = irq_num;
761 omap4_prcm_irq_setup.xlate_irq = NULL;
762 }
763
764 omap44xx_prm_enable_io_wakeup();
765
766 return omap_prcm_register_chain_handler(&omap4_prcm_irq_setup);
767}
768
714static void __exit omap44xx_prm_exit(void) 769static void __exit omap44xx_prm_exit(void)
715{ 770{
716 prm_unregister(&omap44xx_prm_ll_data); 771 prm_unregister(&omap44xx_prm_ll_data);
diff --git a/arch/arm/mach-prima2/common.c b/arch/arm/mach-prima2/common.c
index 8cadb302a7d2..ffe05c27087e 100644
--- a/arch/arm/mach-prima2/common.c
+++ b/arch/arm/mach-prima2/common.c
@@ -15,7 +15,7 @@
15#include <linux/of_platform.h> 15#include <linux/of_platform.h>
16#include "common.h" 16#include "common.h"
17 17
18static void __init sirfsoc_init_late(void) 18static void __init __maybe_unused sirfsoc_init_late(void)
19{ 19{
20 sirfsoc_pm_init(); 20 sirfsoc_pm_init();
21} 21}
diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
index 76fbc115ec33..ce7d97babb0f 100644
--- a/arch/arm/mach-pxa/Kconfig
+++ b/arch/arm/mach-pxa/Kconfig
@@ -566,6 +566,7 @@ config MACH_ICONTROL
566config ARCH_PXA_ESERIES 566config ARCH_PXA_ESERIES
567 bool "PXA based Toshiba e-series PDAs" 567 bool "PXA based Toshiba e-series PDAs"
568 select FB_W100 568 select FB_W100
569 select FB
569 select PXA25x 570 select PXA25x
570 571
571config MACH_E330 572config MACH_E330
diff --git a/arch/arm/mach-pxa/include/mach/mtd-xip.h b/arch/arm/mach-pxa/include/mach/mtd-xip.h
index 990d2bf2fb45..9bf4ea6a6f74 100644
--- a/arch/arm/mach-pxa/include/mach/mtd-xip.h
+++ b/arch/arm/mach-pxa/include/mach/mtd-xip.h
@@ -17,11 +17,15 @@
17 17
18#include <mach/regs-ost.h> 18#include <mach/regs-ost.h>
19 19
20#define xip_irqpending() (ICIP & ICMR) 20/* restored July 2017, this did not build since 2011! */
21
22#define ICIP io_p2v(0x40d00000)
23#define ICMR io_p2v(0x40d00004)
24#define xip_irqpending() (readl(ICIP) & readl(ICMR))
21 25
22/* we sample OSCR and convert desired delta to usec (1/4 ~= 1000000/3686400) */ 26/* we sample OSCR and convert desired delta to usec (1/4 ~= 1000000/3686400) */
23#define xip_currtime() (OSCR) 27#define xip_currtime() readl(OSCR)
24#define xip_elapsed_since(x) (signed)((OSCR - (x)) / 4) 28#define xip_elapsed_since(x) (signed)((readl(OSCR) - (x)) / 4)
25 29
26/* 30/*
27 * xip_cpu_idle() is used when waiting for a delay equal or larger than 31 * xip_cpu_idle() is used when waiting for a delay equal or larger than
diff --git a/arch/arm/mach-rpc/include/mach/hardware.h b/arch/arm/mach-rpc/include/mach/hardware.h
index aa79fa47373a..622d4e5df029 100644
--- a/arch/arm/mach-rpc/include/mach/hardware.h
+++ b/arch/arm/mach-rpc/include/mach/hardware.h
@@ -25,8 +25,8 @@
25 * *_SIZE is the size of the region 25 * *_SIZE is the size of the region
26 * *_BASE is the virtual address 26 * *_BASE is the virtual address
27 */ 27 */
28#define RAM_SIZE 0x10000000 28#define RPC_RAM_SIZE 0x10000000
29#define RAM_START 0x10000000 29#define RPC_RAM_START 0x10000000
30 30
31#define EASI_SIZE 0x08000000 /* EASI I/O */ 31#define EASI_SIZE 0x08000000 /* EASI I/O */
32#define EASI_START 0x08000000 32#define EASI_START 0x08000000
diff --git a/arch/arm/mach-sa1100/clock.c b/arch/arm/mach-sa1100/clock.c
index 0db46895c82a..7d52cd97d96e 100644
--- a/arch/arm/mach-sa1100/clock.c
+++ b/arch/arm/mach-sa1100/clock.c
@@ -35,6 +35,31 @@ struct clk clk_##_name = { \
35 35
36static DEFINE_SPINLOCK(clocks_lock); 36static DEFINE_SPINLOCK(clocks_lock);
37 37
38/* Dummy clk routine to build generic kernel parts that may be using them */
39long clk_round_rate(struct clk *clk, unsigned long rate)
40{
41 return clk_get_rate(clk);
42}
43EXPORT_SYMBOL(clk_round_rate);
44
45int clk_set_rate(struct clk *clk, unsigned long rate)
46{
47 return 0;
48}
49EXPORT_SYMBOL(clk_set_rate);
50
51int clk_set_parent(struct clk *clk, struct clk *parent)
52{
53 return 0;
54}
55EXPORT_SYMBOL(clk_set_parent);
56
57struct clk *clk_get_parent(struct clk *clk)
58{
59 return NULL;
60}
61EXPORT_SYMBOL(clk_get_parent);
62
38static void clk_gpio27_enable(struct clk *clk) 63static void clk_gpio27_enable(struct clk *clk)
39{ 64{
40 /* 65 /*
diff --git a/arch/arm/mach-sa1100/include/mach/mtd-xip.h b/arch/arm/mach-sa1100/include/mach/mtd-xip.h
index b3d684098fbf..cb76096a2e36 100644
--- a/arch/arm/mach-sa1100/include/mach/mtd-xip.h
+++ b/arch/arm/mach-sa1100/include/mach/mtd-xip.h
@@ -20,7 +20,7 @@
20#define xip_irqpending() (ICIP & ICMR) 20#define xip_irqpending() (ICIP & ICMR)
21 21
22/* we sample OSCR and convert desired delta to usec (1/4 ~= 1000000/3686400) */ 22/* we sample OSCR and convert desired delta to usec (1/4 ~= 1000000/3686400) */
23#define xip_currtime() (OSCR) 23#define xip_currtime() readl_relaxed(OSCR)
24#define xip_elapsed_since(x) (signed)((OSCR - (x)) / 4) 24#define xip_elapsed_since(x) (signed)((readl_relaxed(OSCR) - (x)) / 4)
25 25
26#endif /* __ARCH_SA1100_MTD_XIP_H__ */ 26#endif /* __ARCH_SA1100_MTD_XIP_H__ */
diff --git a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
index 73e3adbc1330..44438f344dc8 100644
--- a/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
+++ b/arch/arm/mach-shmobile/regulator-quirk-rcar-gen2.c
@@ -67,8 +67,12 @@ static int regulator_quirk_notify(struct notifier_block *nb,
67{ 67{
68 struct device *dev = data; 68 struct device *dev = data;
69 struct i2c_client *client; 69 struct i2c_client *client;
70 static bool done;
70 u32 mon; 71 u32 mon;
71 72
73 if (done)
74 return 0;
75
72 mon = ioread32(irqc + IRQC_MONITOR); 76 mon = ioread32(irqc + IRQC_MONITOR);
73 dev_dbg(dev, "%s: %ld, IRQC_MONITOR = 0x%x\n", __func__, action, mon); 77 dev_dbg(dev, "%s: %ld, IRQC_MONITOR = 0x%x\n", __func__, action, mon);
74 if (mon & REGULATOR_IRQ_MASK) 78 if (mon & REGULATOR_IRQ_MASK)
@@ -99,7 +103,7 @@ static int regulator_quirk_notify(struct notifier_block *nb,
99remove: 103remove:
100 dev_info(dev, "IRQ2 is not asserted, removing quirk\n"); 104 dev_info(dev, "IRQ2 is not asserted, removing quirk\n");
101 105
102 bus_unregister_notifier(&i2c_bus_type, nb); 106 done = true;
103 iounmap(irqc); 107 iounmap(irqc);
104 return 0; 108 return 0;
105} 109}
diff --git a/arch/arm/mach-ux500/cpu-db8500.c b/arch/arm/mach-ux500/cpu-db8500.c
index 28083ef72819..71a34e8c345a 100644
--- a/arch/arm/mach-ux500/cpu-db8500.c
+++ b/arch/arm/mach-ux500/cpu-db8500.c
@@ -133,6 +133,7 @@ static irqreturn_t db8500_pmu_handler(int irq, void *dev, irq_handler_t handler)
133 133
134static struct arm_pmu_platdata db8500_pmu_platdata = { 134static struct arm_pmu_platdata db8500_pmu_platdata = {
135 .handle_irq = db8500_pmu_handler, 135 .handle_irq = db8500_pmu_handler,
136 .irq_flags = IRQF_NOBALANCING | IRQF_NO_THREAD,
136}; 137};
137 138
138static struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = { 139static struct of_dev_auxdata u8500_auxdata_lookup[] __initdata = {
diff --git a/arch/arm/mach-w90x900/clock.c b/arch/arm/mach-w90x900/clock.c
index ac6fd1a2cb59..3f93fac98d97 100644
--- a/arch/arm/mach-w90x900/clock.c
+++ b/arch/arm/mach-w90x900/clock.c
@@ -93,3 +93,32 @@ void nuc900_subclk_enable(struct clk *clk, int enable)
93 93
94 __raw_writel(clken, W90X900_VA_CLKPWR + SUBCLK); 94 __raw_writel(clken, W90X900_VA_CLKPWR + SUBCLK);
95} 95}
96
97/* dummy functions, should not be called */
98long clk_round_rate(struct clk *clk, unsigned long rate)
99{
100 WARN_ON(clk);
101 return 0;
102}
103EXPORT_SYMBOL(clk_round_rate);
104
105int clk_set_rate(struct clk *clk, unsigned long rate)
106{
107 WARN_ON(clk);
108 return 0;
109}
110EXPORT_SYMBOL(clk_set_rate);
111
112int clk_set_parent(struct clk *clk, struct clk *parent)
113{
114 WARN_ON(clk);
115 return 0;
116}
117EXPORT_SYMBOL(clk_set_parent);
118
119struct clk *clk_get_parent(struct clk *clk)
120{
121 WARN_ON(clk);
122 return NULL;
123}
124EXPORT_SYMBOL(clk_get_parent);
diff --git a/arch/arm/mm/dma-mapping-nommu.c b/arch/arm/mm/dma-mapping-nommu.c
index 90ee354d803e..6db5fc26d154 100644
--- a/arch/arm/mm/dma-mapping-nommu.c
+++ b/arch/arm/mm/dma-mapping-nommu.c
@@ -40,9 +40,21 @@ static void *arm_nommu_dma_alloc(struct device *dev, size_t size,
40 40
41{ 41{
42 const struct dma_map_ops *ops = &dma_noop_ops; 42 const struct dma_map_ops *ops = &dma_noop_ops;
43 void *ret;
43 44
44 /* 45 /*
45 * We are here because: 46 * Try generic allocator first if we are advertised that
47 * consistency is not required.
48 */
49
50 if (attrs & DMA_ATTR_NON_CONSISTENT)
51 return ops->alloc(dev, size, dma_handle, gfp, attrs);
52
53 ret = dma_alloc_from_global_coherent(size, dma_handle);
54
55 /*
56 * dma_alloc_from_global_coherent() may fail because:
57 *
46 * - no consistent DMA region has been defined, so we can't 58 * - no consistent DMA region has been defined, so we can't
47 * continue. 59 * continue.
48 * - there is no space left in consistent DMA region, so we 60 * - there is no space left in consistent DMA region, so we
@@ -50,11 +62,8 @@ static void *arm_nommu_dma_alloc(struct device *dev, size_t size,
50 * advertised that consistency is not required. 62 * advertised that consistency is not required.
51 */ 63 */
52 64
53 if (attrs & DMA_ATTR_NON_CONSISTENT) 65 WARN_ON_ONCE(ret == NULL);
54 return ops->alloc(dev, size, dma_handle, gfp, attrs); 66 return ret;
55
56 WARN_ON_ONCE(1);
57 return NULL;
58} 67}
59 68
60static void arm_nommu_dma_free(struct device *dev, size_t size, 69static void arm_nommu_dma_free(struct device *dev, size_t size,
@@ -63,14 +72,31 @@ static void arm_nommu_dma_free(struct device *dev, size_t size,
63{ 72{
64 const struct dma_map_ops *ops = &dma_noop_ops; 73 const struct dma_map_ops *ops = &dma_noop_ops;
65 74
66 if (attrs & DMA_ATTR_NON_CONSISTENT) 75 if (attrs & DMA_ATTR_NON_CONSISTENT) {
67 ops->free(dev, size, cpu_addr, dma_addr, attrs); 76 ops->free(dev, size, cpu_addr, dma_addr, attrs);
68 else 77 } else {
69 WARN_ON_ONCE(1); 78 int ret = dma_release_from_global_coherent(get_order(size),
79 cpu_addr);
80
81 WARN_ON_ONCE(ret == 0);
82 }
70 83
71 return; 84 return;
72} 85}
73 86
87static int arm_nommu_dma_mmap(struct device *dev, struct vm_area_struct *vma,
88 void *cpu_addr, dma_addr_t dma_addr, size_t size,
89 unsigned long attrs)
90{
91 int ret;
92
93 if (dma_mmap_from_global_coherent(vma, cpu_addr, size, &ret))
94 return ret;
95
96 return dma_common_mmap(dev, vma, cpu_addr, dma_addr, size);
97}
98
99
74static void __dma_page_cpu_to_dev(phys_addr_t paddr, size_t size, 100static void __dma_page_cpu_to_dev(phys_addr_t paddr, size_t size,
75 enum dma_data_direction dir) 101 enum dma_data_direction dir)
76{ 102{
@@ -173,6 +199,7 @@ static void arm_nommu_dma_sync_sg_for_cpu(struct device *dev, struct scatterlist
173const struct dma_map_ops arm_nommu_dma_ops = { 199const struct dma_map_ops arm_nommu_dma_ops = {
174 .alloc = arm_nommu_dma_alloc, 200 .alloc = arm_nommu_dma_alloc,
175 .free = arm_nommu_dma_free, 201 .free = arm_nommu_dma_free,
202 .mmap = arm_nommu_dma_mmap,
176 .map_page = arm_nommu_dma_map_page, 203 .map_page = arm_nommu_dma_map_page,
177 .unmap_page = arm_nommu_dma_unmap_page, 204 .unmap_page = arm_nommu_dma_unmap_page,
178 .map_sg = arm_nommu_dma_map_sg, 205 .map_sg = arm_nommu_dma_map_sg,
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c
index e7380bafbfa6..fcf1473d6fed 100644
--- a/arch/arm/mm/dma-mapping.c
+++ b/arch/arm/mm/dma-mapping.c
@@ -851,7 +851,7 @@ static int __arm_dma_mmap(struct device *dev, struct vm_area_struct *vma,
851 unsigned long pfn = dma_to_pfn(dev, dma_addr); 851 unsigned long pfn = dma_to_pfn(dev, dma_addr);
852 unsigned long off = vma->vm_pgoff; 852 unsigned long off = vma->vm_pgoff;
853 853
854 if (dma_mmap_from_coherent(dev, vma, cpu_addr, size, &ret)) 854 if (dma_mmap_from_dev_coherent(dev, vma, cpu_addr, size, &ret))
855 return ret; 855 return ret;
856 856
857 if (off < nr_pages && nr_vma_pages <= (nr_pages - off)) { 857 if (off < nr_pages && nr_vma_pages <= (nr_pages - off)) {
diff --git a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
index 9d00622ce845..bd0f33b77f57 100644
--- a/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
+++ b/arch/arm64/boot/dts/allwinner/sun50i-a64.dtsi
@@ -452,7 +452,7 @@
452 emac: ethernet@1c30000 { 452 emac: ethernet@1c30000 {
453 compatible = "allwinner,sun50i-a64-emac"; 453 compatible = "allwinner,sun50i-a64-emac";
454 syscon = <&syscon>; 454 syscon = <&syscon>;
455 reg = <0x01c30000 0x100>; 455 reg = <0x01c30000 0x10000>;
456 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>; 456 interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
457 interrupt-names = "macirq"; 457 interrupt-names = "macirq";
458 resets = <&ccu RST_BUS_EMAC>; 458 resets = <&ccu RST_BUS_EMAC>;
diff --git a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
index 35b8c88c3220..738ed689ff69 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
+++ b/arch/arm64/boot/dts/amlogic/meson-gx.dtsi
@@ -400,7 +400,7 @@
400 }; 400 };
401 401
402 pwm_AO_ab: pwm@550 { 402 pwm_AO_ab: pwm@550 {
403 compatible = "amlogic,meson-gx-pwm", "amlogic,meson-gxbb-pwm"; 403 compatible = "amlogic,meson-gx-ao-pwm", "amlogic,meson-gxbb-ao-pwm";
404 reg = <0x0 0x00550 0x0 0x10>; 404 reg = <0x0 0x00550 0x0 0x10>;
405 #pwm-cells = <3>; 405 #pwm-cells = <3>;
406 status = "disabled"; 406 status = "disabled";
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
index 72c5a9f64ca8..94567eb17875 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-khadas-vim.dts
@@ -109,8 +109,8 @@
109 status = "okay"; 109 status = "okay";
110 pinctrl-0 = <&pwm_ao_a_3_pins>, <&pwm_ao_b_pins>; 110 pinctrl-0 = <&pwm_ao_a_3_pins>, <&pwm_ao_b_pins>;
111 pinctrl-names = "default"; 111 pinctrl-names = "default";
112 clocks = <&clkc CLKID_FCLK_DIV4>; 112 clocks = <&xtal> , <&xtal>;
113 clock-names = "clkin0"; 113 clock-names = "clkin0", "clkin1" ;
114}; 114};
115 115
116&pwm_ef { 116&pwm_ef {
diff --git a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
index 890821d6e52b..266fbcf3e47f 100644
--- a/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
+++ b/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-libretech-cc.dts
@@ -10,12 +10,20 @@
10 10
11#include <dt-bindings/input/input.h> 11#include <dt-bindings/input/input.h>
12 12
13#include "meson-gxl-s905x-p212.dtsi" 13#include "meson-gxl-s905x.dtsi"
14 14
15/ { 15/ {
16 compatible = "libretech,cc", "amlogic,s905x", "amlogic,meson-gxl"; 16 compatible = "libretech,cc", "amlogic,s905x", "amlogic,meson-gxl";
17 model = "Libre Technology CC"; 17 model = "Libre Technology CC";
18 18
19 aliases {
20 serial0 = &uart_AO;
21 };
22
23 chosen {
24 stdout-path = "serial0:115200n8";
25 };
26
19 cvbs-connector { 27 cvbs-connector {
20 compatible = "composite-video-connector"; 28 compatible = "composite-video-connector";
21 29
@@ -26,6 +34,11 @@
26 }; 34 };
27 }; 35 };
28 36
37 emmc_pwrseq: emmc-pwrseq {
38 compatible = "mmc-pwrseq-emmc";
39 reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
40 };
41
29 hdmi-connector { 42 hdmi-connector {
30 compatible = "hdmi-connector"; 43 compatible = "hdmi-connector";
31 type = "a"; 44 type = "a";
@@ -53,6 +66,39 @@
53 linux,default-trigger = "heartbeat"; 66 linux,default-trigger = "heartbeat";
54 }; 67 };
55 }; 68 };
69
70 memory@0 {
71 device_type = "memory";
72 reg = <0x0 0x0 0x0 0x80000000>;
73 };
74
75 vcc_3v3: regulator-vcc_3v3 {
76 compatible = "regulator-fixed";
77 regulator-name = "VCC_3V3";
78 regulator-min-microvolt = <3300000>;
79 regulator-max-microvolt = <3300000>;
80 };
81
82 vcc_card: regulator-vcc-card {
83 compatible = "regulator-gpio";
84
85 regulator-name = "VCC_CARD";
86 regulator-min-microvolt = <1800000>;
87 regulator-max-microvolt = <3300000>;
88
89 gpios = <&gpio_ao GPIOAO_3 GPIO_ACTIVE_HIGH>;
90 gpios-states = <0>;
91
92 states = <3300000 0>,
93 <1800000 1>;
94 };
95
96 vddio_boot: regulator-vddio_boot {
97 compatible = "regulator-fixed";
98 regulator-name = "VDDIO_BOOT";
99 regulator-min-microvolt = <3300000>;
100 regulator-max-microvolt = <3300000>;
101 };
56}; 102};
57 103
58&cvbs_vdac_port { 104&cvbs_vdac_port {
@@ -61,6 +107,16 @@
61 }; 107 };
62}; 108};
63 109
110&ethmac {
111 status = "okay";
112};
113
114&ir {
115 status = "okay";
116 pinctrl-0 = <&remote_input_ao_pins>;
117 pinctrl-names = "default";
118};
119
64&hdmi_tx { 120&hdmi_tx {
65 status = "okay"; 121 status = "okay";
66 pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>; 122 pinctrl-0 = <&hdmi_hpd_pins>, <&hdmi_i2c_pins>;
@@ -73,20 +129,43 @@
73 }; 129 };
74}; 130};
75 131
76/* 132/* SD card */
77 * The following devices exists but are exposed on the general 133&sd_emmc_b {
78 * purpose GPIO header. End user may well decide to use those pins 134 status = "okay";
79 * for another purpose 135 pinctrl-0 = <&sdcard_pins>;
80 */ 136 pinctrl-names = "default";
137
138 bus-width = <4>;
139 cap-sd-highspeed;
140 max-frequency = <100000000>;
141 disable-wp;
142
143 cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
144 cd-inverted;
81 145
82&sd_emmc_a { 146 vmmc-supply = <&vcc_3v3>;
83 status = "disabled"; 147 vqmmc-supply = <&vcc_card>;
84}; 148};
85 149
86&uart_A { 150/* eMMC */
87 status = "disabled"; 151&sd_emmc_c {
152 status = "okay";
153 pinctrl-0 = <&emmc_pins>;
154 pinctrl-names = "default";
155
156 bus-width = <8>;
157 cap-mmc-highspeed;
158 max-frequency = <50000000>;
159 non-removable;
160 disable-wp;
161
162 mmc-pwrseq = <&emmc_pwrseq>;
163 vmmc-supply = <&vcc_3v3>;
164 vqmmc-supply = <&vddio_boot>;
88}; 165};
89 166
90&wifi32k { 167&uart_AO {
91 status = "disabled"; 168 status = "okay";
169 pinctrl-0 = <&uart_ao_a_pins>;
170 pinctrl-names = "default";
92}; 171};
diff --git a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
index dbcc3d4e2ed5..51763d674050 100644
--- a/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-37xx.dtsi
@@ -219,7 +219,7 @@
219 reg = <0x18800 0x100>, <0x18C00 0x20>; 219 reg = <0x18800 0x100>, <0x18C00 0x20>;
220 gpiosb: gpio { 220 gpiosb: gpio {
221 #gpio-cells = <2>; 221 #gpio-cells = <2>;
222 gpio-ranges = <&pinctrl_sb 0 0 29>; 222 gpio-ranges = <&pinctrl_sb 0 0 30>;
223 gpio-controller; 223 gpio-controller;
224 interrupts = 224 interrupts =
225 <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>, 225 <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
diff --git a/arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi b/arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi
index 726528ce54e9..4c68605675a8 100644
--- a/arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-cp110-master.dtsi
@@ -270,6 +270,7 @@
270 interrupt-names = "mem", "ring0", "ring1", 270 interrupt-names = "mem", "ring0", "ring1",
271 "ring2", "ring3", "eip"; 271 "ring2", "ring3", "eip";
272 clocks = <&cpm_clk 1 26>; 272 clocks = <&cpm_clk 1 26>;
273 dma-coherent;
273 }; 274 };
274 }; 275 };
275 276
diff --git a/arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi b/arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi
index 95f8e5f607f6..923f354b02f0 100644
--- a/arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi
+++ b/arch/arm64/boot/dts/marvell/armada-cp110-slave.dtsi
@@ -64,7 +64,7 @@
64 compatible = "marvell,armada-8k-rtc"; 64 compatible = "marvell,armada-8k-rtc";
65 reg = <0x284000 0x20>, <0x284080 0x24>; 65 reg = <0x284000 0x20>, <0x284080 0x24>;
66 reg-names = "rtc", "rtc-soc"; 66 reg-names = "rtc", "rtc-soc";
67 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>; 67 interrupts = <ICU_GRP_NSR 77 IRQ_TYPE_LEVEL_HIGH>;
68 }; 68 };
69 69
70 cps_ethernet: ethernet@0 { 70 cps_ethernet: ethernet@0 {
@@ -261,6 +261,7 @@
261 interrupt-names = "mem", "ring0", "ring1", 261 interrupt-names = "mem", "ring0", "ring1",
262 "ring2", "ring3", "eip"; 262 "ring2", "ring3", "eip";
263 clocks = <&cps_clk 1 26>; 263 clocks = <&cps_clk 1 26>;
264 dma-coherent;
264 /* 265 /*
265 * The cryptographic engine found on the cp110 266 * The cryptographic engine found on the cp110
266 * master is enabled by default at the SoC 267 * master is enabled by default at the SoC
diff --git a/arch/arm64/boot/dts/renesas/salvator-common.dtsi b/arch/arm64/boot/dts/renesas/salvator-common.dtsi
index aef35e0b685a..a451996f590a 100644
--- a/arch/arm64/boot/dts/renesas/salvator-common.dtsi
+++ b/arch/arm64/boot/dts/renesas/salvator-common.dtsi
@@ -508,7 +508,7 @@
508 508
509 /* audio_clkout0/1/2/3 */ 509 /* audio_clkout0/1/2/3 */
510 #clock-cells = <1>; 510 #clock-cells = <1>;
511 clock-frequency = <11289600 12288000>; 511 clock-frequency = <12288000 11289600>;
512 512
513 status = "okay"; 513 status = "okay";
514 514
diff --git a/arch/arm64/boot/dts/renesas/ulcb.dtsi b/arch/arm64/boot/dts/renesas/ulcb.dtsi
index b5c6ee07d7f9..d1a3f3b7a0ab 100644
--- a/arch/arm64/boot/dts/renesas/ulcb.dtsi
+++ b/arch/arm64/boot/dts/renesas/ulcb.dtsi
@@ -281,7 +281,7 @@
281 281
282 /* audio_clkout0/1/2/3 */ 282 /* audio_clkout0/1/2/3 */
283 #clock-cells = <1>; 283 #clock-cells = <1>;
284 clock-frequency = <11289600 12288000>; 284 clock-frequency = <12288000 11289600>;
285 285
286 status = "okay"; 286 status = "okay";
287 287
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 6c7d147eed54..b4ca115b3be1 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -476,6 +476,7 @@ CONFIG_QCOM_CLK_SMD_RPM=y
476CONFIG_MSM_GCC_8916=y 476CONFIG_MSM_GCC_8916=y
477CONFIG_MSM_GCC_8994=y 477CONFIG_MSM_GCC_8994=y
478CONFIG_MSM_MMCC_8996=y 478CONFIG_MSM_MMCC_8996=y
479CONFIG_HWSPINLOCK=y
479CONFIG_HWSPINLOCK_QCOM=y 480CONFIG_HWSPINLOCK_QCOM=y
480CONFIG_ARM_MHU=y 481CONFIG_ARM_MHU=y
481CONFIG_PLATFORM_MHU=y 482CONFIG_PLATFORM_MHU=y
diff --git a/arch/arm64/include/asm/atomic_lse.h b/arch/arm64/include/asm/atomic_lse.h
index 99fa69c9c3cf..9ef0797380cb 100644
--- a/arch/arm64/include/asm/atomic_lse.h
+++ b/arch/arm64/include/asm/atomic_lse.h
@@ -435,7 +435,7 @@ static inline long atomic64_dec_if_positive(atomic64_t *v)
435 " sub x30, x30, %[ret]\n" 435 " sub x30, x30, %[ret]\n"
436 " cbnz x30, 1b\n" 436 " cbnz x30, 1b\n"
437 "2:") 437 "2:")
438 : [ret] "+&r" (x0), [v] "+Q" (v->counter) 438 : [ret] "+r" (x0), [v] "+Q" (v->counter)
439 : 439 :
440 : __LL_SC_CLOBBERS, "cc", "memory"); 440 : __LL_SC_CLOBBERS, "cc", "memory");
441 441
diff --git a/arch/arm64/include/asm/memory.h b/arch/arm64/include/asm/memory.h
index 32f82723338a..ef39dcb9ca6a 100644
--- a/arch/arm64/include/asm/memory.h
+++ b/arch/arm64/include/asm/memory.h
@@ -64,8 +64,10 @@
64 * TASK_UNMAPPED_BASE - the lower boundary of the mmap VM area. 64 * TASK_UNMAPPED_BASE - the lower boundary of the mmap VM area.
65 */ 65 */
66#define VA_BITS (CONFIG_ARM64_VA_BITS) 66#define VA_BITS (CONFIG_ARM64_VA_BITS)
67#define VA_START (UL(0xffffffffffffffff) << VA_BITS) 67#define VA_START (UL(0xffffffffffffffff) - \
68#define PAGE_OFFSET (UL(0xffffffffffffffff) << (VA_BITS - 1)) 68 (UL(1) << VA_BITS) + 1)
69#define PAGE_OFFSET (UL(0xffffffffffffffff) - \
70 (UL(1) << (VA_BITS - 1)) + 1)
69#define KIMAGE_VADDR (MODULES_END) 71#define KIMAGE_VADDR (MODULES_END)
70#define MODULES_END (MODULES_VADDR + MODULES_VSIZE) 72#define MODULES_END (MODULES_VADDR + MODULES_VSIZE)
71#define MODULES_VADDR (VA_START + KASAN_SHADOW_SIZE) 73#define MODULES_VADDR (VA_START + KASAN_SHADOW_SIZE)
diff --git a/arch/arm64/include/asm/sysreg.h b/arch/arm64/include/asm/sysreg.h
index 16e44fa9b3b6..248339e4aaf5 100644
--- a/arch/arm64/include/asm/sysreg.h
+++ b/arch/arm64/include/asm/sysreg.h
@@ -492,7 +492,7 @@ asm(
492 * the "%x0" template means XZR. 492 * the "%x0" template means XZR.
493 */ 493 */
494#define write_sysreg(v, r) do { \ 494#define write_sysreg(v, r) do { \
495 u64 __val = (u64)v; \ 495 u64 __val = (u64)(v); \
496 asm volatile("msr " __stringify(r) ", %x0" \ 496 asm volatile("msr " __stringify(r) ", %x0" \
497 : : "rZ" (__val)); \ 497 : : "rZ" (__val)); \
498} while (0) 498} while (0)
@@ -508,7 +508,7 @@ asm(
508}) 508})
509 509
510#define write_sysreg_s(v, r) do { \ 510#define write_sysreg_s(v, r) do { \
511 u64 __val = (u64)v; \ 511 u64 __val = (u64)(v); \
512 asm volatile("msr_s " __stringify(r) ", %x0" : : "rZ" (__val)); \ 512 asm volatile("msr_s " __stringify(r) ", %x0" : : "rZ" (__val)); \
513} while (0) 513} while (0)
514 514
diff --git a/arch/arm64/include/asm/uaccess.h b/arch/arm64/include/asm/uaccess.h
index 8f0a1de11e4a..fab46a0ea223 100644
--- a/arch/arm64/include/asm/uaccess.h
+++ b/arch/arm64/include/asm/uaccess.h
@@ -69,7 +69,7 @@ static inline void set_fs(mm_segment_t fs)
69 */ 69 */
70#define __range_ok(addr, size) \ 70#define __range_ok(addr, size) \
71({ \ 71({ \
72 unsigned long __addr = (unsigned long __force)(addr); \ 72 unsigned long __addr = (unsigned long)(addr); \
73 unsigned long flag, roksum; \ 73 unsigned long flag, roksum; \
74 __chk_user_ptr(addr); \ 74 __chk_user_ptr(addr); \
75 asm("adds %1, %1, %3; ccmp %1, %4, #2, cc; cset %0, ls" \ 75 asm("adds %1, %1, %3; ccmp %1, %4, #2, cc; cset %0, ls" \
diff --git a/arch/arm64/kernel/cpu_ops.c b/arch/arm64/kernel/cpu_ops.c
index e137ceaf5016..d16978213c5b 100644
--- a/arch/arm64/kernel/cpu_ops.c
+++ b/arch/arm64/kernel/cpu_ops.c
@@ -82,8 +82,8 @@ static const char *__init cpu_read_enable_method(int cpu)
82 * Don't warn spuriously. 82 * Don't warn spuriously.
83 */ 83 */
84 if (cpu != 0) 84 if (cpu != 0)
85 pr_err("%s: missing enable-method property\n", 85 pr_err("%pOF: missing enable-method property\n",
86 dn->full_name); 86 dn);
87 } 87 }
88 } else { 88 } else {
89 enable_method = acpi_get_enable_method(cpu); 89 enable_method = acpi_get_enable_method(cpu);
diff --git a/arch/arm64/kernel/smp.c b/arch/arm64/kernel/smp.c
index 321119881abf..dc66e6ec3a99 100644
--- a/arch/arm64/kernel/smp.c
+++ b/arch/arm64/kernel/smp.c
@@ -469,7 +469,7 @@ static u64 __init of_get_cpu_mpidr(struct device_node *dn)
469 */ 469 */
470 cell = of_get_property(dn, "reg", NULL); 470 cell = of_get_property(dn, "reg", NULL);
471 if (!cell) { 471 if (!cell) {
472 pr_err("%s: missing reg property\n", dn->full_name); 472 pr_err("%pOF: missing reg property\n", dn);
473 return INVALID_HWID; 473 return INVALID_HWID;
474 } 474 }
475 475
@@ -478,7 +478,7 @@ static u64 __init of_get_cpu_mpidr(struct device_node *dn)
478 * Non affinity bits must be set to 0 in the DT 478 * Non affinity bits must be set to 0 in the DT
479 */ 479 */
480 if (hwid & ~MPIDR_HWID_BITMASK) { 480 if (hwid & ~MPIDR_HWID_BITMASK) {
481 pr_err("%s: invalid reg property\n", dn->full_name); 481 pr_err("%pOF: invalid reg property\n", dn);
482 return INVALID_HWID; 482 return INVALID_HWID;
483 } 483 }
484 return hwid; 484 return hwid;
@@ -627,8 +627,8 @@ static void __init of_parse_and_init_cpus(void)
627 goto next; 627 goto next;
628 628
629 if (is_mpidr_duplicate(cpu_count, hwid)) { 629 if (is_mpidr_duplicate(cpu_count, hwid)) {
630 pr_err("%s: duplicate cpu reg properties in the DT\n", 630 pr_err("%pOF: duplicate cpu reg properties in the DT\n",
631 dn->full_name); 631 dn);
632 goto next; 632 goto next;
633 } 633 }
634 634
@@ -640,8 +640,8 @@ static void __init of_parse_and_init_cpus(void)
640 */ 640 */
641 if (hwid == cpu_logical_map(0)) { 641 if (hwid == cpu_logical_map(0)) {
642 if (bootcpu_valid) { 642 if (bootcpu_valid) {
643 pr_err("%s: duplicate boot cpu reg property in DT\n", 643 pr_err("%pOF: duplicate boot cpu reg property in DT\n",
644 dn->full_name); 644 dn);
645 goto next; 645 goto next;
646 } 646 }
647 647
diff --git a/arch/arm64/kernel/topology.c b/arch/arm64/kernel/topology.c
index 79244c75eaec..8d48b233e6ce 100644
--- a/arch/arm64/kernel/topology.c
+++ b/arch/arm64/kernel/topology.c
@@ -45,7 +45,7 @@ static int __init get_cpu_for_node(struct device_node *node)
45 } 45 }
46 } 46 }
47 47
48 pr_crit("Unable to find CPU node for %s\n", cpu_node->full_name); 48 pr_crit("Unable to find CPU node for %pOF\n", cpu_node);
49 49
50 of_node_put(cpu_node); 50 of_node_put(cpu_node);
51 return -1; 51 return -1;
@@ -71,8 +71,8 @@ static int __init parse_core(struct device_node *core, int cluster_id,
71 cpu_topology[cpu].core_id = core_id; 71 cpu_topology[cpu].core_id = core_id;
72 cpu_topology[cpu].thread_id = i; 72 cpu_topology[cpu].thread_id = i;
73 } else { 73 } else {
74 pr_err("%s: Can't get CPU for thread\n", 74 pr_err("%pOF: Can't get CPU for thread\n",
75 t->full_name); 75 t);
76 of_node_put(t); 76 of_node_put(t);
77 return -EINVAL; 77 return -EINVAL;
78 } 78 }
@@ -84,15 +84,15 @@ static int __init parse_core(struct device_node *core, int cluster_id,
84 cpu = get_cpu_for_node(core); 84 cpu = get_cpu_for_node(core);
85 if (cpu >= 0) { 85 if (cpu >= 0) {
86 if (!leaf) { 86 if (!leaf) {
87 pr_err("%s: Core has both threads and CPU\n", 87 pr_err("%pOF: Core has both threads and CPU\n",
88 core->full_name); 88 core);
89 return -EINVAL; 89 return -EINVAL;
90 } 90 }
91 91
92 cpu_topology[cpu].cluster_id = cluster_id; 92 cpu_topology[cpu].cluster_id = cluster_id;
93 cpu_topology[cpu].core_id = core_id; 93 cpu_topology[cpu].core_id = core_id;
94 } else if (leaf) { 94 } else if (leaf) {
95 pr_err("%s: Can't get CPU for leaf core\n", core->full_name); 95 pr_err("%pOF: Can't get CPU for leaf core\n", core);
96 return -EINVAL; 96 return -EINVAL;
97 } 97 }
98 98
@@ -137,8 +137,8 @@ static int __init parse_cluster(struct device_node *cluster, int depth)
137 has_cores = true; 137 has_cores = true;
138 138
139 if (depth == 0) { 139 if (depth == 0) {
140 pr_err("%s: cpu-map children should be clusters\n", 140 pr_err("%pOF: cpu-map children should be clusters\n",
141 c->full_name); 141 c);
142 of_node_put(c); 142 of_node_put(c);
143 return -EINVAL; 143 return -EINVAL;
144 } 144 }
@@ -146,8 +146,8 @@ static int __init parse_cluster(struct device_node *cluster, int depth)
146 if (leaf) { 146 if (leaf) {
147 ret = parse_core(c, cluster_id, core_id++); 147 ret = parse_core(c, cluster_id, core_id++);
148 } else { 148 } else {
149 pr_err("%s: Non-leaf cluster with core %s\n", 149 pr_err("%pOF: Non-leaf cluster with core %s\n",
150 cluster->full_name, name); 150 cluster, name);
151 ret = -EINVAL; 151 ret = -EINVAL;
152 } 152 }
153 153
@@ -159,7 +159,7 @@ static int __init parse_cluster(struct device_node *cluster, int depth)
159 } while (c); 159 } while (c);
160 160
161 if (leaf && !has_cores) 161 if (leaf && !has_cores)
162 pr_warn("%s: empty cluster\n", cluster->full_name); 162 pr_warn("%pOF: empty cluster\n", cluster);
163 163
164 if (leaf) 164 if (leaf)
165 cluster_id++; 165 cluster_id++;
diff --git a/arch/arm64/kernel/traps.c b/arch/arm64/kernel/traps.c
index c7c7088097be..8a62648848e5 100644
--- a/arch/arm64/kernel/traps.c
+++ b/arch/arm64/kernel/traps.c
@@ -274,10 +274,12 @@ static DEFINE_RAW_SPINLOCK(die_lock);
274void die(const char *str, struct pt_regs *regs, int err) 274void die(const char *str, struct pt_regs *regs, int err)
275{ 275{
276 int ret; 276 int ret;
277 unsigned long flags;
278
279 raw_spin_lock_irqsave(&die_lock, flags);
277 280
278 oops_enter(); 281 oops_enter();
279 282
280 raw_spin_lock_irq(&die_lock);
281 console_verbose(); 283 console_verbose();
282 bust_spinlocks(1); 284 bust_spinlocks(1);
283 ret = __die(str, err, regs); 285 ret = __die(str, err, regs);
@@ -287,13 +289,15 @@ void die(const char *str, struct pt_regs *regs, int err)
287 289
288 bust_spinlocks(0); 290 bust_spinlocks(0);
289 add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE); 291 add_taint(TAINT_DIE, LOCKDEP_NOW_UNRELIABLE);
290 raw_spin_unlock_irq(&die_lock);
291 oops_exit(); 292 oops_exit();
292 293
293 if (in_interrupt()) 294 if (in_interrupt())
294 panic("Fatal exception in interrupt"); 295 panic("Fatal exception in interrupt");
295 if (panic_on_oops) 296 if (panic_on_oops)
296 panic("Fatal exception"); 297 panic("Fatal exception");
298
299 raw_spin_unlock_irqrestore(&die_lock, flags);
300
297 if (ret != NOTIFY_STOP) 301 if (ret != NOTIFY_STOP)
298 do_exit(SIGSEGV); 302 do_exit(SIGSEGV);
299} 303}
@@ -519,7 +523,7 @@ static void cntfrq_read_handler(unsigned int esr, struct pt_regs *regs)
519{ 523{
520 int rt = (esr & ESR_ELx_SYS64_ISS_RT_MASK) >> ESR_ELx_SYS64_ISS_RT_SHIFT; 524 int rt = (esr & ESR_ELx_SYS64_ISS_RT_MASK) >> ESR_ELx_SYS64_ISS_RT_SHIFT;
521 525
522 pt_regs_write_reg(regs, rt, read_sysreg(cntfrq_el0)); 526 pt_regs_write_reg(regs, rt, arch_timer_get_rate());
523 regs->pc += 4; 527 regs->pc += 4;
524} 528}
525 529
diff --git a/arch/arm64/kvm/sys_regs.c b/arch/arm64/kvm/sys_regs.c
index 77862881ae86..2e070d3baf9f 100644
--- a/arch/arm64/kvm/sys_regs.c
+++ b/arch/arm64/kvm/sys_regs.c
@@ -764,7 +764,7 @@ static bool access_pmovs(struct kvm_vcpu *vcpu, struct sys_reg_params *p,
764 if (p->is_write) { 764 if (p->is_write) {
765 if (r->CRm & 0x2) 765 if (r->CRm & 0x2)
766 /* accessing PMOVSSET_EL0 */ 766 /* accessing PMOVSSET_EL0 */
767 kvm_pmu_overflow_set(vcpu, p->regval & mask); 767 vcpu_sys_reg(vcpu, PMOVSSET_EL0) |= (p->regval & mask);
768 else 768 else
769 /* accessing PMOVSCLR_EL0 */ 769 /* accessing PMOVSCLR_EL0 */
770 vcpu_sys_reg(vcpu, PMOVSSET_EL0) &= ~(p->regval & mask); 770 vcpu_sys_reg(vcpu, PMOVSSET_EL0) &= ~(p->regval & mask);
diff --git a/arch/arm64/lib/copy_page.S b/arch/arm64/lib/copy_page.S
index c3cd65e31814..076c43715e64 100644
--- a/arch/arm64/lib/copy_page.S
+++ b/arch/arm64/lib/copy_page.S
@@ -30,9 +30,10 @@
30 */ 30 */
31ENTRY(copy_page) 31ENTRY(copy_page)
32alternative_if ARM64_HAS_NO_HW_PREFETCH 32alternative_if ARM64_HAS_NO_HW_PREFETCH
33 # Prefetch two cache lines ahead. 33 // Prefetch three cache lines ahead.
34 prfm pldl1strm, [x1, #128] 34 prfm pldl1strm, [x1, #128]
35 prfm pldl1strm, [x1, #256] 35 prfm pldl1strm, [x1, #256]
36 prfm pldl1strm, [x1, #384]
36alternative_else_nop_endif 37alternative_else_nop_endif
37 38
38 ldp x2, x3, [x1] 39 ldp x2, x3, [x1]
@@ -50,7 +51,7 @@ alternative_else_nop_endif
50 subs x18, x18, #128 51 subs x18, x18, #128
51 52
52alternative_if ARM64_HAS_NO_HW_PREFETCH 53alternative_if ARM64_HAS_NO_HW_PREFETCH
53 prfm pldl1strm, [x1, #384] 54 prfm pldl1strm, [x1, #384]
54alternative_else_nop_endif 55alternative_else_nop_endif
55 56
56 stnp x2, x3, [x0] 57 stnp x2, x3, [x0]
diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c
index e90cd1db42a8..f27d4dd04384 100644
--- a/arch/arm64/mm/dma-mapping.c
+++ b/arch/arm64/mm/dma-mapping.c
@@ -329,7 +329,7 @@ static int __swiotlb_mmap(struct device *dev,
329 vma->vm_page_prot = __get_dma_pgprot(attrs, vma->vm_page_prot, 329 vma->vm_page_prot = __get_dma_pgprot(attrs, vma->vm_page_prot,
330 is_device_dma_coherent(dev)); 330 is_device_dma_coherent(dev));
331 331
332 if (dma_mmap_from_coherent(dev, vma, cpu_addr, size, &ret)) 332 if (dma_mmap_from_dev_coherent(dev, vma, cpu_addr, size, &ret))
333 return ret; 333 return ret;
334 334
335 return __swiotlb_mmap_pfn(vma, pfn, size); 335 return __swiotlb_mmap_pfn(vma, pfn, size);
@@ -706,7 +706,7 @@ static int __iommu_mmap_attrs(struct device *dev, struct vm_area_struct *vma,
706 vma->vm_page_prot = __get_dma_pgprot(attrs, vma->vm_page_prot, 706 vma->vm_page_prot = __get_dma_pgprot(attrs, vma->vm_page_prot,
707 is_device_dma_coherent(dev)); 707 is_device_dma_coherent(dev));
708 708
709 if (dma_mmap_from_coherent(dev, vma, cpu_addr, size, &ret)) 709 if (dma_mmap_from_dev_coherent(dev, vma, cpu_addr, size, &ret))
710 return ret; 710 return ret;
711 711
712 if (attrs & DMA_ATTR_FORCE_CONTIGUOUS) { 712 if (attrs & DMA_ATTR_FORCE_CONTIGUOUS) {
diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c
index c7861c9864e6..2509e4fe6992 100644
--- a/arch/arm64/mm/fault.c
+++ b/arch/arm64/mm/fault.c
@@ -163,26 +163,27 @@ int ptep_set_access_flags(struct vm_area_struct *vma,
163 /* only preserve the access flags and write permission */ 163 /* only preserve the access flags and write permission */
164 pte_val(entry) &= PTE_AF | PTE_WRITE | PTE_DIRTY; 164 pte_val(entry) &= PTE_AF | PTE_WRITE | PTE_DIRTY;
165 165
166 /* 166 /* set PTE_RDONLY if actual read-only or clean PTE */
167 * PTE_RDONLY is cleared by default in the asm below, so set it in
168 * back if necessary (read-only or clean PTE).
169 */
170 if (!pte_write(entry) || !pte_sw_dirty(entry)) 167 if (!pte_write(entry) || !pte_sw_dirty(entry))
171 pte_val(entry) |= PTE_RDONLY; 168 pte_val(entry) |= PTE_RDONLY;
172 169
173 /* 170 /*
174 * Setting the flags must be done atomically to avoid racing with the 171 * Setting the flags must be done atomically to avoid racing with the
175 * hardware update of the access/dirty state. 172 * hardware update of the access/dirty state. The PTE_RDONLY bit must
173 * be set to the most permissive (lowest value) of *ptep and entry
174 * (calculated as: a & b == ~(~a | ~b)).
176 */ 175 */
176 pte_val(entry) ^= PTE_RDONLY;
177 asm volatile("// ptep_set_access_flags\n" 177 asm volatile("// ptep_set_access_flags\n"
178 " prfm pstl1strm, %2\n" 178 " prfm pstl1strm, %2\n"
179 "1: ldxr %0, %2\n" 179 "1: ldxr %0, %2\n"
180 " and %0, %0, %3 // clear PTE_RDONLY\n" 180 " eor %0, %0, %3 // negate PTE_RDONLY in *ptep\n"
181 " orr %0, %0, %4 // set flags\n" 181 " orr %0, %0, %4 // set flags\n"
182 " eor %0, %0, %3 // negate final PTE_RDONLY\n"
182 " stxr %w1, %0, %2\n" 183 " stxr %w1, %0, %2\n"
183 " cbnz %w1, 1b\n" 184 " cbnz %w1, 1b\n"
184 : "=&r" (old_pteval), "=&r" (tmp), "+Q" (pte_val(*ptep)) 185 : "=&r" (old_pteval), "=&r" (tmp), "+Q" (pte_val(*ptep))
185 : "L" (~PTE_RDONLY), "r" (pte_val(entry))); 186 : "L" (PTE_RDONLY), "r" (pte_val(entry)));
186 187
187 flush_tlb_fix_spurious_fault(vma, address); 188 flush_tlb_fix_spurious_fault(vma, address);
188 return 1; 189 return 1;
diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
index 23c2d89a362e..f1eb15e0e864 100644
--- a/arch/arm64/mm/mmu.c
+++ b/arch/arm64/mm/mmu.c
@@ -496,7 +496,7 @@ void mark_rodata_ro(void)
496 496
497static void __init map_kernel_segment(pgd_t *pgd, void *va_start, void *va_end, 497static void __init map_kernel_segment(pgd_t *pgd, void *va_start, void *va_end,
498 pgprot_t prot, struct vm_struct *vma, 498 pgprot_t prot, struct vm_struct *vma,
499 int flags) 499 int flags, unsigned long vm_flags)
500{ 500{
501 phys_addr_t pa_start = __pa_symbol(va_start); 501 phys_addr_t pa_start = __pa_symbol(va_start);
502 unsigned long size = va_end - va_start; 502 unsigned long size = va_end - va_start;
@@ -507,10 +507,13 @@ static void __init map_kernel_segment(pgd_t *pgd, void *va_start, void *va_end,
507 __create_pgd_mapping(pgd, pa_start, (unsigned long)va_start, size, prot, 507 __create_pgd_mapping(pgd, pa_start, (unsigned long)va_start, size, prot,
508 early_pgtable_alloc, flags); 508 early_pgtable_alloc, flags);
509 509
510 if (!(vm_flags & VM_NO_GUARD))
511 size += PAGE_SIZE;
512
510 vma->addr = va_start; 513 vma->addr = va_start;
511 vma->phys_addr = pa_start; 514 vma->phys_addr = pa_start;
512 vma->size = size; 515 vma->size = size;
513 vma->flags = VM_MAP; 516 vma->flags = VM_MAP | vm_flags;
514 vma->caller = __builtin_return_address(0); 517 vma->caller = __builtin_return_address(0);
515 518
516 vm_area_add_early(vma); 519 vm_area_add_early(vma);
@@ -541,14 +544,15 @@ static void __init map_kernel(pgd_t *pgd)
541 * Only rodata will be remapped with different permissions later on, 544 * Only rodata will be remapped with different permissions later on,
542 * all other segments are allowed to use contiguous mappings. 545 * all other segments are allowed to use contiguous mappings.
543 */ 546 */
544 map_kernel_segment(pgd, _text, _etext, text_prot, &vmlinux_text, 0); 547 map_kernel_segment(pgd, _text, _etext, text_prot, &vmlinux_text, 0,
548 VM_NO_GUARD);
545 map_kernel_segment(pgd, __start_rodata, __inittext_begin, PAGE_KERNEL, 549 map_kernel_segment(pgd, __start_rodata, __inittext_begin, PAGE_KERNEL,
546 &vmlinux_rodata, NO_CONT_MAPPINGS); 550 &vmlinux_rodata, NO_CONT_MAPPINGS, VM_NO_GUARD);
547 map_kernel_segment(pgd, __inittext_begin, __inittext_end, text_prot, 551 map_kernel_segment(pgd, __inittext_begin, __inittext_end, text_prot,
548 &vmlinux_inittext, 0); 552 &vmlinux_inittext, 0, VM_NO_GUARD);
549 map_kernel_segment(pgd, __initdata_begin, __initdata_end, PAGE_KERNEL, 553 map_kernel_segment(pgd, __initdata_begin, __initdata_end, PAGE_KERNEL,
550 &vmlinux_initdata, 0); 554 &vmlinux_initdata, 0, VM_NO_GUARD);
551 map_kernel_segment(pgd, _data, _end, PAGE_KERNEL, &vmlinux_data, 0); 555 map_kernel_segment(pgd, _data, _end, PAGE_KERNEL, &vmlinux_data, 0, 0);
552 556
553 if (!pgd_val(*pgd_offset_raw(pgd, FIXADDR_START))) { 557 if (!pgd_val(*pgd_offset_raw(pgd, FIXADDR_START))) {
554 /* 558 /*
diff --git a/arch/arm64/mm/numa.c b/arch/arm64/mm/numa.c
index b388a99fea7b..dad128ba98bf 100644
--- a/arch/arm64/mm/numa.c
+++ b/arch/arm64/mm/numa.c
@@ -208,8 +208,6 @@ int __init numa_add_memblk(int nid, u64 start, u64 end)
208 } 208 }
209 209
210 node_set(nid, numa_nodes_parsed); 210 node_set(nid, numa_nodes_parsed);
211 pr_info("Adding memblock [0x%llx - 0x%llx] on node %d\n",
212 start, (end - 1), nid);
213 return ret; 211 return ret;
214} 212}
215 213
@@ -223,10 +221,7 @@ static void __init setup_node_data(int nid, u64 start_pfn, u64 end_pfn)
223 void *nd; 221 void *nd;
224 int tnid; 222 int tnid;
225 223
226 if (start_pfn < end_pfn) 224 if (start_pfn >= end_pfn)
227 pr_info("Initmem setup node %d [mem %#010Lx-%#010Lx]\n", nid,
228 start_pfn << PAGE_SHIFT, (end_pfn << PAGE_SHIFT) - 1);
229 else
230 pr_info("Initmem setup node %d [<memory-less node>]\n", nid); 225 pr_info("Initmem setup node %d [<memory-less node>]\n", nid);
231 226
232 nd_pa = memblock_alloc_try_nid(nd_size, SMP_CACHE_BYTES, nid); 227 nd_pa = memblock_alloc_try_nid(nd_size, SMP_CACHE_BYTES, nid);
diff --git a/arch/mips/include/asm/mach-ralink/ralink_regs.h b/arch/mips/include/asm/mach-ralink/ralink_regs.h
index 9df1a53bcb36..b4e7dfa214eb 100644
--- a/arch/mips/include/asm/mach-ralink/ralink_regs.h
+++ b/arch/mips/include/asm/mach-ralink/ralink_regs.h
@@ -13,6 +13,8 @@
13#ifndef _RALINK_REGS_H_ 13#ifndef _RALINK_REGS_H_
14#define _RALINK_REGS_H_ 14#define _RALINK_REGS_H_
15 15
16#include <linux/io.h>
17
16enum ralink_soc_type { 18enum ralink_soc_type {
17 RALINK_UNKNOWN = 0, 19 RALINK_UNKNOWN = 0,
18 RT2880_SOC, 20 RT2880_SOC,
diff --git a/arch/mips/mm/dma-default.c b/arch/mips/mm/dma-default.c
index e08598c70b3e..8e78251eccc2 100644
--- a/arch/mips/mm/dma-default.c
+++ b/arch/mips/mm/dma-default.c
@@ -232,7 +232,7 @@ static int mips_dma_mmap(struct device *dev, struct vm_area_struct *vma,
232 else 232 else
233 vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); 233 vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
234 234
235 if (dma_mmap_from_coherent(dev, vma, cpu_addr, size, &ret)) 235 if (dma_mmap_from_dev_coherent(dev, vma, cpu_addr, size, &ret))
236 return ret; 236 return ret;
237 237
238 if (off < count && user_count <= (count - off)) { 238 if (off < count && user_count <= (count - off)) {
diff --git a/arch/mips/net/ebpf_jit.c b/arch/mips/net/ebpf_jit.c
new file mode 100644
index 000000000000..3f87b96da5c4
--- /dev/null
+++ b/arch/mips/net/ebpf_jit.c
@@ -0,0 +1,1950 @@
1/*
2 * Just-In-Time compiler for eBPF filters on MIPS
3 *
4 * Copyright (c) 2017 Cavium, Inc.
5 *
6 * Based on code from:
7 *
8 * Copyright (c) 2014 Imagination Technologies Ltd.
9 * Author: Markos Chandras <markos.chandras@imgtec.com>
10 *
11 * This program is free software; you can redistribute it and/or modify it
12 * under the terms of the GNU General Public License as published by the
13 * Free Software Foundation; version 2 of the License.
14 */
15
16#include <linux/bitops.h>
17#include <linux/errno.h>
18#include <linux/filter.h>
19#include <linux/bpf.h>
20#include <linux/slab.h>
21#include <asm/bitops.h>
22#include <asm/byteorder.h>
23#include <asm/cacheflush.h>
24#include <asm/cpu-features.h>
25#include <asm/uasm.h>
26
27/* Registers used by JIT */
28#define MIPS_R_ZERO 0
29#define MIPS_R_AT 1
30#define MIPS_R_V0 2 /* BPF_R0 */
31#define MIPS_R_V1 3
32#define MIPS_R_A0 4 /* BPF_R1 */
33#define MIPS_R_A1 5 /* BPF_R2 */
34#define MIPS_R_A2 6 /* BPF_R3 */
35#define MIPS_R_A3 7 /* BPF_R4 */
36#define MIPS_R_A4 8 /* BPF_R5 */
37#define MIPS_R_T4 12 /* BPF_AX */
38#define MIPS_R_T5 13
39#define MIPS_R_T6 14
40#define MIPS_R_T7 15
41#define MIPS_R_S0 16 /* BPF_R6 */
42#define MIPS_R_S1 17 /* BPF_R7 */
43#define MIPS_R_S2 18 /* BPF_R8 */
44#define MIPS_R_S3 19 /* BPF_R9 */
45#define MIPS_R_S4 20 /* BPF_TCC */
46#define MIPS_R_S5 21
47#define MIPS_R_S6 22
48#define MIPS_R_S7 23
49#define MIPS_R_T8 24
50#define MIPS_R_T9 25
51#define MIPS_R_SP 29
52#define MIPS_R_RA 31
53
54/* eBPF flags */
55#define EBPF_SAVE_S0 BIT(0)
56#define EBPF_SAVE_S1 BIT(1)
57#define EBPF_SAVE_S2 BIT(2)
58#define EBPF_SAVE_S3 BIT(3)
59#define EBPF_SAVE_S4 BIT(4)
60#define EBPF_SAVE_RA BIT(5)
61#define EBPF_SEEN_FP BIT(6)
62#define EBPF_SEEN_TC BIT(7)
63#define EBPF_TCC_IN_V1 BIT(8)
64
65/*
66 * For the mips64 ISA, we need to track the value range or type for
67 * each JIT register. The BPF machine requires zero extended 32-bit
68 * values, but the mips64 ISA requires sign extended 32-bit values.
69 * At each point in the BPF program we track the state of every
70 * register so that we can zero extend or sign extend as the BPF
71 * semantics require.
72 */
73enum reg_val_type {
74 /* uninitialized */
75 REG_UNKNOWN,
76 /* not known to be 32-bit compatible. */
77 REG_64BIT,
78 /* 32-bit compatible, no truncation needed for 64-bit ops. */
79 REG_64BIT_32BIT,
80 /* 32-bit compatible, need truncation for 64-bit ops. */
81 REG_32BIT,
82 /* 32-bit zero extended. */
83 REG_32BIT_ZERO_EX,
84 /* 32-bit no sign/zero extension needed. */
85 REG_32BIT_POS
86};
87
88/*
89 * high bit of offsets indicates if long branch conversion done at
90 * this insn.
91 */
92#define OFFSETS_B_CONV BIT(31)
93
94/**
95 * struct jit_ctx - JIT context
96 * @skf: The sk_filter
97 * @stack_size: eBPF stack size
98 * @tmp_offset: eBPF $sp offset to 8-byte temporary memory
99 * @idx: Instruction index
100 * @flags: JIT flags
101 * @offsets: Instruction offsets
102 * @target: Memory location for the compiled filter
103 * @reg_val_types Packed enum reg_val_type for each register.
104 */
105struct jit_ctx {
106 const struct bpf_prog *skf;
107 int stack_size;
108 int tmp_offset;
109 u32 idx;
110 u32 flags;
111 u32 *offsets;
112 u32 *target;
113 u64 *reg_val_types;
114 unsigned int long_b_conversion:1;
115 unsigned int gen_b_offsets:1;
116};
117
118static void set_reg_val_type(u64 *rvt, int reg, enum reg_val_type type)
119{
120 *rvt &= ~(7ull << (reg * 3));
121 *rvt |= ((u64)type << (reg * 3));
122}
123
124static enum reg_val_type get_reg_val_type(const struct jit_ctx *ctx,
125 int index, int reg)
126{
127 return (ctx->reg_val_types[index] >> (reg * 3)) & 7;
128}
129
130/* Simply emit the instruction if the JIT memory space has been allocated */
131#define emit_instr(ctx, func, ...) \
132do { \
133 if ((ctx)->target != NULL) { \
134 u32 *p = &(ctx)->target[ctx->idx]; \
135 uasm_i_##func(&p, ##__VA_ARGS__); \
136 } \
137 (ctx)->idx++; \
138} while (0)
139
140static unsigned int j_target(struct jit_ctx *ctx, int target_idx)
141{
142 unsigned long target_va, base_va;
143 unsigned int r;
144
145 if (!ctx->target)
146 return 0;
147
148 base_va = (unsigned long)ctx->target;
149 target_va = base_va + (ctx->offsets[target_idx] & ~OFFSETS_B_CONV);
150
151 if ((base_va & ~0x0ffffffful) != (target_va & ~0x0ffffffful))
152 return (unsigned int)-1;
153 r = target_va & 0x0ffffffful;
154 return r;
155}
156
157/* Compute the immediate value for PC-relative branches. */
158static u32 b_imm(unsigned int tgt, struct jit_ctx *ctx)
159{
160 if (!ctx->gen_b_offsets)
161 return 0;
162
163 /*
164 * We want a pc-relative branch. tgt is the instruction offset
165 * we want to jump to.
166
167 * Branch on MIPS:
168 * I: target_offset <- sign_extend(offset)
169 * I+1: PC += target_offset (delay slot)
170 *
171 * ctx->idx currently points to the branch instruction
172 * but the offset is added to the delay slot so we need
173 * to subtract 4.
174 */
175 return (ctx->offsets[tgt] & ~OFFSETS_B_CONV) -
176 (ctx->idx * 4) - 4;
177}
178
179int bpf_jit_enable __read_mostly;
180
181enum which_ebpf_reg {
182 src_reg,
183 src_reg_no_fp,
184 dst_reg,
185 dst_reg_fp_ok
186};
187
188/*
189 * For eBPF, the register mapping naturally falls out of the
190 * requirements of eBPF and the MIPS n64 ABI. We don't maintain a
191 * separate frame pointer, so BPF_REG_10 relative accesses are
192 * adjusted to be $sp relative.
193 */
194int ebpf_to_mips_reg(struct jit_ctx *ctx, const struct bpf_insn *insn,
195 enum which_ebpf_reg w)
196{
197 int ebpf_reg = (w == src_reg || w == src_reg_no_fp) ?
198 insn->src_reg : insn->dst_reg;
199
200 switch (ebpf_reg) {
201 case BPF_REG_0:
202 return MIPS_R_V0;
203 case BPF_REG_1:
204 return MIPS_R_A0;
205 case BPF_REG_2:
206 return MIPS_R_A1;
207 case BPF_REG_3:
208 return MIPS_R_A2;
209 case BPF_REG_4:
210 return MIPS_R_A3;
211 case BPF_REG_5:
212 return MIPS_R_A4;
213 case BPF_REG_6:
214 ctx->flags |= EBPF_SAVE_S0;
215 return MIPS_R_S0;
216 case BPF_REG_7:
217 ctx->flags |= EBPF_SAVE_S1;
218 return MIPS_R_S1;
219 case BPF_REG_8:
220 ctx->flags |= EBPF_SAVE_S2;
221 return MIPS_R_S2;
222 case BPF_REG_9:
223 ctx->flags |= EBPF_SAVE_S3;
224 return MIPS_R_S3;
225 case BPF_REG_10:
226 if (w == dst_reg || w == src_reg_no_fp)
227 goto bad_reg;
228 ctx->flags |= EBPF_SEEN_FP;
229 /*
230 * Needs special handling, return something that
231 * cannot be clobbered just in case.
232 */
233 return MIPS_R_ZERO;
234 case BPF_REG_AX:
235 return MIPS_R_T4;
236 default:
237bad_reg:
238 WARN(1, "Illegal bpf reg: %d\n", ebpf_reg);
239 return -EINVAL;
240 }
241}
242/*
243 * eBPF stack frame will be something like:
244 *
245 * Entry $sp ------> +--------------------------------+
246 * | $ra (optional) |
247 * +--------------------------------+
248 * | $s0 (optional) |
249 * +--------------------------------+
250 * | $s1 (optional) |
251 * +--------------------------------+
252 * | $s2 (optional) |
253 * +--------------------------------+
254 * | $s3 (optional) |
255 * +--------------------------------+
256 * | $s4 (optional) |
257 * +--------------------------------+
258 * | tmp-storage (if $ra saved) |
259 * $sp + tmp_offset --> +--------------------------------+ <--BPF_REG_10
260 * | BPF_REG_10 relative storage |
261 * | MAX_BPF_STACK (optional) |
262 * | . |
263 * | . |
264 * | . |
265 * $sp --------> +--------------------------------+
266 *
267 * If BPF_REG_10 is never referenced, then the MAX_BPF_STACK sized
268 * area is not allocated.
269 */
270static int gen_int_prologue(struct jit_ctx *ctx)
271{
272 int stack_adjust = 0;
273 int store_offset;
274 int locals_size;
275
276 if (ctx->flags & EBPF_SAVE_RA)
277 /*
278 * If RA we are doing a function call and may need
279 * extra 8-byte tmp area.
280 */
281 stack_adjust += 16;
282 if (ctx->flags & EBPF_SAVE_S0)
283 stack_adjust += 8;
284 if (ctx->flags & EBPF_SAVE_S1)
285 stack_adjust += 8;
286 if (ctx->flags & EBPF_SAVE_S2)
287 stack_adjust += 8;
288 if (ctx->flags & EBPF_SAVE_S3)
289 stack_adjust += 8;
290 if (ctx->flags & EBPF_SAVE_S4)
291 stack_adjust += 8;
292
293 BUILD_BUG_ON(MAX_BPF_STACK & 7);
294 locals_size = (ctx->flags & EBPF_SEEN_FP) ? MAX_BPF_STACK : 0;
295
296 stack_adjust += locals_size;
297 ctx->tmp_offset = locals_size;
298
299 ctx->stack_size = stack_adjust;
300
301 /*
302 * First instruction initializes the tail call count (TCC).
303 * On tail call we skip this instruction, and the TCC is
304 * passed in $v1 from the caller.
305 */
306 emit_instr(ctx, daddiu, MIPS_R_V1, MIPS_R_ZERO, MAX_TAIL_CALL_CNT);
307 if (stack_adjust)
308 emit_instr(ctx, daddiu, MIPS_R_SP, MIPS_R_SP, -stack_adjust);
309 else
310 return 0;
311
312 store_offset = stack_adjust - 8;
313
314 if (ctx->flags & EBPF_SAVE_RA) {
315 emit_instr(ctx, sd, MIPS_R_RA, store_offset, MIPS_R_SP);
316 store_offset -= 8;
317 }
318 if (ctx->flags & EBPF_SAVE_S0) {
319 emit_instr(ctx, sd, MIPS_R_S0, store_offset, MIPS_R_SP);
320 store_offset -= 8;
321 }
322 if (ctx->flags & EBPF_SAVE_S1) {
323 emit_instr(ctx, sd, MIPS_R_S1, store_offset, MIPS_R_SP);
324 store_offset -= 8;
325 }
326 if (ctx->flags & EBPF_SAVE_S2) {
327 emit_instr(ctx, sd, MIPS_R_S2, store_offset, MIPS_R_SP);
328 store_offset -= 8;
329 }
330 if (ctx->flags & EBPF_SAVE_S3) {
331 emit_instr(ctx, sd, MIPS_R_S3, store_offset, MIPS_R_SP);
332 store_offset -= 8;
333 }
334 if (ctx->flags & EBPF_SAVE_S4) {
335 emit_instr(ctx, sd, MIPS_R_S4, store_offset, MIPS_R_SP);
336 store_offset -= 8;
337 }
338
339 if ((ctx->flags & EBPF_SEEN_TC) && !(ctx->flags & EBPF_TCC_IN_V1))
340 emit_instr(ctx, daddu, MIPS_R_S4, MIPS_R_V1, MIPS_R_ZERO);
341
342 return 0;
343}
344
345static int build_int_epilogue(struct jit_ctx *ctx, int dest_reg)
346{
347 const struct bpf_prog *prog = ctx->skf;
348 int stack_adjust = ctx->stack_size;
349 int store_offset = stack_adjust - 8;
350 int r0 = MIPS_R_V0;
351
352 if (dest_reg == MIPS_R_RA &&
353 get_reg_val_type(ctx, prog->len, BPF_REG_0) == REG_32BIT_ZERO_EX)
354 /* Don't let zero extended value escape. */
355 emit_instr(ctx, sll, r0, r0, 0);
356
357 if (ctx->flags & EBPF_SAVE_RA) {
358 emit_instr(ctx, ld, MIPS_R_RA, store_offset, MIPS_R_SP);
359 store_offset -= 8;
360 }
361 if (ctx->flags & EBPF_SAVE_S0) {
362 emit_instr(ctx, ld, MIPS_R_S0, store_offset, MIPS_R_SP);
363 store_offset -= 8;
364 }
365 if (ctx->flags & EBPF_SAVE_S1) {
366 emit_instr(ctx, ld, MIPS_R_S1, store_offset, MIPS_R_SP);
367 store_offset -= 8;
368 }
369 if (ctx->flags & EBPF_SAVE_S2) {
370 emit_instr(ctx, ld, MIPS_R_S2, store_offset, MIPS_R_SP);
371 store_offset -= 8;
372 }
373 if (ctx->flags & EBPF_SAVE_S3) {
374 emit_instr(ctx, ld, MIPS_R_S3, store_offset, MIPS_R_SP);
375 store_offset -= 8;
376 }
377 if (ctx->flags & EBPF_SAVE_S4) {
378 emit_instr(ctx, ld, MIPS_R_S4, store_offset, MIPS_R_SP);
379 store_offset -= 8;
380 }
381 emit_instr(ctx, jr, dest_reg);
382
383 if (stack_adjust)
384 emit_instr(ctx, daddiu, MIPS_R_SP, MIPS_R_SP, stack_adjust);
385 else
386 emit_instr(ctx, nop);
387
388 return 0;
389}
390
391static void gen_imm_to_reg(const struct bpf_insn *insn, int reg,
392 struct jit_ctx *ctx)
393{
394 if (insn->imm >= S16_MIN && insn->imm <= S16_MAX) {
395 emit_instr(ctx, addiu, reg, MIPS_R_ZERO, insn->imm);
396 } else {
397 int lower = (s16)(insn->imm & 0xffff);
398 int upper = insn->imm - lower;
399
400 emit_instr(ctx, lui, reg, upper >> 16);
401 emit_instr(ctx, addiu, reg, reg, lower);
402 }
403
404}
405
406static int gen_imm_insn(const struct bpf_insn *insn, struct jit_ctx *ctx,
407 int idx)
408{
409 int upper_bound, lower_bound;
410 int dst = ebpf_to_mips_reg(ctx, insn, dst_reg);
411
412 if (dst < 0)
413 return dst;
414
415 switch (BPF_OP(insn->code)) {
416 case BPF_MOV:
417 case BPF_ADD:
418 upper_bound = S16_MAX;
419 lower_bound = S16_MIN;
420 break;
421 case BPF_SUB:
422 upper_bound = -(int)S16_MIN;
423 lower_bound = -(int)S16_MAX;
424 break;
425 case BPF_AND:
426 case BPF_OR:
427 case BPF_XOR:
428 upper_bound = 0xffff;
429 lower_bound = 0;
430 break;
431 case BPF_RSH:
432 case BPF_LSH:
433 case BPF_ARSH:
434 /* Shift amounts are truncated, no need for bounds */
435 upper_bound = S32_MAX;
436 lower_bound = S32_MIN;
437 break;
438 default:
439 return -EINVAL;
440 }
441
442 /*
443 * Immediate move clobbers the register, so no sign/zero
444 * extension needed.
445 */
446 if (BPF_CLASS(insn->code) == BPF_ALU64 &&
447 BPF_OP(insn->code) != BPF_MOV &&
448 get_reg_val_type(ctx, idx, insn->dst_reg) == REG_32BIT)
449 emit_instr(ctx, dinsu, dst, MIPS_R_ZERO, 32, 32);
450 /* BPF_ALU | BPF_LSH doesn't need separate sign extension */
451 if (BPF_CLASS(insn->code) == BPF_ALU &&
452 BPF_OP(insn->code) != BPF_LSH &&
453 BPF_OP(insn->code) != BPF_MOV &&
454 get_reg_val_type(ctx, idx, insn->dst_reg) != REG_32BIT)
455 emit_instr(ctx, sll, dst, dst, 0);
456
457 if (insn->imm >= lower_bound && insn->imm <= upper_bound) {
458 /* single insn immediate case */
459 switch (BPF_OP(insn->code) | BPF_CLASS(insn->code)) {
460 case BPF_ALU64 | BPF_MOV:
461 emit_instr(ctx, daddiu, dst, MIPS_R_ZERO, insn->imm);
462 break;
463 case BPF_ALU64 | BPF_AND:
464 case BPF_ALU | BPF_AND:
465 emit_instr(ctx, andi, dst, dst, insn->imm);
466 break;
467 case BPF_ALU64 | BPF_OR:
468 case BPF_ALU | BPF_OR:
469 emit_instr(ctx, ori, dst, dst, insn->imm);
470 break;
471 case BPF_ALU64 | BPF_XOR:
472 case BPF_ALU | BPF_XOR:
473 emit_instr(ctx, xori, dst, dst, insn->imm);
474 break;
475 case BPF_ALU64 | BPF_ADD:
476 emit_instr(ctx, daddiu, dst, dst, insn->imm);
477 break;
478 case BPF_ALU64 | BPF_SUB:
479 emit_instr(ctx, daddiu, dst, dst, -insn->imm);
480 break;
481 case BPF_ALU64 | BPF_RSH:
482 emit_instr(ctx, dsrl_safe, dst, dst, insn->imm & 0x3f);
483 break;
484 case BPF_ALU | BPF_RSH:
485 emit_instr(ctx, srl, dst, dst, insn->imm & 0x1f);
486 break;
487 case BPF_ALU64 | BPF_LSH:
488 emit_instr(ctx, dsll_safe, dst, dst, insn->imm & 0x3f);
489 break;
490 case BPF_ALU | BPF_LSH:
491 emit_instr(ctx, sll, dst, dst, insn->imm & 0x1f);
492 break;
493 case BPF_ALU64 | BPF_ARSH:
494 emit_instr(ctx, dsra_safe, dst, dst, insn->imm & 0x3f);
495 break;
496 case BPF_ALU | BPF_ARSH:
497 emit_instr(ctx, sra, dst, dst, insn->imm & 0x1f);
498 break;
499 case BPF_ALU | BPF_MOV:
500 emit_instr(ctx, addiu, dst, MIPS_R_ZERO, insn->imm);
501 break;
502 case BPF_ALU | BPF_ADD:
503 emit_instr(ctx, addiu, dst, dst, insn->imm);
504 break;
505 case BPF_ALU | BPF_SUB:
506 emit_instr(ctx, addiu, dst, dst, -insn->imm);
507 break;
508 default:
509 return -EINVAL;
510 }
511 } else {
512 /* multi insn immediate case */
513 if (BPF_OP(insn->code) == BPF_MOV) {
514 gen_imm_to_reg(insn, dst, ctx);
515 } else {
516 gen_imm_to_reg(insn, MIPS_R_AT, ctx);
517 switch (BPF_OP(insn->code) | BPF_CLASS(insn->code)) {
518 case BPF_ALU64 | BPF_AND:
519 case BPF_ALU | BPF_AND:
520 emit_instr(ctx, and, dst, dst, MIPS_R_AT);
521 break;
522 case BPF_ALU64 | BPF_OR:
523 case BPF_ALU | BPF_OR:
524 emit_instr(ctx, or, dst, dst, MIPS_R_AT);
525 break;
526 case BPF_ALU64 | BPF_XOR:
527 case BPF_ALU | BPF_XOR:
528 emit_instr(ctx, xor, dst, dst, MIPS_R_AT);
529 break;
530 case BPF_ALU64 | BPF_ADD:
531 emit_instr(ctx, daddu, dst, dst, MIPS_R_AT);
532 break;
533 case BPF_ALU64 | BPF_SUB:
534 emit_instr(ctx, dsubu, dst, dst, MIPS_R_AT);
535 break;
536 case BPF_ALU | BPF_ADD:
537 emit_instr(ctx, addu, dst, dst, MIPS_R_AT);
538 break;
539 case BPF_ALU | BPF_SUB:
540 emit_instr(ctx, subu, dst, dst, MIPS_R_AT);
541 break;
542 default:
543 return -EINVAL;
544 }
545 }
546 }
547
548 return 0;
549}
550
551static void * __must_check
552ool_skb_header_pointer(const struct sk_buff *skb, int offset,
553 int len, void *buffer)
554{
555 return skb_header_pointer(skb, offset, len, buffer);
556}
557
558static int size_to_len(const struct bpf_insn *insn)
559{
560 switch (BPF_SIZE(insn->code)) {
561 case BPF_B:
562 return 1;
563 case BPF_H:
564 return 2;
565 case BPF_W:
566 return 4;
567 case BPF_DW:
568 return 8;
569 }
570 return 0;
571}
572
573static void emit_const_to_reg(struct jit_ctx *ctx, int dst, u64 value)
574{
575 if (value >= 0xffffffffffff8000ull || value < 0x8000ull) {
576 emit_instr(ctx, daddiu, dst, MIPS_R_ZERO, (int)value);
577 } else if (value >= 0xffffffff80000000ull ||
578 (value < 0x80000000 && value > 0xffff)) {
579 emit_instr(ctx, lui, dst, (s32)(s16)(value >> 16));
580 emit_instr(ctx, ori, dst, dst, (unsigned int)(value & 0xffff));
581 } else {
582 int i;
583 bool seen_part = false;
584 int needed_shift = 0;
585
586 for (i = 0; i < 4; i++) {
587 u64 part = (value >> (16 * (3 - i))) & 0xffff;
588
589 if (seen_part && needed_shift > 0 && (part || i == 3)) {
590 emit_instr(ctx, dsll_safe, dst, dst, needed_shift);
591 needed_shift = 0;
592 }
593 if (part) {
594 if (i == 0 || (!seen_part && i < 3 && part < 0x8000)) {
595 emit_instr(ctx, lui, dst, (s32)(s16)part);
596 needed_shift = -16;
597 } else {
598 emit_instr(ctx, ori, dst,
599 seen_part ? dst : MIPS_R_ZERO,
600 (unsigned int)part);
601 }
602 seen_part = true;
603 }
604 if (seen_part)
605 needed_shift += 16;
606 }
607 }
608}
609
610static int emit_bpf_tail_call(struct jit_ctx *ctx, int this_idx)
611{
612 int off, b_off;
613
614 ctx->flags |= EBPF_SEEN_TC;
615 /*
616 * if (index >= array->map.max_entries)
617 * goto out;
618 */
619 off = offsetof(struct bpf_array, map.max_entries);
620 emit_instr(ctx, lwu, MIPS_R_T5, off, MIPS_R_A1);
621 emit_instr(ctx, sltu, MIPS_R_AT, MIPS_R_T5, MIPS_R_A2);
622 b_off = b_imm(this_idx + 1, ctx);
623 emit_instr(ctx, bne, MIPS_R_AT, MIPS_R_ZERO, b_off);
624 /*
625 * if (--TCC < 0)
626 * goto out;
627 */
628 /* Delay slot */
629 emit_instr(ctx, daddiu, MIPS_R_T5,
630 (ctx->flags & EBPF_TCC_IN_V1) ? MIPS_R_V1 : MIPS_R_S4, -1);
631 b_off = b_imm(this_idx + 1, ctx);
632 emit_instr(ctx, bltz, MIPS_R_T5, b_off);
633 /*
634 * prog = array->ptrs[index];
635 * if (prog == NULL)
636 * goto out;
637 */
638 /* Delay slot */
639 emit_instr(ctx, dsll, MIPS_R_T8, MIPS_R_A2, 3);
640 emit_instr(ctx, daddu, MIPS_R_T8, MIPS_R_T8, MIPS_R_A1);
641 off = offsetof(struct bpf_array, ptrs);
642 emit_instr(ctx, ld, MIPS_R_AT, off, MIPS_R_T8);
643 b_off = b_imm(this_idx + 1, ctx);
644 emit_instr(ctx, beq, MIPS_R_AT, MIPS_R_ZERO, b_off);
645 /* Delay slot */
646 emit_instr(ctx, nop);
647
648 /* goto *(prog->bpf_func + 4); */
649 off = offsetof(struct bpf_prog, bpf_func);
650 emit_instr(ctx, ld, MIPS_R_T9, off, MIPS_R_AT);
651 /* All systems are go... propagate TCC */
652 emit_instr(ctx, daddu, MIPS_R_V1, MIPS_R_T5, MIPS_R_ZERO);
653 /* Skip first instruction (TCC initialization) */
654 emit_instr(ctx, daddiu, MIPS_R_T9, MIPS_R_T9, 4);
655 return build_int_epilogue(ctx, MIPS_R_T9);
656}
657
658static bool use_bbit_insns(void)
659{
660 switch (current_cpu_type()) {
661 case CPU_CAVIUM_OCTEON:
662 case CPU_CAVIUM_OCTEON_PLUS:
663 case CPU_CAVIUM_OCTEON2:
664 case CPU_CAVIUM_OCTEON3:
665 return true;
666 default:
667 return false;
668 }
669}
670
671static bool is_bad_offset(int b_off)
672{
673 return b_off > 0x1ffff || b_off < -0x20000;
674}
675
676/* Returns the number of insn slots consumed. */
677static int build_one_insn(const struct bpf_insn *insn, struct jit_ctx *ctx,
678 int this_idx, int exit_idx)
679{
680 int src, dst, r, td, ts, mem_off, b_off;
681 bool need_swap, did_move, cmp_eq;
682 unsigned int target;
683 u64 t64;
684 s64 t64s;
685
686 switch (insn->code) {
687 case BPF_ALU64 | BPF_ADD | BPF_K: /* ALU64_IMM */
688 case BPF_ALU64 | BPF_SUB | BPF_K: /* ALU64_IMM */
689 case BPF_ALU64 | BPF_OR | BPF_K: /* ALU64_IMM */
690 case BPF_ALU64 | BPF_AND | BPF_K: /* ALU64_IMM */
691 case BPF_ALU64 | BPF_LSH | BPF_K: /* ALU64_IMM */
692 case BPF_ALU64 | BPF_RSH | BPF_K: /* ALU64_IMM */
693 case BPF_ALU64 | BPF_XOR | BPF_K: /* ALU64_IMM */
694 case BPF_ALU64 | BPF_ARSH | BPF_K: /* ALU64_IMM */
695 case BPF_ALU64 | BPF_MOV | BPF_K: /* ALU64_IMM */
696 case BPF_ALU | BPF_MOV | BPF_K: /* ALU32_IMM */
697 case BPF_ALU | BPF_ADD | BPF_K: /* ALU32_IMM */
698 case BPF_ALU | BPF_SUB | BPF_K: /* ALU32_IMM */
699 case BPF_ALU | BPF_OR | BPF_K: /* ALU64_IMM */
700 case BPF_ALU | BPF_AND | BPF_K: /* ALU64_IMM */
701 case BPF_ALU | BPF_LSH | BPF_K: /* ALU64_IMM */
702 case BPF_ALU | BPF_RSH | BPF_K: /* ALU64_IMM */
703 case BPF_ALU | BPF_XOR | BPF_K: /* ALU64_IMM */
704 case BPF_ALU | BPF_ARSH | BPF_K: /* ALU64_IMM */
705 r = gen_imm_insn(insn, ctx, this_idx);
706 if (r < 0)
707 return r;
708 break;
709 case BPF_ALU64 | BPF_MUL | BPF_K: /* ALU64_IMM */
710 dst = ebpf_to_mips_reg(ctx, insn, dst_reg);
711 if (dst < 0)
712 return dst;
713 if (get_reg_val_type(ctx, this_idx, insn->dst_reg) == REG_32BIT)
714 emit_instr(ctx, dinsu, dst, MIPS_R_ZERO, 32, 32);
715 if (insn->imm == 1) /* Mult by 1 is a nop */
716 break;
717 gen_imm_to_reg(insn, MIPS_R_AT, ctx);
718 emit_instr(ctx, dmultu, MIPS_R_AT, dst);
719 emit_instr(ctx, mflo, dst);
720 break;
721 case BPF_ALU64 | BPF_NEG | BPF_K: /* ALU64_IMM */
722 dst = ebpf_to_mips_reg(ctx, insn, dst_reg);
723 if (dst < 0)
724 return dst;
725 if (get_reg_val_type(ctx, this_idx, insn->dst_reg) == REG_32BIT)
726 emit_instr(ctx, dinsu, dst, MIPS_R_ZERO, 32, 32);
727 emit_instr(ctx, dsubu, dst, MIPS_R_ZERO, dst);
728 break;
729 case BPF_ALU | BPF_MUL | BPF_K: /* ALU_IMM */
730 dst = ebpf_to_mips_reg(ctx, insn, dst_reg);
731 if (dst < 0)
732 return dst;
733 td = get_reg_val_type(ctx, this_idx, insn->dst_reg);
734 if (td == REG_64BIT || td == REG_32BIT_ZERO_EX) {
735 /* sign extend */
736 emit_instr(ctx, sll, dst, dst, 0);
737 }
738 if (insn->imm == 1) /* Mult by 1 is a nop */
739 break;
740 gen_imm_to_reg(insn, MIPS_R_AT, ctx);
741 emit_instr(ctx, multu, dst, MIPS_R_AT);
742 emit_instr(ctx, mflo, dst);
743 break;
744 case BPF_ALU | BPF_NEG | BPF_K: /* ALU_IMM */
745 dst = ebpf_to_mips_reg(ctx, insn, dst_reg);
746 if (dst < 0)
747 return dst;
748 td = get_reg_val_type(ctx, this_idx, insn->dst_reg);
749 if (td == REG_64BIT || td == REG_32BIT_ZERO_EX) {
750 /* sign extend */
751 emit_instr(ctx, sll, dst, dst, 0);
752 }
753 emit_instr(ctx, subu, dst, MIPS_R_ZERO, dst);
754 break;
755 case BPF_ALU | BPF_DIV | BPF_K: /* ALU_IMM */
756 case BPF_ALU | BPF_MOD | BPF_K: /* ALU_IMM */
757 dst = ebpf_to_mips_reg(ctx, insn, dst_reg);
758 if (dst < 0)
759 return dst;
760 if (insn->imm == 0) { /* Div by zero */
761 b_off = b_imm(exit_idx, ctx);
762 if (is_bad_offset(b_off))
763 return -E2BIG;
764 emit_instr(ctx, beq, MIPS_R_ZERO, MIPS_R_ZERO, b_off);
765 emit_instr(ctx, addu, MIPS_R_V0, MIPS_R_ZERO, MIPS_R_ZERO);
766 }
767 td = get_reg_val_type(ctx, this_idx, insn->dst_reg);
768 if (td == REG_64BIT || td == REG_32BIT_ZERO_EX)
769 /* sign extend */
770 emit_instr(ctx, sll, dst, dst, 0);
771 if (insn->imm == 1) {
772 /* div by 1 is a nop, mod by 1 is zero */
773 if (BPF_OP(insn->code) == BPF_MOD)
774 emit_instr(ctx, addu, dst, MIPS_R_ZERO, MIPS_R_ZERO);
775 break;
776 }
777 gen_imm_to_reg(insn, MIPS_R_AT, ctx);
778 emit_instr(ctx, divu, dst, MIPS_R_AT);
779 if (BPF_OP(insn->code) == BPF_DIV)
780 emit_instr(ctx, mflo, dst);
781 else
782 emit_instr(ctx, mfhi, dst);
783 break;
784 case BPF_ALU64 | BPF_DIV | BPF_K: /* ALU_IMM */
785 case BPF_ALU64 | BPF_MOD | BPF_K: /* ALU_IMM */
786 dst = ebpf_to_mips_reg(ctx, insn, dst_reg);
787 if (dst < 0)
788 return dst;
789 if (insn->imm == 0) { /* Div by zero */
790 b_off = b_imm(exit_idx, ctx);
791 if (is_bad_offset(b_off))
792 return -E2BIG;
793 emit_instr(ctx, beq, MIPS_R_ZERO, MIPS_R_ZERO, b_off);
794 emit_instr(ctx, addu, MIPS_R_V0, MIPS_R_ZERO, MIPS_R_ZERO);
795 }
796 if (get_reg_val_type(ctx, this_idx, insn->dst_reg) == REG_32BIT)
797 emit_instr(ctx, dinsu, dst, MIPS_R_ZERO, 32, 32);
798
799 if (insn->imm == 1) {
800 /* div by 1 is a nop, mod by 1 is zero */
801 if (BPF_OP(insn->code) == BPF_MOD)
802 emit_instr(ctx, addu, dst, MIPS_R_ZERO, MIPS_R_ZERO);
803 break;
804 }
805 gen_imm_to_reg(insn, MIPS_R_AT, ctx);
806 emit_instr(ctx, ddivu, dst, MIPS_R_AT);
807 if (BPF_OP(insn->code) == BPF_DIV)
808 emit_instr(ctx, mflo, dst);
809 else
810 emit_instr(ctx, mfhi, dst);
811 break;
812 case BPF_ALU64 | BPF_MOV | BPF_X: /* ALU64_REG */
813 case BPF_ALU64 | BPF_ADD | BPF_X: /* ALU64_REG */
814 case BPF_ALU64 | BPF_SUB | BPF_X: /* ALU64_REG */
815 case BPF_ALU64 | BPF_XOR | BPF_X: /* ALU64_REG */
816 case BPF_ALU64 | BPF_OR | BPF_X: /* ALU64_REG */
817 case BPF_ALU64 | BPF_AND | BPF_X: /* ALU64_REG */
818 case BPF_ALU64 | BPF_MUL | BPF_X: /* ALU64_REG */
819 case BPF_ALU64 | BPF_DIV | BPF_X: /* ALU64_REG */
820 case BPF_ALU64 | BPF_MOD | BPF_X: /* ALU64_REG */
821 case BPF_ALU64 | BPF_LSH | BPF_X: /* ALU64_REG */
822 case BPF_ALU64 | BPF_RSH | BPF_X: /* ALU64_REG */
823 case BPF_ALU64 | BPF_ARSH | BPF_X: /* ALU64_REG */
824 src = ebpf_to_mips_reg(ctx, insn, src_reg);
825 dst = ebpf_to_mips_reg(ctx, insn, dst_reg);
826 if (src < 0 || dst < 0)
827 return -EINVAL;
828 if (get_reg_val_type(ctx, this_idx, insn->dst_reg) == REG_32BIT)
829 emit_instr(ctx, dinsu, dst, MIPS_R_ZERO, 32, 32);
830 did_move = false;
831 if (insn->src_reg == BPF_REG_10) {
832 if (BPF_OP(insn->code) == BPF_MOV) {
833 emit_instr(ctx, daddiu, dst, MIPS_R_SP, MAX_BPF_STACK);
834 did_move = true;
835 } else {
836 emit_instr(ctx, daddiu, MIPS_R_AT, MIPS_R_SP, MAX_BPF_STACK);
837 src = MIPS_R_AT;
838 }
839 } else if (get_reg_val_type(ctx, this_idx, insn->src_reg) == REG_32BIT) {
840 int tmp_reg = MIPS_R_AT;
841
842 if (BPF_OP(insn->code) == BPF_MOV) {
843 tmp_reg = dst;
844 did_move = true;
845 }
846 emit_instr(ctx, daddu, tmp_reg, src, MIPS_R_ZERO);
847 emit_instr(ctx, dinsu, tmp_reg, MIPS_R_ZERO, 32, 32);
848 src = MIPS_R_AT;
849 }
850 switch (BPF_OP(insn->code)) {
851 case BPF_MOV:
852 if (!did_move)
853 emit_instr(ctx, daddu, dst, src, MIPS_R_ZERO);
854 break;
855 case BPF_ADD:
856 emit_instr(ctx, daddu, dst, dst, src);
857 break;
858 case BPF_SUB:
859 emit_instr(ctx, dsubu, dst, dst, src);
860 break;
861 case BPF_XOR:
862 emit_instr(ctx, xor, dst, dst, src);
863 break;
864 case BPF_OR:
865 emit_instr(ctx, or, dst, dst, src);
866 break;
867 case BPF_AND:
868 emit_instr(ctx, and, dst, dst, src);
869 break;
870 case BPF_MUL:
871 emit_instr(ctx, dmultu, dst, src);
872 emit_instr(ctx, mflo, dst);
873 break;
874 case BPF_DIV:
875 case BPF_MOD:
876 b_off = b_imm(exit_idx, ctx);
877 if (is_bad_offset(b_off))
878 return -E2BIG;
879 emit_instr(ctx, beq, src, MIPS_R_ZERO, b_off);
880 emit_instr(ctx, movz, MIPS_R_V0, MIPS_R_ZERO, src);
881 emit_instr(ctx, ddivu, dst, src);
882 if (BPF_OP(insn->code) == BPF_DIV)
883 emit_instr(ctx, mflo, dst);
884 else
885 emit_instr(ctx, mfhi, dst);
886 break;
887 case BPF_LSH:
888 emit_instr(ctx, dsllv, dst, dst, src);
889 break;
890 case BPF_RSH:
891 emit_instr(ctx, dsrlv, dst, dst, src);
892 break;
893 case BPF_ARSH:
894 emit_instr(ctx, dsrav, dst, dst, src);
895 break;
896 default:
897 pr_err("ALU64_REG NOT HANDLED\n");
898 return -EINVAL;
899 }
900 break;
901 case BPF_ALU | BPF_MOV | BPF_X: /* ALU_REG */
902 case BPF_ALU | BPF_ADD | BPF_X: /* ALU_REG */
903 case BPF_ALU | BPF_SUB | BPF_X: /* ALU_REG */
904 case BPF_ALU | BPF_XOR | BPF_X: /* ALU_REG */
905 case BPF_ALU | BPF_OR | BPF_X: /* ALU_REG */
906 case BPF_ALU | BPF_AND | BPF_X: /* ALU_REG */
907 case BPF_ALU | BPF_MUL | BPF_X: /* ALU_REG */
908 case BPF_ALU | BPF_DIV | BPF_X: /* ALU_REG */
909 case BPF_ALU | BPF_MOD | BPF_X: /* ALU_REG */
910 case BPF_ALU | BPF_LSH | BPF_X: /* ALU_REG */
911 case BPF_ALU | BPF_RSH | BPF_X: /* ALU_REG */
912 src = ebpf_to_mips_reg(ctx, insn, src_reg_no_fp);
913 dst = ebpf_to_mips_reg(ctx, insn, dst_reg);
914 if (src < 0 || dst < 0)
915 return -EINVAL;
916 td = get_reg_val_type(ctx, this_idx, insn->dst_reg);
917 if (td == REG_64BIT || td == REG_32BIT_ZERO_EX) {
918 /* sign extend */
919 emit_instr(ctx, sll, dst, dst, 0);
920 }
921 did_move = false;
922 ts = get_reg_val_type(ctx, this_idx, insn->src_reg);
923 if (ts == REG_64BIT || ts == REG_32BIT_ZERO_EX) {
924 int tmp_reg = MIPS_R_AT;
925
926 if (BPF_OP(insn->code) == BPF_MOV) {
927 tmp_reg = dst;
928 did_move = true;
929 }
930 /* sign extend */
931 emit_instr(ctx, sll, tmp_reg, src, 0);
932 src = MIPS_R_AT;
933 }
934 switch (BPF_OP(insn->code)) {
935 case BPF_MOV:
936 if (!did_move)
937 emit_instr(ctx, addu, dst, src, MIPS_R_ZERO);
938 break;
939 case BPF_ADD:
940 emit_instr(ctx, addu, dst, dst, src);
941 break;
942 case BPF_SUB:
943 emit_instr(ctx, subu, dst, dst, src);
944 break;
945 case BPF_XOR:
946 emit_instr(ctx, xor, dst, dst, src);
947 break;
948 case BPF_OR:
949 emit_instr(ctx, or, dst, dst, src);
950 break;
951 case BPF_AND:
952 emit_instr(ctx, and, dst, dst, src);
953 break;
954 case BPF_MUL:
955 emit_instr(ctx, mul, dst, dst, src);
956 break;
957 case BPF_DIV:
958 case BPF_MOD:
959 b_off = b_imm(exit_idx, ctx);
960 if (is_bad_offset(b_off))
961 return -E2BIG;
962 emit_instr(ctx, beq, src, MIPS_R_ZERO, b_off);
963 emit_instr(ctx, movz, MIPS_R_V0, MIPS_R_ZERO, src);
964 emit_instr(ctx, divu, dst, src);
965 if (BPF_OP(insn->code) == BPF_DIV)
966 emit_instr(ctx, mflo, dst);
967 else
968 emit_instr(ctx, mfhi, dst);
969 break;
970 case BPF_LSH:
971 emit_instr(ctx, sllv, dst, dst, src);
972 break;
973 case BPF_RSH:
974 emit_instr(ctx, srlv, dst, dst, src);
975 break;
976 default:
977 pr_err("ALU_REG NOT HANDLED\n");
978 return -EINVAL;
979 }
980 break;
981 case BPF_JMP | BPF_EXIT:
982 if (this_idx + 1 < exit_idx) {
983 b_off = b_imm(exit_idx, ctx);
984 if (is_bad_offset(b_off))
985 return -E2BIG;
986 emit_instr(ctx, beq, MIPS_R_ZERO, MIPS_R_ZERO, b_off);
987 emit_instr(ctx, nop);
988 }
989 break;
990 case BPF_JMP | BPF_JEQ | BPF_K: /* JMP_IMM */
991 case BPF_JMP | BPF_JNE | BPF_K: /* JMP_IMM */
992 cmp_eq = (BPF_OP(insn->code) == BPF_JEQ);
993 dst = ebpf_to_mips_reg(ctx, insn, dst_reg_fp_ok);
994 if (dst < 0)
995 return dst;
996 if (insn->imm == 0) {
997 src = MIPS_R_ZERO;
998 } else {
999 gen_imm_to_reg(insn, MIPS_R_AT, ctx);
1000 src = MIPS_R_AT;
1001 }
1002 goto jeq_common;
1003 case BPF_JMP | BPF_JEQ | BPF_X: /* JMP_REG */
1004 case BPF_JMP | BPF_JNE | BPF_X:
1005 case BPF_JMP | BPF_JSGT | BPF_X:
1006 case BPF_JMP | BPF_JSGE | BPF_X:
1007 case BPF_JMP | BPF_JGT | BPF_X:
1008 case BPF_JMP | BPF_JGE | BPF_X:
1009 case BPF_JMP | BPF_JSET | BPF_X:
1010 src = ebpf_to_mips_reg(ctx, insn, src_reg_no_fp);
1011 dst = ebpf_to_mips_reg(ctx, insn, dst_reg);
1012 if (src < 0 || dst < 0)
1013 return -EINVAL;
1014 td = get_reg_val_type(ctx, this_idx, insn->dst_reg);
1015 ts = get_reg_val_type(ctx, this_idx, insn->src_reg);
1016 if (td == REG_32BIT && ts != REG_32BIT) {
1017 emit_instr(ctx, sll, MIPS_R_AT, src, 0);
1018 src = MIPS_R_AT;
1019 } else if (ts == REG_32BIT && td != REG_32BIT) {
1020 emit_instr(ctx, sll, MIPS_R_AT, dst, 0);
1021 dst = MIPS_R_AT;
1022 }
1023 if (BPF_OP(insn->code) == BPF_JSET) {
1024 emit_instr(ctx, and, MIPS_R_AT, dst, src);
1025 cmp_eq = false;
1026 dst = MIPS_R_AT;
1027 src = MIPS_R_ZERO;
1028 } else if (BPF_OP(insn->code) == BPF_JSGT) {
1029 emit_instr(ctx, dsubu, MIPS_R_AT, dst, src);
1030 if ((insn + 1)->code == (BPF_JMP | BPF_EXIT) && insn->off == 1) {
1031 b_off = b_imm(exit_idx, ctx);
1032 if (is_bad_offset(b_off))
1033 return -E2BIG;
1034 emit_instr(ctx, blez, MIPS_R_AT, b_off);
1035 emit_instr(ctx, nop);
1036 return 2; /* We consumed the exit. */
1037 }
1038 b_off = b_imm(this_idx + insn->off + 1, ctx);
1039 if (is_bad_offset(b_off))
1040 return -E2BIG;
1041 emit_instr(ctx, bgtz, MIPS_R_AT, b_off);
1042 emit_instr(ctx, nop);
1043 break;
1044 } else if (BPF_OP(insn->code) == BPF_JSGE) {
1045 emit_instr(ctx, slt, MIPS_R_AT, dst, src);
1046 cmp_eq = true;
1047 dst = MIPS_R_AT;
1048 src = MIPS_R_ZERO;
1049 } else if (BPF_OP(insn->code) == BPF_JGT) {
1050 /* dst or src could be AT */
1051 emit_instr(ctx, dsubu, MIPS_R_T8, dst, src);
1052 emit_instr(ctx, sltu, MIPS_R_AT, dst, src);
1053 /* SP known to be non-zero, movz becomes boolean not */
1054 emit_instr(ctx, movz, MIPS_R_T9, MIPS_R_SP, MIPS_R_T8);
1055 emit_instr(ctx, movn, MIPS_R_T9, MIPS_R_ZERO, MIPS_R_T8);
1056 emit_instr(ctx, or, MIPS_R_AT, MIPS_R_T9, MIPS_R_AT);
1057 cmp_eq = true;
1058 dst = MIPS_R_AT;
1059 src = MIPS_R_ZERO;
1060 } else if (BPF_OP(insn->code) == BPF_JGE) {
1061 emit_instr(ctx, sltu, MIPS_R_AT, dst, src);
1062 cmp_eq = true;
1063 dst = MIPS_R_AT;
1064 src = MIPS_R_ZERO;
1065 } else { /* JNE/JEQ case */
1066 cmp_eq = (BPF_OP(insn->code) == BPF_JEQ);
1067 }
1068jeq_common:
1069 /*
1070 * If the next insn is EXIT and we are jumping arround
1071 * only it, invert the sense of the compare and
1072 * conditionally jump to the exit. Poor man's branch
1073 * chaining.
1074 */
1075 if ((insn + 1)->code == (BPF_JMP | BPF_EXIT) && insn->off == 1) {
1076 b_off = b_imm(exit_idx, ctx);
1077 if (is_bad_offset(b_off)) {
1078 target = j_target(ctx, exit_idx);
1079 if (target == (unsigned int)-1)
1080 return -E2BIG;
1081 cmp_eq = !cmp_eq;
1082 b_off = 4 * 3;
1083 if (!(ctx->offsets[this_idx] & OFFSETS_B_CONV)) {
1084 ctx->offsets[this_idx] |= OFFSETS_B_CONV;
1085 ctx->long_b_conversion = 1;
1086 }
1087 }
1088
1089 if (cmp_eq)
1090 emit_instr(ctx, bne, dst, src, b_off);
1091 else
1092 emit_instr(ctx, beq, dst, src, b_off);
1093 emit_instr(ctx, nop);
1094 if (ctx->offsets[this_idx] & OFFSETS_B_CONV) {
1095 emit_instr(ctx, j, target);
1096 emit_instr(ctx, nop);
1097 }
1098 return 2; /* We consumed the exit. */
1099 }
1100 b_off = b_imm(this_idx + insn->off + 1, ctx);
1101 if (is_bad_offset(b_off)) {
1102 target = j_target(ctx, this_idx + insn->off + 1);
1103 if (target == (unsigned int)-1)
1104 return -E2BIG;
1105 cmp_eq = !cmp_eq;
1106 b_off = 4 * 3;
1107 if (!(ctx->offsets[this_idx] & OFFSETS_B_CONV)) {
1108 ctx->offsets[this_idx] |= OFFSETS_B_CONV;
1109 ctx->long_b_conversion = 1;
1110 }
1111 }
1112
1113 if (cmp_eq)
1114 emit_instr(ctx, beq, dst, src, b_off);
1115 else
1116 emit_instr(ctx, bne, dst, src, b_off);
1117 emit_instr(ctx, nop);
1118 if (ctx->offsets[this_idx] & OFFSETS_B_CONV) {
1119 emit_instr(ctx, j, target);
1120 emit_instr(ctx, nop);
1121 }
1122 break;
1123 case BPF_JMP | BPF_JSGT | BPF_K: /* JMP_IMM */
1124 case BPF_JMP | BPF_JSGE | BPF_K: /* JMP_IMM */
1125 cmp_eq = (BPF_OP(insn->code) == BPF_JSGE);
1126 dst = ebpf_to_mips_reg(ctx, insn, dst_reg_fp_ok);
1127 if (dst < 0)
1128 return dst;
1129
1130 if (insn->imm == 0) {
1131 if ((insn + 1)->code == (BPF_JMP | BPF_EXIT) && insn->off == 1) {
1132 b_off = b_imm(exit_idx, ctx);
1133 if (is_bad_offset(b_off))
1134 return -E2BIG;
1135 if (cmp_eq)
1136 emit_instr(ctx, bltz, dst, b_off);
1137 else
1138 emit_instr(ctx, blez, dst, b_off);
1139 emit_instr(ctx, nop);
1140 return 2; /* We consumed the exit. */
1141 }
1142 b_off = b_imm(this_idx + insn->off + 1, ctx);
1143 if (is_bad_offset(b_off))
1144 return -E2BIG;
1145 if (cmp_eq)
1146 emit_instr(ctx, bgez, dst, b_off);
1147 else
1148 emit_instr(ctx, bgtz, dst, b_off);
1149 emit_instr(ctx, nop);
1150 break;
1151 }
1152 /*
1153 * only "LT" compare available, so we must use imm + 1
1154 * to generate "GT"
1155 */
1156 t64s = insn->imm + (cmp_eq ? 0 : 1);
1157 if (t64s >= S16_MIN && t64s <= S16_MAX) {
1158 emit_instr(ctx, slti, MIPS_R_AT, dst, (int)t64s);
1159 src = MIPS_R_AT;
1160 dst = MIPS_R_ZERO;
1161 cmp_eq = true;
1162 goto jeq_common;
1163 }
1164 emit_const_to_reg(ctx, MIPS_R_AT, (u64)t64s);
1165 emit_instr(ctx, slt, MIPS_R_AT, dst, MIPS_R_AT);
1166 src = MIPS_R_AT;
1167 dst = MIPS_R_ZERO;
1168 cmp_eq = true;
1169 goto jeq_common;
1170
1171 case BPF_JMP | BPF_JGT | BPF_K:
1172 case BPF_JMP | BPF_JGE | BPF_K:
1173 cmp_eq = (BPF_OP(insn->code) == BPF_JGE);
1174 dst = ebpf_to_mips_reg(ctx, insn, dst_reg_fp_ok);
1175 if (dst < 0)
1176 return dst;
1177 /*
1178 * only "LT" compare available, so we must use imm + 1
1179 * to generate "GT"
1180 */
1181 t64s = (u64)(u32)(insn->imm) + (cmp_eq ? 0 : 1);
1182 if (t64s >= 0 && t64s <= S16_MAX) {
1183 emit_instr(ctx, sltiu, MIPS_R_AT, dst, (int)t64s);
1184 src = MIPS_R_AT;
1185 dst = MIPS_R_ZERO;
1186 cmp_eq = true;
1187 goto jeq_common;
1188 }
1189 emit_const_to_reg(ctx, MIPS_R_AT, (u64)t64s);
1190 emit_instr(ctx, sltu, MIPS_R_AT, dst, MIPS_R_AT);
1191 src = MIPS_R_AT;
1192 dst = MIPS_R_ZERO;
1193 cmp_eq = true;
1194 goto jeq_common;
1195
1196 case BPF_JMP | BPF_JSET | BPF_K: /* JMP_IMM */
1197 dst = ebpf_to_mips_reg(ctx, insn, dst_reg_fp_ok);
1198 if (dst < 0)
1199 return dst;
1200
1201 if (use_bbit_insns() && hweight32((u32)insn->imm) == 1) {
1202 if ((insn + 1)->code == (BPF_JMP | BPF_EXIT) && insn->off == 1) {
1203 b_off = b_imm(exit_idx, ctx);
1204 if (is_bad_offset(b_off))
1205 return -E2BIG;
1206 emit_instr(ctx, bbit0, dst, ffs((u32)insn->imm) - 1, b_off);
1207 emit_instr(ctx, nop);
1208 return 2; /* We consumed the exit. */
1209 }
1210 b_off = b_imm(this_idx + insn->off + 1, ctx);
1211 if (is_bad_offset(b_off))
1212 return -E2BIG;
1213 emit_instr(ctx, bbit1, dst, ffs((u32)insn->imm) - 1, b_off);
1214 emit_instr(ctx, nop);
1215 break;
1216 }
1217 t64 = (u32)insn->imm;
1218 emit_const_to_reg(ctx, MIPS_R_AT, t64);
1219 emit_instr(ctx, and, MIPS_R_AT, dst, MIPS_R_AT);
1220 src = MIPS_R_AT;
1221 dst = MIPS_R_ZERO;
1222 cmp_eq = false;
1223 goto jeq_common;
1224
1225 case BPF_JMP | BPF_JA:
1226 /*
1227 * Prefer relative branch for easier debugging, but
1228 * fall back if needed.
1229 */
1230 b_off = b_imm(this_idx + insn->off + 1, ctx);
1231 if (is_bad_offset(b_off)) {
1232 target = j_target(ctx, this_idx + insn->off + 1);
1233 if (target == (unsigned int)-1)
1234 return -E2BIG;
1235 emit_instr(ctx, j, target);
1236 } else {
1237 emit_instr(ctx, b, b_off);
1238 }
1239 emit_instr(ctx, nop);
1240 break;
1241 case BPF_LD | BPF_DW | BPF_IMM:
1242 if (insn->src_reg != 0)
1243 return -EINVAL;
1244 dst = ebpf_to_mips_reg(ctx, insn, dst_reg);
1245 if (dst < 0)
1246 return dst;
1247 t64 = ((u64)(u32)insn->imm) | ((u64)(insn + 1)->imm << 32);
1248 emit_const_to_reg(ctx, dst, t64);
1249 return 2; /* Double slot insn */
1250
1251 case BPF_JMP | BPF_CALL:
1252 ctx->flags |= EBPF_SAVE_RA;
1253 t64s = (s64)insn->imm + (s64)__bpf_call_base;
1254 emit_const_to_reg(ctx, MIPS_R_T9, (u64)t64s);
1255 emit_instr(ctx, jalr, MIPS_R_RA, MIPS_R_T9);
1256 /* delay slot */
1257 emit_instr(ctx, nop);
1258 break;
1259
1260 case BPF_JMP | BPF_TAIL_CALL:
1261 if (emit_bpf_tail_call(ctx, this_idx))
1262 return -EINVAL;
1263 break;
1264
1265 case BPF_LD | BPF_B | BPF_ABS:
1266 case BPF_LD | BPF_H | BPF_ABS:
1267 case BPF_LD | BPF_W | BPF_ABS:
1268 case BPF_LD | BPF_DW | BPF_ABS:
1269 ctx->flags |= EBPF_SAVE_RA;
1270
1271 gen_imm_to_reg(insn, MIPS_R_A1, ctx);
1272 emit_instr(ctx, addiu, MIPS_R_A2, MIPS_R_ZERO, size_to_len(insn));
1273
1274 if (insn->imm < 0) {
1275 emit_const_to_reg(ctx, MIPS_R_T9, (u64)bpf_internal_load_pointer_neg_helper);
1276 } else {
1277 emit_const_to_reg(ctx, MIPS_R_T9, (u64)ool_skb_header_pointer);
1278 emit_instr(ctx, daddiu, MIPS_R_A3, MIPS_R_SP, ctx->tmp_offset);
1279 }
1280 goto ld_skb_common;
1281
1282 case BPF_LD | BPF_B | BPF_IND:
1283 case BPF_LD | BPF_H | BPF_IND:
1284 case BPF_LD | BPF_W | BPF_IND:
1285 case BPF_LD | BPF_DW | BPF_IND:
1286 ctx->flags |= EBPF_SAVE_RA;
1287 src = ebpf_to_mips_reg(ctx, insn, src_reg_no_fp);
1288 if (src < 0)
1289 return src;
1290 ts = get_reg_val_type(ctx, this_idx, insn->src_reg);
1291 if (ts == REG_32BIT_ZERO_EX) {
1292 /* sign extend */
1293 emit_instr(ctx, sll, MIPS_R_A1, src, 0);
1294 src = MIPS_R_A1;
1295 }
1296 if (insn->imm >= S16_MIN && insn->imm <= S16_MAX) {
1297 emit_instr(ctx, daddiu, MIPS_R_A1, src, insn->imm);
1298 } else {
1299 gen_imm_to_reg(insn, MIPS_R_AT, ctx);
1300 emit_instr(ctx, daddu, MIPS_R_A1, MIPS_R_AT, src);
1301 }
1302 /* truncate to 32-bit int */
1303 emit_instr(ctx, sll, MIPS_R_A1, MIPS_R_A1, 0);
1304 emit_instr(ctx, daddiu, MIPS_R_A3, MIPS_R_SP, ctx->tmp_offset);
1305 emit_instr(ctx, slt, MIPS_R_AT, MIPS_R_A1, MIPS_R_ZERO);
1306
1307 emit_const_to_reg(ctx, MIPS_R_T8, (u64)bpf_internal_load_pointer_neg_helper);
1308 emit_const_to_reg(ctx, MIPS_R_T9, (u64)ool_skb_header_pointer);
1309 emit_instr(ctx, addiu, MIPS_R_A2, MIPS_R_ZERO, size_to_len(insn));
1310 emit_instr(ctx, movn, MIPS_R_T9, MIPS_R_T8, MIPS_R_AT);
1311
1312ld_skb_common:
1313 emit_instr(ctx, jalr, MIPS_R_RA, MIPS_R_T9);
1314 /* delay slot move */
1315 emit_instr(ctx, daddu, MIPS_R_A0, MIPS_R_S0, MIPS_R_ZERO);
1316
1317 /* Check the error value */
1318 b_off = b_imm(exit_idx, ctx);
1319 if (is_bad_offset(b_off)) {
1320 target = j_target(ctx, exit_idx);
1321 if (target == (unsigned int)-1)
1322 return -E2BIG;
1323
1324 if (!(ctx->offsets[this_idx] & OFFSETS_B_CONV)) {
1325 ctx->offsets[this_idx] |= OFFSETS_B_CONV;
1326 ctx->long_b_conversion = 1;
1327 }
1328 emit_instr(ctx, bne, MIPS_R_V0, MIPS_R_ZERO, 4 * 3);
1329 emit_instr(ctx, nop);
1330 emit_instr(ctx, j, target);
1331 emit_instr(ctx, nop);
1332 } else {
1333 emit_instr(ctx, beq, MIPS_R_V0, MIPS_R_ZERO, b_off);
1334 emit_instr(ctx, nop);
1335 }
1336
1337#ifdef __BIG_ENDIAN
1338 need_swap = false;
1339#else
1340 need_swap = true;
1341#endif
1342 dst = MIPS_R_V0;
1343 switch (BPF_SIZE(insn->code)) {
1344 case BPF_B:
1345 emit_instr(ctx, lbu, dst, 0, MIPS_R_V0);
1346 break;
1347 case BPF_H:
1348 emit_instr(ctx, lhu, dst, 0, MIPS_R_V0);
1349 if (need_swap)
1350 emit_instr(ctx, wsbh, dst, dst);
1351 break;
1352 case BPF_W:
1353 emit_instr(ctx, lw, dst, 0, MIPS_R_V0);
1354 if (need_swap) {
1355 emit_instr(ctx, wsbh, dst, dst);
1356 emit_instr(ctx, rotr, dst, dst, 16);
1357 }
1358 break;
1359 case BPF_DW:
1360 emit_instr(ctx, ld, dst, 0, MIPS_R_V0);
1361 if (need_swap) {
1362 emit_instr(ctx, dsbh, dst, dst);
1363 emit_instr(ctx, dshd, dst, dst);
1364 }
1365 break;
1366 }
1367
1368 break;
1369 case BPF_ALU | BPF_END | BPF_FROM_BE:
1370 case BPF_ALU | BPF_END | BPF_FROM_LE:
1371 dst = ebpf_to_mips_reg(ctx, insn, dst_reg);
1372 if (dst < 0)
1373 return dst;
1374 td = get_reg_val_type(ctx, this_idx, insn->dst_reg);
1375 if (insn->imm == 64 && td == REG_32BIT)
1376 emit_instr(ctx, dinsu, dst, MIPS_R_ZERO, 32, 32);
1377
1378 if (insn->imm != 64 &&
1379 (td == REG_64BIT || td == REG_32BIT_ZERO_EX)) {
1380 /* sign extend */
1381 emit_instr(ctx, sll, dst, dst, 0);
1382 }
1383
1384#ifdef __BIG_ENDIAN
1385 need_swap = (BPF_SRC(insn->code) == BPF_FROM_LE);
1386#else
1387 need_swap = (BPF_SRC(insn->code) == BPF_FROM_BE);
1388#endif
1389 if (insn->imm == 16) {
1390 if (need_swap)
1391 emit_instr(ctx, wsbh, dst, dst);
1392 emit_instr(ctx, andi, dst, dst, 0xffff);
1393 } else if (insn->imm == 32) {
1394 if (need_swap) {
1395 emit_instr(ctx, wsbh, dst, dst);
1396 emit_instr(ctx, rotr, dst, dst, 16);
1397 }
1398 } else { /* 64-bit*/
1399 if (need_swap) {
1400 emit_instr(ctx, dsbh, dst, dst);
1401 emit_instr(ctx, dshd, dst, dst);
1402 }
1403 }
1404 break;
1405
1406 case BPF_ST | BPF_B | BPF_MEM:
1407 case BPF_ST | BPF_H | BPF_MEM:
1408 case BPF_ST | BPF_W | BPF_MEM:
1409 case BPF_ST | BPF_DW | BPF_MEM:
1410 if (insn->dst_reg == BPF_REG_10) {
1411 ctx->flags |= EBPF_SEEN_FP;
1412 dst = MIPS_R_SP;
1413 mem_off = insn->off + MAX_BPF_STACK;
1414 } else {
1415 dst = ebpf_to_mips_reg(ctx, insn, dst_reg);
1416 if (dst < 0)
1417 return dst;
1418 mem_off = insn->off;
1419 }
1420 gen_imm_to_reg(insn, MIPS_R_AT, ctx);
1421 switch (BPF_SIZE(insn->code)) {
1422 case BPF_B:
1423 emit_instr(ctx, sb, MIPS_R_AT, mem_off, dst);
1424 break;
1425 case BPF_H:
1426 emit_instr(ctx, sh, MIPS_R_AT, mem_off, dst);
1427 break;
1428 case BPF_W:
1429 emit_instr(ctx, sw, MIPS_R_AT, mem_off, dst);
1430 break;
1431 case BPF_DW:
1432 emit_instr(ctx, sd, MIPS_R_AT, mem_off, dst);
1433 break;
1434 }
1435 break;
1436
1437 case BPF_LDX | BPF_B | BPF_MEM:
1438 case BPF_LDX | BPF_H | BPF_MEM:
1439 case BPF_LDX | BPF_W | BPF_MEM:
1440 case BPF_LDX | BPF_DW | BPF_MEM:
1441 if (insn->src_reg == BPF_REG_10) {
1442 ctx->flags |= EBPF_SEEN_FP;
1443 src = MIPS_R_SP;
1444 mem_off = insn->off + MAX_BPF_STACK;
1445 } else {
1446 src = ebpf_to_mips_reg(ctx, insn, src_reg_no_fp);
1447 if (src < 0)
1448 return src;
1449 mem_off = insn->off;
1450 }
1451 dst = ebpf_to_mips_reg(ctx, insn, dst_reg);
1452 if (dst < 0)
1453 return dst;
1454 switch (BPF_SIZE(insn->code)) {
1455 case BPF_B:
1456 emit_instr(ctx, lbu, dst, mem_off, src);
1457 break;
1458 case BPF_H:
1459 emit_instr(ctx, lhu, dst, mem_off, src);
1460 break;
1461 case BPF_W:
1462 emit_instr(ctx, lw, dst, mem_off, src);
1463 break;
1464 case BPF_DW:
1465 emit_instr(ctx, ld, dst, mem_off, src);
1466 break;
1467 }
1468 break;
1469
1470 case BPF_STX | BPF_B | BPF_MEM:
1471 case BPF_STX | BPF_H | BPF_MEM:
1472 case BPF_STX | BPF_W | BPF_MEM:
1473 case BPF_STX | BPF_DW | BPF_MEM:
1474 case BPF_STX | BPF_W | BPF_XADD:
1475 case BPF_STX | BPF_DW | BPF_XADD:
1476 if (insn->dst_reg == BPF_REG_10) {
1477 ctx->flags |= EBPF_SEEN_FP;
1478 dst = MIPS_R_SP;
1479 mem_off = insn->off + MAX_BPF_STACK;
1480 } else {
1481 dst = ebpf_to_mips_reg(ctx, insn, dst_reg);
1482 if (dst < 0)
1483 return dst;
1484 mem_off = insn->off;
1485 }
1486 src = ebpf_to_mips_reg(ctx, insn, src_reg_no_fp);
1487 if (src < 0)
1488 return dst;
1489 if (BPF_MODE(insn->code) == BPF_XADD) {
1490 switch (BPF_SIZE(insn->code)) {
1491 case BPF_W:
1492 if (get_reg_val_type(ctx, this_idx, insn->src_reg) == REG_32BIT) {
1493 emit_instr(ctx, sll, MIPS_R_AT, src, 0);
1494 src = MIPS_R_AT;
1495 }
1496 emit_instr(ctx, ll, MIPS_R_T8, mem_off, dst);
1497 emit_instr(ctx, addu, MIPS_R_T8, MIPS_R_T8, src);
1498 emit_instr(ctx, sc, MIPS_R_T8, mem_off, dst);
1499 /*
1500 * On failure back up to LL (-4
1501 * instructions of 4 bytes each
1502 */
1503 emit_instr(ctx, beq, MIPS_R_T8, MIPS_R_ZERO, -4 * 4);
1504 emit_instr(ctx, nop);
1505 break;
1506 case BPF_DW:
1507 if (get_reg_val_type(ctx, this_idx, insn->src_reg) == REG_32BIT) {
1508 emit_instr(ctx, daddu, MIPS_R_AT, src, MIPS_R_ZERO);
1509 emit_instr(ctx, dinsu, MIPS_R_AT, MIPS_R_ZERO, 32, 32);
1510 src = MIPS_R_AT;
1511 }
1512 emit_instr(ctx, lld, MIPS_R_T8, mem_off, dst);
1513 emit_instr(ctx, daddu, MIPS_R_T8, MIPS_R_T8, src);
1514 emit_instr(ctx, scd, MIPS_R_T8, mem_off, dst);
1515 emit_instr(ctx, beq, MIPS_R_T8, MIPS_R_ZERO, -4 * 4);
1516 emit_instr(ctx, nop);
1517 break;
1518 }
1519 } else { /* BPF_MEM */
1520 switch (BPF_SIZE(insn->code)) {
1521 case BPF_B:
1522 emit_instr(ctx, sb, src, mem_off, dst);
1523 break;
1524 case BPF_H:
1525 emit_instr(ctx, sh, src, mem_off, dst);
1526 break;
1527 case BPF_W:
1528 emit_instr(ctx, sw, src, mem_off, dst);
1529 break;
1530 case BPF_DW:
1531 if (get_reg_val_type(ctx, this_idx, insn->src_reg) == REG_32BIT) {
1532 emit_instr(ctx, daddu, MIPS_R_AT, src, MIPS_R_ZERO);
1533 emit_instr(ctx, dinsu, MIPS_R_AT, MIPS_R_ZERO, 32, 32);
1534 src = MIPS_R_AT;
1535 }
1536 emit_instr(ctx, sd, src, mem_off, dst);
1537 break;
1538 }
1539 }
1540 break;
1541
1542 default:
1543 pr_err("NOT HANDLED %d - (%02x)\n",
1544 this_idx, (unsigned int)insn->code);
1545 return -EINVAL;
1546 }
1547 return 1;
1548}
1549
1550#define RVT_VISITED_MASK 0xc000000000000000ull
1551#define RVT_FALL_THROUGH 0x4000000000000000ull
1552#define RVT_BRANCH_TAKEN 0x8000000000000000ull
1553#define RVT_DONE (RVT_FALL_THROUGH | RVT_BRANCH_TAKEN)
1554
1555static int build_int_body(struct jit_ctx *ctx)
1556{
1557 const struct bpf_prog *prog = ctx->skf;
1558 const struct bpf_insn *insn;
1559 int i, r;
1560
1561 for (i = 0; i < prog->len; ) {
1562 insn = prog->insnsi + i;
1563 if ((ctx->reg_val_types[i] & RVT_VISITED_MASK) == 0) {
1564 /* dead instruction, don't emit it. */
1565 i++;
1566 continue;
1567 }
1568
1569 if (ctx->target == NULL)
1570 ctx->offsets[i] = (ctx->offsets[i] & OFFSETS_B_CONV) | (ctx->idx * 4);
1571
1572 r = build_one_insn(insn, ctx, i, prog->len);
1573 if (r < 0)
1574 return r;
1575 i += r;
1576 }
1577 /* epilogue offset */
1578 if (ctx->target == NULL)
1579 ctx->offsets[i] = ctx->idx * 4;
1580
1581 /*
1582 * All exits have an offset of the epilogue, some offsets may
1583 * not have been set due to banch-around threading, so set
1584 * them now.
1585 */
1586 if (ctx->target == NULL)
1587 for (i = 0; i < prog->len; i++) {
1588 insn = prog->insnsi + i;
1589 if (insn->code == (BPF_JMP | BPF_EXIT))
1590 ctx->offsets[i] = ctx->idx * 4;
1591 }
1592 return 0;
1593}
1594
1595/* return the last idx processed, or negative for error */
1596static int reg_val_propagate_range(struct jit_ctx *ctx, u64 initial_rvt,
1597 int start_idx, bool follow_taken)
1598{
1599 const struct bpf_prog *prog = ctx->skf;
1600 const struct bpf_insn *insn;
1601 u64 exit_rvt = initial_rvt;
1602 u64 *rvt = ctx->reg_val_types;
1603 int idx;
1604 int reg;
1605
1606 for (idx = start_idx; idx < prog->len; idx++) {
1607 rvt[idx] = (rvt[idx] & RVT_VISITED_MASK) | exit_rvt;
1608 insn = prog->insnsi + idx;
1609 switch (BPF_CLASS(insn->code)) {
1610 case BPF_ALU:
1611 switch (BPF_OP(insn->code)) {
1612 case BPF_ADD:
1613 case BPF_SUB:
1614 case BPF_MUL:
1615 case BPF_DIV:
1616 case BPF_OR:
1617 case BPF_AND:
1618 case BPF_LSH:
1619 case BPF_RSH:
1620 case BPF_NEG:
1621 case BPF_MOD:
1622 case BPF_XOR:
1623 set_reg_val_type(&exit_rvt, insn->dst_reg, REG_32BIT);
1624 break;
1625 case BPF_MOV:
1626 if (BPF_SRC(insn->code)) {
1627 set_reg_val_type(&exit_rvt, insn->dst_reg, REG_32BIT);
1628 } else {
1629 /* IMM to REG move*/
1630 if (insn->imm >= 0)
1631 set_reg_val_type(&exit_rvt, insn->dst_reg, REG_32BIT_POS);
1632 else
1633 set_reg_val_type(&exit_rvt, insn->dst_reg, REG_32BIT);
1634 }
1635 break;
1636 case BPF_END:
1637 if (insn->imm == 64)
1638 set_reg_val_type(&exit_rvt, insn->dst_reg, REG_64BIT);
1639 else if (insn->imm == 32)
1640 set_reg_val_type(&exit_rvt, insn->dst_reg, REG_32BIT);
1641 else /* insn->imm == 16 */
1642 set_reg_val_type(&exit_rvt, insn->dst_reg, REG_32BIT_POS);
1643 break;
1644 }
1645 rvt[idx] |= RVT_DONE;
1646 break;
1647 case BPF_ALU64:
1648 switch (BPF_OP(insn->code)) {
1649 case BPF_MOV:
1650 if (BPF_SRC(insn->code)) {
1651 /* REG to REG move*/
1652 set_reg_val_type(&exit_rvt, insn->dst_reg, REG_64BIT);
1653 } else {
1654 /* IMM to REG move*/
1655 if (insn->imm >= 0)
1656 set_reg_val_type(&exit_rvt, insn->dst_reg, REG_32BIT_POS);
1657 else
1658 set_reg_val_type(&exit_rvt, insn->dst_reg, REG_64BIT_32BIT);
1659 }
1660 break;
1661 default:
1662 set_reg_val_type(&exit_rvt, insn->dst_reg, REG_64BIT);
1663 }
1664 rvt[idx] |= RVT_DONE;
1665 break;
1666 case BPF_LD:
1667 switch (BPF_SIZE(insn->code)) {
1668 case BPF_DW:
1669 if (BPF_MODE(insn->code) == BPF_IMM) {
1670 s64 val;
1671
1672 val = (s64)((u32)insn->imm | ((u64)(insn + 1)->imm << 32));
1673 if (val > 0 && val <= S32_MAX)
1674 set_reg_val_type(&exit_rvt, insn->dst_reg, REG_32BIT_POS);
1675 else if (val >= S32_MIN && val <= S32_MAX)
1676 set_reg_val_type(&exit_rvt, insn->dst_reg, REG_64BIT_32BIT);
1677 else
1678 set_reg_val_type(&exit_rvt, insn->dst_reg, REG_64BIT);
1679 rvt[idx] |= RVT_DONE;
1680 idx++;
1681 } else {
1682 set_reg_val_type(&exit_rvt, insn->dst_reg, REG_64BIT);
1683 }
1684 break;
1685 case BPF_B:
1686 case BPF_H:
1687 set_reg_val_type(&exit_rvt, insn->dst_reg, REG_32BIT_POS);
1688 break;
1689 case BPF_W:
1690 if (BPF_MODE(insn->code) == BPF_IMM)
1691 set_reg_val_type(&exit_rvt, insn->dst_reg,
1692 insn->imm >= 0 ? REG_32BIT_POS : REG_32BIT);
1693 else
1694 set_reg_val_type(&exit_rvt, insn->dst_reg, REG_32BIT);
1695 break;
1696 }
1697 rvt[idx] |= RVT_DONE;
1698 break;
1699 case BPF_LDX:
1700 switch (BPF_SIZE(insn->code)) {
1701 case BPF_DW:
1702 set_reg_val_type(&exit_rvt, insn->dst_reg, REG_64BIT);
1703 break;
1704 case BPF_B:
1705 case BPF_H:
1706 set_reg_val_type(&exit_rvt, insn->dst_reg, REG_32BIT_POS);
1707 break;
1708 case BPF_W:
1709 set_reg_val_type(&exit_rvt, insn->dst_reg, REG_32BIT);
1710 break;
1711 }
1712 rvt[idx] |= RVT_DONE;
1713 break;
1714 case BPF_JMP:
1715 switch (BPF_OP(insn->code)) {
1716 case BPF_EXIT:
1717 rvt[idx] = RVT_DONE | exit_rvt;
1718 rvt[prog->len] = exit_rvt;
1719 return idx;
1720 case BPF_JA:
1721 rvt[idx] |= RVT_DONE;
1722 idx += insn->off;
1723 break;
1724 case BPF_JEQ:
1725 case BPF_JGT:
1726 case BPF_JGE:
1727 case BPF_JSET:
1728 case BPF_JNE:
1729 case BPF_JSGT:
1730 case BPF_JSGE:
1731 if (follow_taken) {
1732 rvt[idx] |= RVT_BRANCH_TAKEN;
1733 idx += insn->off;
1734 follow_taken = false;
1735 } else {
1736 rvt[idx] |= RVT_FALL_THROUGH;
1737 }
1738 break;
1739 case BPF_CALL:
1740 set_reg_val_type(&exit_rvt, BPF_REG_0, REG_64BIT);
1741 /* Upon call return, argument registers are clobbered. */
1742 for (reg = BPF_REG_0; reg <= BPF_REG_5; reg++)
1743 set_reg_val_type(&exit_rvt, reg, REG_64BIT);
1744
1745 rvt[idx] |= RVT_DONE;
1746 break;
1747 default:
1748 WARN(1, "Unhandled BPF_JMP case.\n");
1749 rvt[idx] |= RVT_DONE;
1750 break;
1751 }
1752 break;
1753 default:
1754 rvt[idx] |= RVT_DONE;
1755 break;
1756 }
1757 }
1758 return idx;
1759}
1760
1761/*
1762 * Track the value range (i.e. 32-bit vs. 64-bit) of each register at
1763 * each eBPF insn. This allows unneeded sign and zero extension
1764 * operations to be omitted.
1765 *
1766 * Doesn't handle yet confluence of control paths with conflicting
1767 * ranges, but it is good enough for most sane code.
1768 */
1769static int reg_val_propagate(struct jit_ctx *ctx)
1770{
1771 const struct bpf_prog *prog = ctx->skf;
1772 u64 exit_rvt;
1773 int reg;
1774 int i;
1775
1776 /*
1777 * 11 registers * 3 bits/reg leaves top bits free for other
1778 * uses. Bit-62..63 used to see if we have visited an insn.
1779 */
1780 exit_rvt = 0;
1781
1782 /* Upon entry, argument registers are 64-bit. */
1783 for (reg = BPF_REG_1; reg <= BPF_REG_5; reg++)
1784 set_reg_val_type(&exit_rvt, reg, REG_64BIT);
1785
1786 /*
1787 * First follow all conditional branches on the fall-through
1788 * edge of control flow..
1789 */
1790 reg_val_propagate_range(ctx, exit_rvt, 0, false);
1791restart_search:
1792 /*
1793 * Then repeatedly find the first conditional branch where
1794 * both edges of control flow have not been taken, and follow
1795 * the branch taken edge. We will end up restarting the
1796 * search once per conditional branch insn.
1797 */
1798 for (i = 0; i < prog->len; i++) {
1799 u64 rvt = ctx->reg_val_types[i];
1800
1801 if ((rvt & RVT_VISITED_MASK) == RVT_DONE ||
1802 (rvt & RVT_VISITED_MASK) == 0)
1803 continue;
1804 if ((rvt & RVT_VISITED_MASK) == RVT_FALL_THROUGH) {
1805 reg_val_propagate_range(ctx, rvt & ~RVT_VISITED_MASK, i, true);
1806 } else { /* RVT_BRANCH_TAKEN */
1807 WARN(1, "Unexpected RVT_BRANCH_TAKEN case.\n");
1808 reg_val_propagate_range(ctx, rvt & ~RVT_VISITED_MASK, i, false);
1809 }
1810 goto restart_search;
1811 }
1812 /*
1813 * Eventually all conditional branches have been followed on
1814 * both branches and we are done. Any insn that has not been
1815 * visited at this point is dead.
1816 */
1817
1818 return 0;
1819}
1820
1821static void jit_fill_hole(void *area, unsigned int size)
1822{
1823 u32 *p;
1824
1825 /* We are guaranteed to have aligned memory. */
1826 for (p = area; size >= sizeof(u32); size -= sizeof(u32))
1827 uasm_i_break(&p, BRK_BUG); /* Increments p */
1828}
1829
1830struct bpf_prog *bpf_int_jit_compile(struct bpf_prog *prog)
1831{
1832 struct bpf_prog *orig_prog = prog;
1833 bool tmp_blinded = false;
1834 struct bpf_prog *tmp;
1835 struct bpf_binary_header *header = NULL;
1836 struct jit_ctx ctx;
1837 unsigned int image_size;
1838 u8 *image_ptr;
1839
1840 if (!bpf_jit_enable || !cpu_has_mips64r2)
1841 return prog;
1842
1843 tmp = bpf_jit_blind_constants(prog);
1844 /* If blinding was requested and we failed during blinding,
1845 * we must fall back to the interpreter.
1846 */
1847 if (IS_ERR(tmp))
1848 return orig_prog;
1849 if (tmp != prog) {
1850 tmp_blinded = true;
1851 prog = tmp;
1852 }
1853
1854 memset(&ctx, 0, sizeof(ctx));
1855
1856 ctx.offsets = kcalloc(prog->len + 1, sizeof(*ctx.offsets), GFP_KERNEL);
1857 if (ctx.offsets == NULL)
1858 goto out_err;
1859
1860 ctx.reg_val_types = kcalloc(prog->len + 1, sizeof(*ctx.reg_val_types), GFP_KERNEL);
1861 if (ctx.reg_val_types == NULL)
1862 goto out_err;
1863
1864 ctx.skf = prog;
1865
1866 if (reg_val_propagate(&ctx))
1867 goto out_err;
1868
1869 /*
1870 * First pass discovers used resources and instruction offsets
1871 * assuming short branches are used.
1872 */
1873 if (build_int_body(&ctx))
1874 goto out_err;
1875
1876 /*
1877 * If no calls are made (EBPF_SAVE_RA), then tail call count
1878 * in $v1, else we must save in n$s4.
1879 */
1880 if (ctx.flags & EBPF_SEEN_TC) {
1881 if (ctx.flags & EBPF_SAVE_RA)
1882 ctx.flags |= EBPF_SAVE_S4;
1883 else
1884 ctx.flags |= EBPF_TCC_IN_V1;
1885 }
1886
1887 /*
1888 * Second pass generates offsets, if any branches are out of
1889 * range a jump-around long sequence is generated, and we have
1890 * to try again from the beginning to generate the new
1891 * offsets. This is done until no additional conversions are
1892 * necessary.
1893 */
1894 do {
1895 ctx.idx = 0;
1896 ctx.gen_b_offsets = 1;
1897 ctx.long_b_conversion = 0;
1898 if (gen_int_prologue(&ctx))
1899 goto out_err;
1900 if (build_int_body(&ctx))
1901 goto out_err;
1902 if (build_int_epilogue(&ctx, MIPS_R_RA))
1903 goto out_err;
1904 } while (ctx.long_b_conversion);
1905
1906 image_size = 4 * ctx.idx;
1907
1908 header = bpf_jit_binary_alloc(image_size, &image_ptr,
1909 sizeof(u32), jit_fill_hole);
1910 if (header == NULL)
1911 goto out_err;
1912
1913 ctx.target = (u32 *)image_ptr;
1914
1915 /* Third pass generates the code */
1916 ctx.idx = 0;
1917 if (gen_int_prologue(&ctx))
1918 goto out_err;
1919 if (build_int_body(&ctx))
1920 goto out_err;
1921 if (build_int_epilogue(&ctx, MIPS_R_RA))
1922 goto out_err;
1923
1924 /* Update the icache */
1925 flush_icache_range((unsigned long)ctx.target,
1926 (unsigned long)(ctx.target + ctx.idx * sizeof(u32)));
1927
1928 if (bpf_jit_enable > 1)
1929 /* Dump JIT code */
1930 bpf_jit_dump(prog->len, image_size, 2, ctx.target);
1931
1932 bpf_jit_binary_lock_ro(header);
1933 prog->bpf_func = (void *)ctx.target;
1934 prog->jited = 1;
1935 prog->jited_len = image_size;
1936out_normal:
1937 if (tmp_blinded)
1938 bpf_jit_prog_release_other(prog, prog == orig_prog ?
1939 tmp : orig_prog);
1940 kfree(ctx.offsets);
1941 kfree(ctx.reg_val_types);
1942
1943 return prog;
1944
1945out_err:
1946 prog = orig_prog;
1947 if (header)
1948 bpf_jit_binary_free(header);
1949 goto out_normal;
1950}
diff --git a/arch/mips/ralink/mt7620.c b/arch/mips/ralink/mt7620.c
index 094a0ee4af46..9be8b08ae46b 100644
--- a/arch/mips/ralink/mt7620.c
+++ b/arch/mips/ralink/mt7620.c
@@ -12,6 +12,7 @@
12 12
13#include <linux/kernel.h> 13#include <linux/kernel.h>
14#include <linux/init.h> 14#include <linux/init.h>
15#include <linux/bug.h>
15 16
16#include <asm/mipsregs.h> 17#include <asm/mipsregs.h>
17#include <asm/mach-ralink/ralink_regs.h> 18#include <asm/mach-ralink/ralink_regs.h>
diff --git a/arch/parisc/Kconfig b/arch/parisc/Kconfig
index 531da9eb8f43..dda1f558ef35 100644
--- a/arch/parisc/Kconfig
+++ b/arch/parisc/Kconfig
@@ -47,6 +47,9 @@ config PARISC
47 and later HP3000 series). The PA-RISC Linux project home page is 47 and later HP3000 series). The PA-RISC Linux project home page is
48 at <http://www.parisc-linux.org/>. 48 at <http://www.parisc-linux.org/>.
49 49
50config CPU_BIG_ENDIAN
51 def_bool y
52
50config MMU 53config MMU
51 def_bool y 54 def_bool y
52 55
diff --git a/arch/parisc/configs/712_defconfig b/arch/parisc/configs/712_defconfig
index 143d02652792..ccc109761f44 100644
--- a/arch/parisc/configs/712_defconfig
+++ b/arch/parisc/configs/712_defconfig
@@ -1,11 +1,9 @@
1CONFIG_EXPERIMENTAL=y
2# CONFIG_LOCALVERSION_AUTO is not set 1# CONFIG_LOCALVERSION_AUTO is not set
3CONFIG_SYSVIPC=y 2CONFIG_SYSVIPC=y
4CONFIG_POSIX_MQUEUE=y 3CONFIG_POSIX_MQUEUE=y
5CONFIG_IKCONFIG=y 4CONFIG_IKCONFIG=y
6CONFIG_IKCONFIG_PROC=y 5CONFIG_IKCONFIG_PROC=y
7CONFIG_LOG_BUF_SHIFT=16 6CONFIG_LOG_BUF_SHIFT=16
8CONFIG_SYSFS_DEPRECATED_V2=y
9CONFIG_BLK_DEV_INITRD=y 7CONFIG_BLK_DEV_INITRD=y
10CONFIG_KALLSYMS_ALL=y 8CONFIG_KALLSYMS_ALL=y
11CONFIG_SLAB=y 9CONFIG_SLAB=y
@@ -14,7 +12,6 @@ CONFIG_OPROFILE=m
14CONFIG_MODULES=y 12CONFIG_MODULES=y
15CONFIG_MODULE_UNLOAD=y 13CONFIG_MODULE_UNLOAD=y
16CONFIG_MODULE_FORCE_UNLOAD=y 14CONFIG_MODULE_FORCE_UNLOAD=y
17# CONFIG_BLK_DEV_BSG is not set
18CONFIG_PA7100LC=y 15CONFIG_PA7100LC=y
19CONFIG_PREEMPT_VOLUNTARY=y 16CONFIG_PREEMPT_VOLUNTARY=y
20CONFIG_GSC_LASI=y 17CONFIG_GSC_LASI=y
@@ -32,11 +29,9 @@ CONFIG_IP_PNP_DHCP=y
32CONFIG_IP_PNP_BOOTP=y 29CONFIG_IP_PNP_BOOTP=y
33CONFIG_INET_AH=m 30CONFIG_INET_AH=m
34CONFIG_INET_ESP=m 31CONFIG_INET_ESP=m
35# CONFIG_INET_LRO is not set
36CONFIG_INET_DIAG=m 32CONFIG_INET_DIAG=m
37# CONFIG_IPV6 is not set 33# CONFIG_IPV6 is not set
38CONFIG_NETFILTER=y 34CONFIG_NETFILTER=y
39CONFIG_IP_NF_QUEUE=m
40CONFIG_LLC2=m 35CONFIG_LLC2=m
41CONFIG_NET_PKTGEN=m 36CONFIG_NET_PKTGEN=m
42CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 37CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
@@ -65,21 +60,20 @@ CONFIG_MD_LINEAR=m
65CONFIG_MD_RAID0=m 60CONFIG_MD_RAID0=m
66CONFIG_MD_RAID1=m 61CONFIG_MD_RAID1=m
67CONFIG_NETDEVICES=y 62CONFIG_NETDEVICES=y
68CONFIG_DUMMY=m
69CONFIG_BONDING=m 63CONFIG_BONDING=m
64CONFIG_DUMMY=m
70CONFIG_TUN=m 65CONFIG_TUN=m
71CONFIG_NET_ETHERNET=y
72CONFIG_MII=m
73CONFIG_LASI_82596=y 66CONFIG_LASI_82596=y
74CONFIG_PPP=m 67CONFIG_PPP=m
75CONFIG_PPP_ASYNC=m
76CONFIG_PPP_SYNC_TTY=m
77CONFIG_PPP_DEFLATE=m
78CONFIG_PPP_BSDCOMP=m 68CONFIG_PPP_BSDCOMP=m
69CONFIG_PPP_DEFLATE=m
79CONFIG_PPP_MPPE=m 70CONFIG_PPP_MPPE=m
80CONFIG_PPPOE=m 71CONFIG_PPPOE=m
72CONFIG_PPP_ASYNC=m
73CONFIG_PPP_SYNC_TTY=m
81# CONFIG_KEYBOARD_HIL_OLD is not set 74# CONFIG_KEYBOARD_HIL_OLD is not set
82CONFIG_MOUSE_SERIAL=m 75CONFIG_MOUSE_SERIAL=m
76CONFIG_LEGACY_PTY_COUNT=64
83CONFIG_SERIAL_8250=y 77CONFIG_SERIAL_8250=y
84CONFIG_SERIAL_8250_CONSOLE=y 78CONFIG_SERIAL_8250_CONSOLE=y
85CONFIG_SERIAL_8250_NR_UARTS=17 79CONFIG_SERIAL_8250_NR_UARTS=17
@@ -88,22 +82,17 @@ CONFIG_SERIAL_8250_MANY_PORTS=y
88CONFIG_SERIAL_8250_SHARE_IRQ=y 82CONFIG_SERIAL_8250_SHARE_IRQ=y
89# CONFIG_SERIAL_MUX is not set 83# CONFIG_SERIAL_MUX is not set
90CONFIG_PDC_CONSOLE=y 84CONFIG_PDC_CONSOLE=y
91CONFIG_LEGACY_PTY_COUNT=64
92CONFIG_PRINTER=m 85CONFIG_PRINTER=m
93CONFIG_PPDEV=m 86CONFIG_PPDEV=m
94# CONFIG_HW_RANDOM is not set 87# CONFIG_HW_RANDOM is not set
95CONFIG_RAW_DRIVER=y 88CONFIG_RAW_DRIVER=y
96# CONFIG_HWMON is not set 89# CONFIG_HWMON is not set
97CONFIG_VIDEO_OUTPUT_CONTROL=m
98CONFIG_FB=y 90CONFIG_FB=y
99CONFIG_FB_MODE_HELPERS=y 91CONFIG_FB_MODE_HELPERS=y
100CONFIG_FB_TILEBLITTING=y 92CONFIG_FB_TILEBLITTING=y
101CONFIG_DUMMY_CONSOLE_COLUMNS=128 93CONFIG_DUMMY_CONSOLE_COLUMNS=128
102CONFIG_DUMMY_CONSOLE_ROWS=48 94CONFIG_DUMMY_CONSOLE_ROWS=48
103CONFIG_FRAMEBUFFER_CONSOLE=y 95CONFIG_FRAMEBUFFER_CONSOLE=y
104CONFIG_FONTS=y
105CONFIG_FONT_8x8=y
106CONFIG_FONT_8x16=y
107CONFIG_LOGO=y 96CONFIG_LOGO=y
108# CONFIG_LOGO_LINUX_MONO is not set 97# CONFIG_LOGO_LINUX_MONO is not set
109# CONFIG_LOGO_LINUX_VGA16 is not set 98# CONFIG_LOGO_LINUX_VGA16 is not set
@@ -111,13 +100,9 @@ CONFIG_LOGO=y
111CONFIG_SOUND=y 100CONFIG_SOUND=y
112CONFIG_SND=y 101CONFIG_SND=y
113CONFIG_SND_SEQUENCER=y 102CONFIG_SND_SEQUENCER=y
114CONFIG_SND_MIXER_OSS=y
115CONFIG_SND_PCM_OSS=y
116CONFIG_SND_SEQUENCER_OSS=y
117CONFIG_SND_HARMONY=y 103CONFIG_SND_HARMONY=y
118CONFIG_EXT2_FS=y 104CONFIG_EXT2_FS=y
119CONFIG_EXT3_FS=y 105CONFIG_EXT3_FS=y
120# CONFIG_EXT3_FS_XATTR is not set
121CONFIG_JFS_FS=m 106CONFIG_JFS_FS=m
122CONFIG_XFS_FS=m 107CONFIG_XFS_FS=m
123CONFIG_AUTOFS4_FS=y 108CONFIG_AUTOFS4_FS=y
@@ -130,14 +115,10 @@ CONFIG_PROC_KCORE=y
130CONFIG_TMPFS=y 115CONFIG_TMPFS=y
131CONFIG_UFS_FS=m 116CONFIG_UFS_FS=m
132CONFIG_NFS_FS=y 117CONFIG_NFS_FS=y
133CONFIG_NFS_V3=y
134CONFIG_NFS_V4=y 118CONFIG_NFS_V4=y
135CONFIG_ROOT_NFS=y 119CONFIG_ROOT_NFS=y
136CONFIG_NFSD=m 120CONFIG_NFSD=m
137CONFIG_NFSD_V4=y 121CONFIG_NFSD_V4=y
138CONFIG_RPCSEC_GSS_SPKM3=m
139CONFIG_SMB_FS=m
140CONFIG_SMB_NLS_DEFAULT=y
141CONFIG_CIFS=m 122CONFIG_CIFS=m
142CONFIG_NLS_CODEPAGE_437=m 123CONFIG_NLS_CODEPAGE_437=m
143CONFIG_NLS_CODEPAGE_737=m 124CONFIG_NLS_CODEPAGE_737=m
@@ -177,21 +158,16 @@ CONFIG_NLS_ISO8859_15=m
177CONFIG_NLS_KOI8_R=m 158CONFIG_NLS_KOI8_R=m
178CONFIG_NLS_KOI8_U=m 159CONFIG_NLS_KOI8_U=m
179CONFIG_NLS_UTF8=m 160CONFIG_NLS_UTF8=m
180CONFIG_MAGIC_SYSRQ=y
181CONFIG_DEBUG_FS=y 161CONFIG_DEBUG_FS=y
162CONFIG_MAGIC_SYSRQ=y
182CONFIG_DEBUG_KERNEL=y 163CONFIG_DEBUG_KERNEL=y
183CONFIG_DEBUG_MUTEXES=y 164CONFIG_DEBUG_MUTEXES=y
184# CONFIG_RCU_CPU_STALL_DETECTOR is not set
185CONFIG_CRYPTO_NULL=m
186CONFIG_CRYPTO_TEST=m 165CONFIG_CRYPTO_TEST=m
187CONFIG_CRYPTO_HMAC=y 166CONFIG_CRYPTO_HMAC=y
188CONFIG_CRYPTO_MD4=m
189CONFIG_CRYPTO_MICHAEL_MIC=m 167CONFIG_CRYPTO_MICHAEL_MIC=m
190CONFIG_CRYPTO_SHA256=m
191CONFIG_CRYPTO_SHA512=m 168CONFIG_CRYPTO_SHA512=m
192CONFIG_CRYPTO_TGR192=m 169CONFIG_CRYPTO_TGR192=m
193CONFIG_CRYPTO_WP512=m 170CONFIG_CRYPTO_WP512=m
194CONFIG_CRYPTO_AES=m
195CONFIG_CRYPTO_ANUBIS=m 171CONFIG_CRYPTO_ANUBIS=m
196CONFIG_CRYPTO_BLOWFISH=m 172CONFIG_CRYPTO_BLOWFISH=m
197CONFIG_CRYPTO_CAST6=m 173CONFIG_CRYPTO_CAST6=m
@@ -200,6 +176,7 @@ CONFIG_CRYPTO_SERPENT=m
200CONFIG_CRYPTO_TEA=m 176CONFIG_CRYPTO_TEA=m
201CONFIG_CRYPTO_TWOFISH=m 177CONFIG_CRYPTO_TWOFISH=m
202CONFIG_CRYPTO_DEFLATE=m 178CONFIG_CRYPTO_DEFLATE=m
203# CONFIG_CRYPTO_ANSI_CPRNG is not set
204# CONFIG_CRYPTO_HW is not set 179# CONFIG_CRYPTO_HW is not set
205CONFIG_LIBCRC32C=m 180CONFIG_FONTS=y
181CONFIG_FONT_8x8=y
182CONFIG_FONT_8x16=y
diff --git a/arch/parisc/configs/a500_defconfig b/arch/parisc/configs/a500_defconfig
index 1a4f776b49b8..5acb93dcaabf 100644
--- a/arch/parisc/configs/a500_defconfig
+++ b/arch/parisc/configs/a500_defconfig
@@ -1,13 +1,10 @@
1CONFIG_EXPERIMENTAL=y
2# CONFIG_LOCALVERSION_AUTO is not set 1# CONFIG_LOCALVERSION_AUTO is not set
3CONFIG_SYSVIPC=y 2CONFIG_SYSVIPC=y
4CONFIG_POSIX_MQUEUE=y 3CONFIG_POSIX_MQUEUE=y
5CONFIG_IKCONFIG=y 4CONFIG_IKCONFIG=y
6CONFIG_IKCONFIG_PROC=y 5CONFIG_IKCONFIG_PROC=y
7CONFIG_LOG_BUF_SHIFT=16 6CONFIG_LOG_BUF_SHIFT=16
8CONFIG_SYSFS_DEPRECATED_V2=y
9CONFIG_BLK_DEV_INITRD=y 7CONFIG_BLK_DEV_INITRD=y
10# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
11CONFIG_EXPERT=y 8CONFIG_EXPERT=y
12CONFIG_KALLSYMS_ALL=y 9CONFIG_KALLSYMS_ALL=y
13CONFIG_SLAB=y 10CONFIG_SLAB=y
@@ -16,7 +13,6 @@ CONFIG_OPROFILE=m
16CONFIG_MODULES=y 13CONFIG_MODULES=y
17CONFIG_MODULE_UNLOAD=y 14CONFIG_MODULE_UNLOAD=y
18CONFIG_MODULE_FORCE_UNLOAD=y 15CONFIG_MODULE_FORCE_UNLOAD=y
19# CONFIG_BLK_DEV_BSG is not set
20CONFIG_PA8X00=y 16CONFIG_PA8X00=y
21CONFIG_64BIT=y 17CONFIG_64BIT=y
22CONFIG_SMP=y 18CONFIG_SMP=y
@@ -43,21 +39,17 @@ CONFIG_IP_PNP_DHCP=y
43CONFIG_IP_PNP_BOOTP=y 39CONFIG_IP_PNP_BOOTP=y
44CONFIG_INET_AH=m 40CONFIG_INET_AH=m
45CONFIG_INET_ESP=m 41CONFIG_INET_ESP=m
46# CONFIG_INET_LRO is not set
47CONFIG_INET6_AH=m 42CONFIG_INET6_AH=m
48CONFIG_INET6_ESP=m 43CONFIG_INET6_ESP=m
49CONFIG_INET6_IPCOMP=m 44CONFIG_INET6_IPCOMP=m
50CONFIG_IPV6_TUNNEL=m 45CONFIG_IPV6_TUNNEL=m
51CONFIG_NETFILTER=y 46CONFIG_NETFILTER=y
52# CONFIG_NETFILTER_XT_MATCH_DCCP is not set 47# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
53CONFIG_IP_NF_QUEUE=m
54CONFIG_IP_NF_IPTABLES=m 48CONFIG_IP_NF_IPTABLES=m
55CONFIG_IP_NF_MATCH_ECN=m 49CONFIG_IP_NF_MATCH_ECN=m
56CONFIG_IP_NF_MATCH_TTL=m 50CONFIG_IP_NF_MATCH_TTL=m
57CONFIG_IP_NF_FILTER=m 51CONFIG_IP_NF_FILTER=m
58CONFIG_IP_NF_TARGET_REJECT=m 52CONFIG_IP_NF_TARGET_REJECT=m
59CONFIG_IP_NF_TARGET_LOG=m
60CONFIG_IP_NF_TARGET_ULOG=m
61CONFIG_IP_NF_MANGLE=m 53CONFIG_IP_NF_MANGLE=m
62CONFIG_IP_NF_TARGET_ECN=m 54CONFIG_IP_NF_TARGET_ECN=m
63CONFIG_IP_NF_RAW=m 55CONFIG_IP_NF_RAW=m
@@ -70,7 +62,6 @@ CONFIG_IP6_NF_MATCH_OPTS=m
70CONFIG_IP6_NF_MATCH_HL=m 62CONFIG_IP6_NF_MATCH_HL=m
71CONFIG_IP6_NF_MATCH_IPV6HEADER=m 63CONFIG_IP6_NF_MATCH_IPV6HEADER=m
72CONFIG_IP6_NF_MATCH_RT=m 64CONFIG_IP6_NF_MATCH_RT=m
73CONFIG_IP6_NF_TARGET_LOG=m
74CONFIG_IP6_NF_FILTER=m 65CONFIG_IP6_NF_FILTER=m
75CONFIG_IP6_NF_TARGET_REJECT=m 66CONFIG_IP6_NF_TARGET_REJECT=m
76CONFIG_IP6_NF_MANGLE=m 67CONFIG_IP6_NF_MANGLE=m
@@ -94,7 +85,6 @@ CONFIG_BLK_DEV_SD=y
94CONFIG_CHR_DEV_ST=y 85CONFIG_CHR_DEV_ST=y
95CONFIG_BLK_DEV_SR=y 86CONFIG_BLK_DEV_SR=y
96CONFIG_CHR_DEV_SG=y 87CONFIG_CHR_DEV_SG=y
97CONFIG_SCSI_MULTI_LUN=y
98CONFIG_SCSI_ISCSI_ATTRS=m 88CONFIG_SCSI_ISCSI_ATTRS=m
99CONFIG_SCSI_SYM53C8XX_2=y 89CONFIG_SCSI_SYM53C8XX_2=y
100CONFIG_SCSI_QLOGIC_1280=m 90CONFIG_SCSI_QLOGIC_1280=m
@@ -106,43 +96,38 @@ CONFIG_MD_RAID0=y
106CONFIG_MD_RAID1=y 96CONFIG_MD_RAID1=y
107CONFIG_FUSION=y 97CONFIG_FUSION=y
108CONFIG_FUSION_SPI=m 98CONFIG_FUSION_SPI=m
109CONFIG_FUSION_FC=m
110CONFIG_FUSION_CTL=m 99CONFIG_FUSION_CTL=m
111CONFIG_NETDEVICES=y 100CONFIG_NETDEVICES=y
112CONFIG_DUMMY=m
113CONFIG_BONDING=m 101CONFIG_BONDING=m
102CONFIG_DUMMY=m
114CONFIG_TUN=m 103CONFIG_TUN=m
115CONFIG_NET_ETHERNET=y 104CONFIG_PCMCIA_3C574=m
116CONFIG_NET_VENDOR_3COM=y 105CONFIG_PCMCIA_3C589=m
117CONFIG_VORTEX=m 106CONFIG_VORTEX=m
118CONFIG_TYPHOON=m 107CONFIG_TYPHOON=m
108CONFIG_ACENIC=m
109CONFIG_ACENIC_OMIT_TIGON_I=y
110CONFIG_PCNET32=m
111CONFIG_TIGON3=m
119CONFIG_NET_TULIP=y 112CONFIG_NET_TULIP=y
120CONFIG_DE2104X=m 113CONFIG_DE2104X=m
121CONFIG_TULIP=y 114CONFIG_TULIP=y
122CONFIG_TULIP_MMIO=y 115CONFIG_TULIP_MMIO=y
123CONFIG_PCMCIA_XIRCOM=m 116CONFIG_PCMCIA_XIRCOM=m
124CONFIG_HP100=m 117CONFIG_HP100=m
125CONFIG_NET_PCI=y
126CONFIG_PCNET32=m
127CONFIG_E100=m 118CONFIG_E100=m
128CONFIG_ACENIC=m
129CONFIG_ACENIC_OMIT_TIGON_I=y
130CONFIG_E1000=m 119CONFIG_E1000=m
131CONFIG_TIGON3=m
132CONFIG_NET_PCMCIA=y
133CONFIG_PCMCIA_3C589=m
134CONFIG_PCMCIA_3C574=m
135CONFIG_PCMCIA_SMC91C92=m 120CONFIG_PCMCIA_SMC91C92=m
136CONFIG_PCMCIA_XIRC2PS=m 121CONFIG_PCMCIA_XIRC2PS=m
137CONFIG_PPP=m 122CONFIG_PPP=m
123CONFIG_PPP_BSDCOMP=m
124CONFIG_PPP_DEFLATE=m
138CONFIG_PPP_ASYNC=m 125CONFIG_PPP_ASYNC=m
139CONFIG_PPP_SYNC_TTY=m 126CONFIG_PPP_SYNC_TTY=m
140CONFIG_PPP_DEFLATE=m
141CONFIG_PPP_BSDCOMP=m
142# CONFIG_INPUT_MOUSEDEV is not set
143# CONFIG_INPUT_KEYBOARD is not set 127# CONFIG_INPUT_KEYBOARD is not set
144# CONFIG_INPUT_MOUSE is not set 128# CONFIG_INPUT_MOUSE is not set
145# CONFIG_SERIO is not set 129# CONFIG_SERIO is not set
130# CONFIG_LEGACY_PTYS is not set
146CONFIG_SERIAL_8250=y 131CONFIG_SERIAL_8250=y
147CONFIG_SERIAL_8250_CONSOLE=y 132CONFIG_SERIAL_8250_CONSOLE=y
148CONFIG_SERIAL_8250_CS=m 133CONFIG_SERIAL_8250_CS=m
@@ -151,7 +136,6 @@ CONFIG_SERIAL_8250_EXTENDED=y
151CONFIG_SERIAL_8250_MANY_PORTS=y 136CONFIG_SERIAL_8250_MANY_PORTS=y
152CONFIG_SERIAL_8250_SHARE_IRQ=y 137CONFIG_SERIAL_8250_SHARE_IRQ=y
153CONFIG_PDC_CONSOLE=y 138CONFIG_PDC_CONSOLE=y
154# CONFIG_LEGACY_PTYS is not set
155# CONFIG_HW_RANDOM is not set 139# CONFIG_HW_RANDOM is not set
156CONFIG_RAW_DRIVER=y 140CONFIG_RAW_DRIVER=y
157# CONFIG_HWMON is not set 141# CONFIG_HWMON is not set
@@ -160,7 +144,6 @@ CONFIG_AGP_PARISC=y
160# CONFIG_STI_CONSOLE is not set 144# CONFIG_STI_CONSOLE is not set
161CONFIG_EXT2_FS=y 145CONFIG_EXT2_FS=y
162CONFIG_EXT3_FS=y 146CONFIG_EXT3_FS=y
163# CONFIG_EXT3_FS_XATTR is not set
164CONFIG_JFS_FS=m 147CONFIG_JFS_FS=m
165CONFIG_XFS_FS=m 148CONFIG_XFS_FS=m
166CONFIG_AUTOFS4_FS=y 149CONFIG_AUTOFS4_FS=y
@@ -173,13 +156,9 @@ CONFIG_PROC_KCORE=y
173CONFIG_TMPFS=y 156CONFIG_TMPFS=y
174CONFIG_UFS_FS=m 157CONFIG_UFS_FS=m
175CONFIG_NFS_FS=m 158CONFIG_NFS_FS=m
176CONFIG_NFS_V3=y 159CONFIG_NFS_V4=m
177CONFIG_NFS_V4=y
178CONFIG_NFSD=m 160CONFIG_NFSD=m
179CONFIG_NFSD_V4=y 161CONFIG_NFSD_V4=y
180CONFIG_RPCSEC_GSS_SPKM3=m
181CONFIG_SMB_FS=m
182CONFIG_SMB_NLS_DEFAULT=y
183CONFIG_CIFS=m 162CONFIG_CIFS=m
184CONFIG_NLS_CODEPAGE_437=m 163CONFIG_NLS_CODEPAGE_437=m
185CONFIG_NLS_CODEPAGE_850=m 164CONFIG_NLS_CODEPAGE_850=m
@@ -187,17 +166,12 @@ CONFIG_NLS_ASCII=m
187CONFIG_NLS_ISO8859_1=m 166CONFIG_NLS_ISO8859_1=m
188CONFIG_NLS_ISO8859_15=m 167CONFIG_NLS_ISO8859_15=m
189CONFIG_NLS_UTF8=m 168CONFIG_NLS_UTF8=m
190CONFIG_MAGIC_SYSRQ=y
191CONFIG_DEBUG_FS=y 169CONFIG_DEBUG_FS=y
192CONFIG_HEADERS_CHECK=y 170CONFIG_HEADERS_CHECK=y
193CONFIG_DEBUG_KERNEL=y 171CONFIG_MAGIC_SYSRQ=y
194# CONFIG_DEBUG_BUGVERBOSE is not set 172# CONFIG_DEBUG_BUGVERBOSE is not set
195# CONFIG_RCU_CPU_STALL_DETECTOR is not set
196CONFIG_CRYPTO_NULL=m
197CONFIG_CRYPTO_TEST=m 173CONFIG_CRYPTO_TEST=m
198CONFIG_CRYPTO_HMAC=y 174CONFIG_CRYPTO_HMAC=y
199CONFIG_CRYPTO_MD5=y 175CONFIG_CRYPTO_MD5=y
200CONFIG_CRYPTO_BLOWFISH=m 176CONFIG_CRYPTO_BLOWFISH=m
201# CONFIG_CRYPTO_ANSI_CPRNG is not set
202# CONFIG_CRYPTO_HW is not set 177# CONFIG_CRYPTO_HW is not set
203CONFIG_LIBCRC32C=m
diff --git a/arch/parisc/configs/b180_defconfig b/arch/parisc/configs/b180_defconfig
index f1a0c25bef8d..83ffd161aec5 100644
--- a/arch/parisc/configs/b180_defconfig
+++ b/arch/parisc/configs/b180_defconfig
@@ -3,7 +3,6 @@ CONFIG_SYSVIPC=y
3CONFIG_IKCONFIG=y 3CONFIG_IKCONFIG=y
4CONFIG_IKCONFIG_PROC=y 4CONFIG_IKCONFIG_PROC=y
5CONFIG_LOG_BUF_SHIFT=16 5CONFIG_LOG_BUF_SHIFT=16
6CONFIG_SYSFS_DEPRECATED_V2=y
7CONFIG_BLK_DEV_INITRD=y 6CONFIG_BLK_DEV_INITRD=y
8CONFIG_SLAB=y 7CONFIG_SLAB=y
9CONFIG_MODULES=y 8CONFIG_MODULES=y
@@ -25,8 +24,6 @@ CONFIG_INET=y
25CONFIG_IP_MULTICAST=y 24CONFIG_IP_MULTICAST=y
26CONFIG_IP_PNP=y 25CONFIG_IP_PNP=y
27CONFIG_IP_PNP_BOOTP=y 26CONFIG_IP_PNP_BOOTP=y
28# CONFIG_INET_LRO is not set
29CONFIG_IPV6=y
30CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 27CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
31CONFIG_DEVTMPFS=y 28CONFIG_DEVTMPFS=y
32CONFIG_DEVTMPFS_MOUNT=y 29CONFIG_DEVTMPFS_MOUNT=y
@@ -53,10 +50,9 @@ CONFIG_MD_LINEAR=y
53CONFIG_MD_RAID0=y 50CONFIG_MD_RAID0=y
54CONFIG_MD_RAID1=y 51CONFIG_MD_RAID1=y
55CONFIG_NETDEVICES=y 52CONFIG_NETDEVICES=y
56CONFIG_NET_ETHERNET=y
57CONFIG_LASI_82596=y
58CONFIG_NET_TULIP=y 53CONFIG_NET_TULIP=y
59CONFIG_TULIP=y 54CONFIG_TULIP=y
55CONFIG_LASI_82596=y
60CONFIG_PPP=y 56CONFIG_PPP=y
61CONFIG_INPUT_EVDEV=y 57CONFIG_INPUT_EVDEV=y
62# CONFIG_KEYBOARD_HIL_OLD is not set 58# CONFIG_KEYBOARD_HIL_OLD is not set
@@ -71,40 +67,31 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
71CONFIG_PRINTER=y 67CONFIG_PRINTER=y
72# CONFIG_HW_RANDOM is not set 68# CONFIG_HW_RANDOM is not set
73# CONFIG_HWMON is not set 69# CONFIG_HWMON is not set
74CONFIG_VIDEO_OUTPUT_CONTROL=m
75CONFIG_FB=y 70CONFIG_FB=y
76CONFIG_FRAMEBUFFER_CONSOLE=y 71CONFIG_FRAMEBUFFER_CONSOLE=y
77CONFIG_LOGO=y 72CONFIG_LOGO=y
78CONFIG_SOUND=y 73CONFIG_SOUND=y
79CONFIG_SND=y 74CONFIG_SND=y
80CONFIG_SND_SEQUENCER=y 75CONFIG_SND_SEQUENCER=y
81CONFIG_SND_MIXER_OSS=y
82CONFIG_SND_PCM_OSS=y
83CONFIG_SND_SEQUENCER_OSS=y
84CONFIG_SND_HARMONY=y 76CONFIG_SND_HARMONY=y
85CONFIG_EXT2_FS=y 77CONFIG_EXT2_FS=y
86CONFIG_EXT3_FS=y 78CONFIG_EXT3_FS=y
87# CONFIG_EXT3_FS_XATTR is not set
88CONFIG_AUTOFS4_FS=y 79CONFIG_AUTOFS4_FS=y
89CONFIG_ISO9660_FS=y 80CONFIG_ISO9660_FS=y
90CONFIG_JOLIET=y 81CONFIG_JOLIET=y
91CONFIG_PROC_KCORE=y 82CONFIG_PROC_KCORE=y
92CONFIG_TMPFS=y 83CONFIG_TMPFS=y
93CONFIG_NFS_FS=y 84CONFIG_NFS_FS=y
94CONFIG_NFS_V3=y
95CONFIG_ROOT_NFS=y 85CONFIG_ROOT_NFS=y
96CONFIG_NFSD=y 86CONFIG_NFSD=y
97CONFIG_NFSD_V3=y 87CONFIG_NFSD_V3=y
98CONFIG_SMB_FS=y
99CONFIG_NLS_CODEPAGE_437=m 88CONFIG_NLS_CODEPAGE_437=m
100CONFIG_NLS_CODEPAGE_850=m 89CONFIG_NLS_CODEPAGE_850=m
101CONFIG_NLS_ASCII=m 90CONFIG_NLS_ASCII=m
102CONFIG_NLS_ISO8859_1=m 91CONFIG_NLS_ISO8859_1=m
103CONFIG_NLS_ISO8859_15=m 92CONFIG_NLS_ISO8859_15=m
104CONFIG_NLS_UTF8=m 93CONFIG_NLS_UTF8=m
105CONFIG_MAGIC_SYSRQ=y
106CONFIG_HEADERS_CHECK=y 94CONFIG_HEADERS_CHECK=y
95CONFIG_MAGIC_SYSRQ=y
107CONFIG_DEBUG_KERNEL=y 96CONFIG_DEBUG_KERNEL=y
108# CONFIG_RCU_CPU_STALL_DETECTOR is not set
109CONFIG_SECURITY=y 97CONFIG_SECURITY=y
110# CONFIG_CRYPTO_ANSI_CPRNG is not set
diff --git a/arch/parisc/configs/c3000_defconfig b/arch/parisc/configs/c3000_defconfig
index 8e8f0e34f817..0764d3971cf6 100644
--- a/arch/parisc/configs/c3000_defconfig
+++ b/arch/parisc/configs/c3000_defconfig
@@ -1,12 +1,9 @@
1CONFIG_EXPERIMENTAL=y
2# CONFIG_LOCALVERSION_AUTO is not set 1# CONFIG_LOCALVERSION_AUTO is not set
3CONFIG_SYSVIPC=y 2CONFIG_SYSVIPC=y
4CONFIG_IKCONFIG=y 3CONFIG_IKCONFIG=y
5CONFIG_IKCONFIG_PROC=y 4CONFIG_IKCONFIG_PROC=y
6CONFIG_LOG_BUF_SHIFT=16 5CONFIG_LOG_BUF_SHIFT=16
7CONFIG_SYSFS_DEPRECATED_V2=y
8CONFIG_BLK_DEV_INITRD=y 6CONFIG_BLK_DEV_INITRD=y
9# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
10CONFIG_EXPERT=y 7CONFIG_EXPERT=y
11CONFIG_KALLSYMS_ALL=y 8CONFIG_KALLSYMS_ALL=y
12CONFIG_SLAB=y 9CONFIG_SLAB=y
@@ -15,7 +12,6 @@ CONFIG_OPROFILE=m
15CONFIG_MODULES=y 12CONFIG_MODULES=y
16CONFIG_MODULE_UNLOAD=y 13CONFIG_MODULE_UNLOAD=y
17CONFIG_MODULE_FORCE_UNLOAD=y 14CONFIG_MODULE_FORCE_UNLOAD=y
18# CONFIG_BLK_DEV_BSG is not set
19CONFIG_PA8X00=y 15CONFIG_PA8X00=y
20CONFIG_PREEMPT_VOLUNTARY=y 16CONFIG_PREEMPT_VOLUNTARY=y
21# CONFIG_GSC is not set 17# CONFIG_GSC is not set
@@ -31,13 +27,11 @@ CONFIG_INET=y
31CONFIG_IP_MULTICAST=y 27CONFIG_IP_MULTICAST=y
32CONFIG_IP_PNP=y 28CONFIG_IP_PNP=y
33CONFIG_IP_PNP_BOOTP=y 29CONFIG_IP_PNP_BOOTP=y
34# CONFIG_INET_LRO is not set
35# CONFIG_INET_DIAG is not set 30# CONFIG_INET_DIAG is not set
36CONFIG_INET6_IPCOMP=m 31CONFIG_INET6_IPCOMP=m
37CONFIG_IPV6_TUNNEL=m 32CONFIG_IPV6_TUNNEL=m
38CONFIG_NETFILTER=y 33CONFIG_NETFILTER=y
39CONFIG_NETFILTER_DEBUG=y 34CONFIG_NETFILTER_DEBUG=y
40CONFIG_IP_NF_QUEUE=m
41CONFIG_NET_PKTGEN=m 35CONFIG_NET_PKTGEN=m
42CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" 36CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
43CONFIG_DEVTMPFS=y 37CONFIG_DEVTMPFS=y
@@ -50,13 +44,11 @@ CONFIG_BLK_DEV_CRYPTOLOOP=m
50CONFIG_IDE=y 44CONFIG_IDE=y
51CONFIG_BLK_DEV_IDECD=y 45CONFIG_BLK_DEV_IDECD=y
52CONFIG_BLK_DEV_NS87415=y 46CONFIG_BLK_DEV_NS87415=y
53CONFIG_PATA_SIL680=m
54CONFIG_SCSI=y 47CONFIG_SCSI=y
55CONFIG_BLK_DEV_SD=y 48CONFIG_BLK_DEV_SD=y
56CONFIG_CHR_DEV_ST=y 49CONFIG_CHR_DEV_ST=y
57CONFIG_BLK_DEV_SR=y 50CONFIG_BLK_DEV_SR=y
58CONFIG_CHR_DEV_SG=y 51CONFIG_CHR_DEV_SG=y
59CONFIG_SCSI_MULTI_LUN=y
60CONFIG_SCSI_ISCSI_ATTRS=m 52CONFIG_SCSI_ISCSI_ATTRS=m
61CONFIG_SCSI_SYM53C8XX_2=y 53CONFIG_SCSI_SYM53C8XX_2=y
62CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0 54CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=0
@@ -76,28 +68,23 @@ CONFIG_FUSION=y
76CONFIG_FUSION_SPI=m 68CONFIG_FUSION_SPI=m
77CONFIG_FUSION_CTL=m 69CONFIG_FUSION_CTL=m
78CONFIG_NETDEVICES=y 70CONFIG_NETDEVICES=y
79CONFIG_DUMMY=m
80CONFIG_BONDING=m 71CONFIG_BONDING=m
72CONFIG_DUMMY=m
81CONFIG_TUN=m 73CONFIG_TUN=m
82CONFIG_NET_ETHERNET=y 74CONFIG_ACENIC=m
75CONFIG_TIGON3=m
83CONFIG_NET_TULIP=y 76CONFIG_NET_TULIP=y
84CONFIG_DE2104X=m 77CONFIG_DE2104X=m
85CONFIG_TULIP=y 78CONFIG_TULIP=y
86CONFIG_TULIP_MMIO=y 79CONFIG_TULIP_MMIO=y
87CONFIG_NET_PCI=y
88CONFIG_E100=m 80CONFIG_E100=m
89CONFIG_ACENIC=m
90CONFIG_E1000=m 81CONFIG_E1000=m
91CONFIG_TIGON3=m
92CONFIG_PPP=m 82CONFIG_PPP=m
93CONFIG_PPP_ASYNC=m
94CONFIG_PPP_SYNC_TTY=m
95CONFIG_PPP_DEFLATE=m
96CONFIG_PPP_BSDCOMP=m 83CONFIG_PPP_BSDCOMP=m
84CONFIG_PPP_DEFLATE=m
97CONFIG_PPPOE=m 85CONFIG_PPPOE=m
98# CONFIG_INPUT_MOUSEDEV_PSAUX is not set 86CONFIG_PPP_ASYNC=m
99CONFIG_INPUT_MOUSEDEV_SCREEN_X=1600 87CONFIG_PPP_SYNC_TTY=m
100CONFIG_INPUT_MOUSEDEV_SCREEN_Y=1200
101# CONFIG_KEYBOARD_ATKBD is not set 88# CONFIG_KEYBOARD_ATKBD is not set
102# CONFIG_MOUSE_PS2 is not set 89# CONFIG_MOUSE_PS2 is not set
103CONFIG_SERIO=m 90CONFIG_SERIO=m
@@ -111,7 +98,6 @@ CONFIG_SERIAL_8250_SHARE_IRQ=y
111# CONFIG_HW_RANDOM is not set 98# CONFIG_HW_RANDOM is not set
112CONFIG_RAW_DRIVER=y 99CONFIG_RAW_DRIVER=y
113# CONFIG_HWMON is not set 100# CONFIG_HWMON is not set
114CONFIG_VIDEO_OUTPUT_CONTROL=m
115CONFIG_FB=y 101CONFIG_FB=y
116CONFIG_FRAMEBUFFER_CONSOLE=y 102CONFIG_FRAMEBUFFER_CONSOLE=y
117CONFIG_LOGO=y 103CONFIG_LOGO=y
@@ -121,9 +107,6 @@ CONFIG_LOGO=y
121CONFIG_SOUND=y 107CONFIG_SOUND=y
122CONFIG_SND=y 108CONFIG_SND=y
123CONFIG_SND_SEQUENCER=y 109CONFIG_SND_SEQUENCER=y
124CONFIG_SND_MIXER_OSS=y
125CONFIG_SND_PCM_OSS=y
126CONFIG_SND_SEQUENCER_OSS=y
127CONFIG_SND_AD1889=y 110CONFIG_SND_AD1889=y
128CONFIG_USB_HIDDEV=y 111CONFIG_USB_HIDDEV=y
129CONFIG_USB=y 112CONFIG_USB=y
@@ -139,7 +122,6 @@ CONFIG_USB_MICROTEK=m
139CONFIG_USB_LEGOTOWER=m 122CONFIG_USB_LEGOTOWER=m
140CONFIG_EXT2_FS=y 123CONFIG_EXT2_FS=y
141CONFIG_EXT3_FS=y 124CONFIG_EXT3_FS=y
142# CONFIG_EXT3_FS_XATTR is not set
143CONFIG_XFS_FS=m 125CONFIG_XFS_FS=m
144CONFIG_AUTOFS4_FS=y 126CONFIG_AUTOFS4_FS=y
145CONFIG_ISO9660_FS=y 127CONFIG_ISO9660_FS=y
@@ -149,7 +131,6 @@ CONFIG_VFAT_FS=m
149CONFIG_PROC_KCORE=y 131CONFIG_PROC_KCORE=y
150CONFIG_TMPFS=y 132CONFIG_TMPFS=y
151CONFIG_NFS_FS=y 133CONFIG_NFS_FS=y
152CONFIG_NFS_V3=y
153CONFIG_ROOT_NFS=y 134CONFIG_ROOT_NFS=y
154CONFIG_NFSD=y 135CONFIG_NFSD=y
155CONFIG_NFSD_V3=y 136CONFIG_NFSD_V3=y
@@ -159,18 +140,13 @@ CONFIG_NLS_ASCII=m
159CONFIG_NLS_ISO8859_1=m 140CONFIG_NLS_ISO8859_1=m
160CONFIG_NLS_ISO8859_15=m 141CONFIG_NLS_ISO8859_15=m
161CONFIG_NLS_UTF8=m 142CONFIG_NLS_UTF8=m
162CONFIG_MAGIC_SYSRQ=y
163CONFIG_DEBUG_FS=y 143CONFIG_DEBUG_FS=y
164CONFIG_HEADERS_CHECK=y 144CONFIG_HEADERS_CHECK=y
165CONFIG_DEBUG_KERNEL=y 145CONFIG_MAGIC_SYSRQ=y
166CONFIG_DEBUG_MUTEXES=y 146CONFIG_DEBUG_MUTEXES=y
167# CONFIG_DEBUG_BUGVERBOSE is not set 147# CONFIG_DEBUG_BUGVERBOSE is not set
168# CONFIG_RCU_CPU_STALL_DETECTOR is not set
169CONFIG_CRYPTO_NULL=m
170CONFIG_CRYPTO_TEST=m 148CONFIG_CRYPTO_TEST=m
171CONFIG_CRYPTO_MD5=m 149CONFIG_CRYPTO_MD5=m
172CONFIG_CRYPTO_BLOWFISH=m 150CONFIG_CRYPTO_BLOWFISH=m
173CONFIG_CRYPTO_DES=m 151CONFIG_CRYPTO_DES=m
174# CONFIG_CRYPTO_ANSI_CPRNG is not set
175# CONFIG_CRYPTO_HW is not set 152# CONFIG_CRYPTO_HW is not set
176CONFIG_LIBCRC32C=m
diff --git a/arch/parisc/configs/c8000_defconfig b/arch/parisc/configs/c8000_defconfig
index f6a4c016304b..088ab948a5ca 100644
--- a/arch/parisc/configs/c8000_defconfig
+++ b/arch/parisc/configs/c8000_defconfig
@@ -1,16 +1,13 @@
1# CONFIG_LOCALVERSION_AUTO is not set 1# CONFIG_LOCALVERSION_AUTO is not set
2CONFIG_SYSVIPC=y 2CONFIG_SYSVIPC=y
3CONFIG_POSIX_MQUEUE=y 3CONFIG_POSIX_MQUEUE=y
4CONFIG_FHANDLE=y 4# CONFIG_CROSS_MEMORY_ATTACH is not set
5CONFIG_BSD_PROCESS_ACCT=y 5CONFIG_BSD_PROCESS_ACCT=y
6CONFIG_BSD_PROCESS_ACCT_V3=y 6CONFIG_BSD_PROCESS_ACCT_V3=y
7CONFIG_IKCONFIG=y 7CONFIG_IKCONFIG=y
8CONFIG_IKCONFIG_PROC=y 8CONFIG_IKCONFIG_PROC=y
9CONFIG_RELAY=y 9CONFIG_RELAY=y
10CONFIG_BLK_DEV_INITRD=y 10CONFIG_BLK_DEV_INITRD=y
11CONFIG_RD_BZIP2=y
12CONFIG_RD_LZMA=y
13CONFIG_RD_LZO=y
14CONFIG_EXPERT=y 11CONFIG_EXPERT=y
15CONFIG_SYSCTL_SYSCALL=y 12CONFIG_SYSCTL_SYSCALL=y
16CONFIG_SLAB=y 13CONFIG_SLAB=y
@@ -23,7 +20,6 @@ CONFIG_PA8X00=y
23CONFIG_64BIT=y 20CONFIG_64BIT=y
24CONFIG_SMP=y 21CONFIG_SMP=y
25CONFIG_PREEMPT=y 22CONFIG_PREEMPT=y
26# CONFIG_CROSS_MEMORY_ATTACH is not set
27CONFIG_IOMMU_CCIO=y 23CONFIG_IOMMU_CCIO=y
28CONFIG_PCI=y 24CONFIG_PCI=y
29CONFIG_PCI_LBA=y 25CONFIG_PCI_LBA=y
@@ -146,7 +142,6 @@ CONFIG_FB_FOREIGN_ENDIAN=y
146CONFIG_FB_MODE_HELPERS=y 142CONFIG_FB_MODE_HELPERS=y
147CONFIG_FB_TILEBLITTING=y 143CONFIG_FB_TILEBLITTING=y
148# CONFIG_FB_STI is not set 144# CONFIG_FB_STI is not set
149CONFIG_BACKLIGHT_LCD_SUPPORT=y
150# CONFIG_LCD_CLASS_DEVICE is not set 145# CONFIG_LCD_CLASS_DEVICE is not set
151# CONFIG_BACKLIGHT_GENERIC is not set 146# CONFIG_BACKLIGHT_GENERIC is not set
152CONFIG_FRAMEBUFFER_CONSOLE=y 147CONFIG_FRAMEBUFFER_CONSOLE=y
@@ -157,12 +152,9 @@ CONFIG_LOGO=y
157# CONFIG_LOGO_LINUX_CLUT224 is not set 152# CONFIG_LOGO_LINUX_CLUT224 is not set
158CONFIG_SOUND=m 153CONFIG_SOUND=m
159CONFIG_SND=m 154CONFIG_SND=m
155CONFIG_SND_VERBOSE_PRINTK=y
160CONFIG_SND_SEQUENCER=m 156CONFIG_SND_SEQUENCER=m
161CONFIG_SND_SEQ_DUMMY=m 157CONFIG_SND_SEQ_DUMMY=m
162CONFIG_SND_MIXER_OSS=m
163CONFIG_SND_PCM_OSS=m
164CONFIG_SND_SEQUENCER_OSS=y
165CONFIG_SND_VERBOSE_PRINTK=y
166CONFIG_SND_AD1889=m 158CONFIG_SND_AD1889=m
167# CONFIG_SND_USB is not set 159# CONFIG_SND_USB is not set
168# CONFIG_SND_GSC is not set 160# CONFIG_SND_GSC is not set
@@ -174,8 +166,6 @@ CONFIG_EXT2_FS_XATTR=y
174CONFIG_EXT2_FS_POSIX_ACL=y 166CONFIG_EXT2_FS_POSIX_ACL=y
175CONFIG_EXT2_FS_SECURITY=y 167CONFIG_EXT2_FS_SECURITY=y
176CONFIG_EXT3_FS=y 168CONFIG_EXT3_FS=y
177# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
178CONFIG_EXT4_FS=m
179CONFIG_REISERFS_FS=m 169CONFIG_REISERFS_FS=m
180CONFIG_REISERFS_PROC_INFO=y 170CONFIG_REISERFS_PROC_INFO=y
181CONFIG_XFS_FS=m 171CONFIG_XFS_FS=m
@@ -238,11 +228,8 @@ CONFIG_DEBUG_SLAB=y
238CONFIG_DEBUG_SLAB_LEAK=y 228CONFIG_DEBUG_SLAB_LEAK=y
239CONFIG_DEBUG_MEMORY_INIT=y 229CONFIG_DEBUG_MEMORY_INIT=y
240CONFIG_DEBUG_STACKOVERFLOW=y 230CONFIG_DEBUG_STACKOVERFLOW=y
241CONFIG_LOCKUP_DETECTOR=y
242CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
243CONFIG_PANIC_ON_OOPS=y 231CONFIG_PANIC_ON_OOPS=y
244CONFIG_DEBUG_RT_MUTEXES=y 232CONFIG_DEBUG_RT_MUTEXES=y
245CONFIG_PROVE_RCU_DELAY=y
246CONFIG_DEBUG_BLOCK_EXT_DEVT=y 233CONFIG_DEBUG_BLOCK_EXT_DEVT=y
247CONFIG_LATENCYTOP=y 234CONFIG_LATENCYTOP=y
248CONFIG_KEYS=y 235CONFIG_KEYS=y
diff --git a/arch/parisc/configs/default_defconfig b/arch/parisc/configs/default_defconfig
index 310b6657e4ac..52c9050a7c5c 100644
--- a/arch/parisc/configs/default_defconfig
+++ b/arch/parisc/configs/default_defconfig
@@ -1,11 +1,9 @@
1CONFIG_EXPERIMENTAL=y
2# CONFIG_LOCALVERSION_AUTO is not set 1# CONFIG_LOCALVERSION_AUTO is not set
3CONFIG_SYSVIPC=y 2CONFIG_SYSVIPC=y
4CONFIG_POSIX_MQUEUE=y 3CONFIG_POSIX_MQUEUE=y
5CONFIG_IKCONFIG=y 4CONFIG_IKCONFIG=y
6CONFIG_IKCONFIG_PROC=y 5CONFIG_IKCONFIG_PROC=y
7CONFIG_LOG_BUF_SHIFT=16 6CONFIG_LOG_BUF_SHIFT=16
8CONFIG_SYSFS_DEPRECATED_V2=y
9CONFIG_BLK_DEV_INITRD=y 7CONFIG_BLK_DEV_INITRD=y
10CONFIG_KALLSYMS_ALL=y 8CONFIG_KALLSYMS_ALL=y
11CONFIG_SLAB=y 9CONFIG_SLAB=y
@@ -41,9 +39,7 @@ CONFIG_IP_PNP_DHCP=y
41CONFIG_IP_PNP_BOOTP=y 39CONFIG_IP_PNP_BOOTP=y
42CONFIG_INET_AH=m 40CONFIG_INET_AH=m
43CONFIG_INET_ESP=m 41CONFIG_INET_ESP=m
44# CONFIG_INET_LRO is not set
45CONFIG_INET_DIAG=m 42CONFIG_INET_DIAG=m
46CONFIG_IPV6=y
47CONFIG_INET6_AH=y 43CONFIG_INET6_AH=y
48CONFIG_INET6_ESP=y 44CONFIG_INET6_ESP=y
49CONFIG_INET6_IPCOMP=y 45CONFIG_INET6_IPCOMP=y
@@ -82,26 +78,23 @@ CONFIG_MD_RAID1=y
82CONFIG_MD_RAID10=y 78CONFIG_MD_RAID10=y
83CONFIG_BLK_DEV_DM=y 79CONFIG_BLK_DEV_DM=y
84CONFIG_NETDEVICES=y 80CONFIG_NETDEVICES=y
85CONFIG_DUMMY=m
86CONFIG_BONDING=m 81CONFIG_BONDING=m
82CONFIG_DUMMY=m
87CONFIG_TUN=m 83CONFIG_TUN=m
88CONFIG_NET_ETHERNET=y
89CONFIG_MII=m
90CONFIG_LASI_82596=y
91CONFIG_NET_TULIP=y
92CONFIG_TULIP=y
93CONFIG_NET_PCI=y
94CONFIG_ACENIC=y 84CONFIG_ACENIC=y
95CONFIG_TIGON3=y 85CONFIG_TIGON3=y
96CONFIG_NET_PCMCIA=y 86CONFIG_NET_TULIP=y
87CONFIG_TULIP=y
88CONFIG_LASI_82596=y
97CONFIG_PPP=m 89CONFIG_PPP=m
98CONFIG_PPP_ASYNC=m
99CONFIG_PPP_SYNC_TTY=m
100CONFIG_PPP_DEFLATE=m
101CONFIG_PPP_BSDCOMP=m 90CONFIG_PPP_BSDCOMP=m
91CONFIG_PPP_DEFLATE=m
102CONFIG_PPPOE=m 92CONFIG_PPPOE=m
93CONFIG_PPP_ASYNC=m
94CONFIG_PPP_SYNC_TTY=m
103# CONFIG_KEYBOARD_HIL_OLD is not set 95# CONFIG_KEYBOARD_HIL_OLD is not set
104CONFIG_MOUSE_SERIAL=y 96CONFIG_MOUSE_SERIAL=y
97CONFIG_LEGACY_PTY_COUNT=64
105CONFIG_SERIAL_8250=y 98CONFIG_SERIAL_8250=y
106CONFIG_SERIAL_8250_CONSOLE=y 99CONFIG_SERIAL_8250_CONSOLE=y
107CONFIG_SERIAL_8250_CS=y 100CONFIG_SERIAL_8250_CS=y
@@ -109,31 +102,24 @@ CONFIG_SERIAL_8250_NR_UARTS=17
109CONFIG_SERIAL_8250_EXTENDED=y 102CONFIG_SERIAL_8250_EXTENDED=y
110CONFIG_SERIAL_8250_MANY_PORTS=y 103CONFIG_SERIAL_8250_MANY_PORTS=y
111CONFIG_SERIAL_8250_SHARE_IRQ=y 104CONFIG_SERIAL_8250_SHARE_IRQ=y
112CONFIG_LEGACY_PTY_COUNT=64
113CONFIG_PRINTER=m 105CONFIG_PRINTER=m
114CONFIG_PPDEV=m 106CONFIG_PPDEV=m
115# CONFIG_HW_RANDOM is not set 107# CONFIG_HW_RANDOM is not set
116# CONFIG_HWMON is not set 108# CONFIG_HWMON is not set
117CONFIG_VIDEO_OUTPUT_CONTROL=m
118CONFIG_FB=y 109CONFIG_FB=y
119CONFIG_FB_MODE_HELPERS=y 110CONFIG_FB_MODE_HELPERS=y
120CONFIG_FB_TILEBLITTING=y 111CONFIG_FB_TILEBLITTING=y
121CONFIG_DUMMY_CONSOLE_COLUMNS=128 112CONFIG_DUMMY_CONSOLE_COLUMNS=128
122CONFIG_DUMMY_CONSOLE_ROWS=48 113CONFIG_DUMMY_CONSOLE_ROWS=48
123CONFIG_FRAMEBUFFER_CONSOLE=y 114CONFIG_FRAMEBUFFER_CONSOLE=y
124CONFIG_FONTS=y
125CONFIG_FONT_8x16=y
126CONFIG_LOGO=y 115CONFIG_LOGO=y
127# CONFIG_LOGO_LINUX_MONO is not set 116# CONFIG_LOGO_LINUX_MONO is not set
128# CONFIG_LOGO_LINUX_VGA16 is not set 117# CONFIG_LOGO_LINUX_VGA16 is not set
129# CONFIG_LOGO_LINUX_CLUT224 is not set 118# CONFIG_LOGO_LINUX_CLUT224 is not set
130CONFIG_SOUND=y 119CONFIG_SOUND=y
131CONFIG_SND=y 120CONFIG_SND=y
132CONFIG_SND_SEQUENCER=y
133CONFIG_SND_MIXER_OSS=y
134CONFIG_SND_PCM_OSS=y
135CONFIG_SND_SEQUENCER_OSS=y
136CONFIG_SND_DYNAMIC_MINORS=y 121CONFIG_SND_DYNAMIC_MINORS=y
122CONFIG_SND_SEQUENCER=y
137CONFIG_SND_AD1889=y 123CONFIG_SND_AD1889=y
138CONFIG_SND_HARMONY=y 124CONFIG_SND_HARMONY=y
139CONFIG_HID_GYRATION=y 125CONFIG_HID_GYRATION=y
@@ -141,7 +127,6 @@ CONFIG_HID_NTRIG=y
141CONFIG_HID_PANTHERLORD=y 127CONFIG_HID_PANTHERLORD=y
142CONFIG_HID_PETALYNX=y 128CONFIG_HID_PETALYNX=y
143CONFIG_HID_SAMSUNG=y 129CONFIG_HID_SAMSUNG=y
144CONFIG_HID_SONY=y
145CONFIG_HID_SUNPLUS=y 130CONFIG_HID_SUNPLUS=y
146CONFIG_HID_TOPSEED=y 131CONFIG_HID_TOPSEED=y
147CONFIG_USB=y 132CONFIG_USB=y
@@ -150,21 +135,15 @@ CONFIG_USB_OHCI_HCD=y
150CONFIG_USB_UHCI_HCD=y 135CONFIG_USB_UHCI_HCD=y
151CONFIG_EXT2_FS=y 136CONFIG_EXT2_FS=y
152CONFIG_EXT3_FS=y 137CONFIG_EXT3_FS=y
153# CONFIG_EXT3_FS_XATTR is not set
154CONFIG_AUTOFS_FS=y
155CONFIG_ISO9660_FS=y 138CONFIG_ISO9660_FS=y
156CONFIG_JOLIET=y 139CONFIG_JOLIET=y
157CONFIG_VFAT_FS=y 140CONFIG_VFAT_FS=y
158CONFIG_PROC_KCORE=y 141CONFIG_PROC_KCORE=y
159CONFIG_TMPFS=y 142CONFIG_TMPFS=y
160CONFIG_NFS_FS=y 143CONFIG_NFS_FS=y
161CONFIG_NFS_V3=y
162CONFIG_ROOT_NFS=y 144CONFIG_ROOT_NFS=y
163CONFIG_NFSD=y 145CONFIG_NFSD=y
164CONFIG_NFSD_V4=y 146CONFIG_NFSD_V4=y
165CONFIG_RPCSEC_GSS_SPKM3=m
166CONFIG_SMB_FS=m
167CONFIG_SMB_NLS_DEFAULT=y
168CONFIG_CIFS=m 147CONFIG_CIFS=m
169CONFIG_NLS_CODEPAGE_437=y 148CONFIG_NLS_CODEPAGE_437=y
170CONFIG_NLS_CODEPAGE_737=m 149CONFIG_NLS_CODEPAGE_737=m
@@ -204,30 +183,24 @@ CONFIG_NLS_ISO8859_15=m
204CONFIG_NLS_KOI8_R=m 183CONFIG_NLS_KOI8_R=m
205CONFIG_NLS_KOI8_U=m 184CONFIG_NLS_KOI8_U=m
206CONFIG_NLS_UTF8=y 185CONFIG_NLS_UTF8=y
207CONFIG_MAGIC_SYSRQ=y
208CONFIG_DEBUG_FS=y 186CONFIG_DEBUG_FS=y
209CONFIG_HEADERS_CHECK=y 187CONFIG_HEADERS_CHECK=y
188CONFIG_MAGIC_SYSRQ=y
210CONFIG_DEBUG_KERNEL=y 189CONFIG_DEBUG_KERNEL=y
211CONFIG_DEBUG_MUTEXES=y 190CONFIG_DEBUG_MUTEXES=y
212# CONFIG_RCU_CPU_STALL_DETECTOR is not set
213CONFIG_KEYS=y 191CONFIG_KEYS=y
214CONFIG_CRYPTO_NULL=m
215CONFIG_CRYPTO_TEST=m 192CONFIG_CRYPTO_TEST=m
216CONFIG_CRYPTO_MD4=m
217CONFIG_CRYPTO_MICHAEL_MIC=m 193CONFIG_CRYPTO_MICHAEL_MIC=m
218CONFIG_CRYPTO_SHA256=m
219CONFIG_CRYPTO_SHA512=m 194CONFIG_CRYPTO_SHA512=m
220CONFIG_CRYPTO_TGR192=m 195CONFIG_CRYPTO_TGR192=m
221CONFIG_CRYPTO_WP512=m 196CONFIG_CRYPTO_WP512=m
222CONFIG_CRYPTO_AES=m
223CONFIG_CRYPTO_ANUBIS=m 197CONFIG_CRYPTO_ANUBIS=m
224CONFIG_CRYPTO_ARC4=m
225CONFIG_CRYPTO_BLOWFISH=m 198CONFIG_CRYPTO_BLOWFISH=m
226CONFIG_CRYPTO_CAST6=m 199CONFIG_CRYPTO_CAST6=m
227CONFIG_CRYPTO_KHAZAD=m 200CONFIG_CRYPTO_KHAZAD=m
228CONFIG_CRYPTO_SERPENT=m 201CONFIG_CRYPTO_SERPENT=m
229CONFIG_CRYPTO_TEA=m 202CONFIG_CRYPTO_TEA=m
230CONFIG_CRYPTO_TWOFISH=m 203CONFIG_CRYPTO_TWOFISH=m
231# CONFIG_CRYPTO_ANSI_CPRNG is not set
232# CONFIG_CRYPTO_HW is not set 204# CONFIG_CRYPTO_HW is not set
233CONFIG_LIBCRC32C=m 205CONFIG_LIBCRC32C=m
206CONFIG_FONTS=y
diff --git a/arch/parisc/configs/generic-32bit_defconfig b/arch/parisc/configs/generic-32bit_defconfig
index 8688ba7f5966..37ae4b57c001 100644
--- a/arch/parisc/configs/generic-32bit_defconfig
+++ b/arch/parisc/configs/generic-32bit_defconfig
@@ -2,15 +2,11 @@ CONFIG_LOCALVERSION="-32bit"
2# CONFIG_LOCALVERSION_AUTO is not set 2# CONFIG_LOCALVERSION_AUTO is not set
3CONFIG_SYSVIPC=y 3CONFIG_SYSVIPC=y
4CONFIG_POSIX_MQUEUE=y 4CONFIG_POSIX_MQUEUE=y
5CONFIG_FHANDLE=y
6CONFIG_BSD_PROCESS_ACCT=y 5CONFIG_BSD_PROCESS_ACCT=y
7CONFIG_IKCONFIG=y 6CONFIG_IKCONFIG=y
8CONFIG_IKCONFIG_PROC=y 7CONFIG_IKCONFIG_PROC=y
9CONFIG_LOG_BUF_SHIFT=16 8CONFIG_LOG_BUF_SHIFT=16
10CONFIG_BLK_DEV_INITRD=y 9CONFIG_BLK_DEV_INITRD=y
11CONFIG_RD_BZIP2=y
12CONFIG_RD_LZMA=y
13CONFIG_RD_LZO=y
14CONFIG_EXPERT=y 10CONFIG_EXPERT=y
15CONFIG_SYSCTL_SYSCALL=y 11CONFIG_SYSCTL_SYSCALL=y
16CONFIG_PERF_EVENTS=y 12CONFIG_PERF_EVENTS=y
@@ -49,7 +45,6 @@ CONFIG_INET_ESP=m
49# CONFIG_INET_XFRM_MODE_TRANSPORT is not set 45# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
50# CONFIG_INET_XFRM_MODE_TUNNEL is not set 46# CONFIG_INET_XFRM_MODE_TUNNEL is not set
51# CONFIG_INET_XFRM_MODE_BEET is not set 47# CONFIG_INET_XFRM_MODE_BEET is not set
52# CONFIG_INET_LRO is not set
53CONFIG_INET_DIAG=m 48CONFIG_INET_DIAG=m
54CONFIG_LLC2=m 49CONFIG_LLC2=m
55# CONFIG_WIRELESS is not set 50# CONFIG_WIRELESS is not set
@@ -149,10 +144,8 @@ CONFIG_PRINTER=m
149CONFIG_PPDEV=m 144CONFIG_PPDEV=m
150# CONFIG_HW_RANDOM is not set 145# CONFIG_HW_RANDOM is not set
151CONFIG_I2C=y 146CONFIG_I2C=y
152CONFIG_POWER_SUPPLY=y
153# CONFIG_HWMON is not set 147# CONFIG_HWMON is not set
154CONFIG_AGP=y 148CONFIG_AGP=y
155CONFIG_VIDEO_OUTPUT_CONTROL=y
156CONFIG_FB=y 149CONFIG_FB=y
157CONFIG_FB_FOREIGN_ENDIAN=y 150CONFIG_FB_FOREIGN_ENDIAN=y
158CONFIG_FB_MODE_HELPERS=y 151CONFIG_FB_MODE_HELPERS=y
@@ -169,11 +162,8 @@ CONFIG_LOGO=y
169# CONFIG_LOGO_LINUX_CLUT224 is not set 162# CONFIG_LOGO_LINUX_CLUT224 is not set
170CONFIG_SOUND=m 163CONFIG_SOUND=m
171CONFIG_SND=m 164CONFIG_SND=m
172CONFIG_SND_SEQUENCER=m
173CONFIG_SND_MIXER_OSS=m
174CONFIG_SND_PCM_OSS=m
175CONFIG_SND_SEQUENCER_OSS=y
176CONFIG_SND_DYNAMIC_MINORS=y 165CONFIG_SND_DYNAMIC_MINORS=y
166CONFIG_SND_SEQUENCER=m
177CONFIG_SND_AD1889=m 167CONFIG_SND_AD1889=m
178CONFIG_SND_HARMONY=m 168CONFIG_SND_HARMONY=m
179CONFIG_HIDRAW=y 169CONFIG_HIDRAW=y
@@ -223,12 +213,7 @@ CONFIG_EXT2_FS=y
223CONFIG_EXT2_FS_XATTR=y 213CONFIG_EXT2_FS_XATTR=y
224CONFIG_EXT2_FS_SECURITY=y 214CONFIG_EXT2_FS_SECURITY=y
225CONFIG_EXT3_FS=y 215CONFIG_EXT3_FS=y
226# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
227CONFIG_EXT3_FS_SECURITY=y 216CONFIG_EXT3_FS_SECURITY=y
228CONFIG_EXT4_FS=y
229CONFIG_XFS_FS=m
230CONFIG_XFS_QUOTA=y
231CONFIG_XFS_RT=y
232CONFIG_QUOTA=y 217CONFIG_QUOTA=y
233CONFIG_QUOTA_NETLINK_INTERFACE=y 218CONFIG_QUOTA_NETLINK_INTERFACE=y
234CONFIG_QFMT_V2=y 219CONFIG_QFMT_V2=y
@@ -293,15 +278,12 @@ CONFIG_DEBUG_MEMORY_INIT=y
293CONFIG_DEBUG_STACKOVERFLOW=y 278CONFIG_DEBUG_STACKOVERFLOW=y
294CONFIG_DEBUG_SHIRQ=y 279CONFIG_DEBUG_SHIRQ=y
295CONFIG_DETECT_HUNG_TASK=y 280CONFIG_DETECT_HUNG_TASK=y
296CONFIG_TIMER_STATS=y
297CONFIG_DEBUG_RT_MUTEXES=y 281CONFIG_DEBUG_RT_MUTEXES=y
298CONFIG_DEBUG_SPINLOCK=y 282CONFIG_DEBUG_SPINLOCK=y
299CONFIG_DEBUG_MUTEXES=y 283CONFIG_DEBUG_MUTEXES=y
300CONFIG_RCU_CPU_STALL_INFO=y
301CONFIG_LATENCYTOP=y 284CONFIG_LATENCYTOP=y
302CONFIG_LKDTM=m 285CONFIG_LKDTM=m
303CONFIG_KEYS=y 286CONFIG_KEYS=y
304CONFIG_CRYPTO_NULL=m
305CONFIG_CRYPTO_TEST=m 287CONFIG_CRYPTO_TEST=m
306CONFIG_CRYPTO_HMAC=y 288CONFIG_CRYPTO_HMAC=y
307CONFIG_CRYPTO_MD5=y 289CONFIG_CRYPTO_MD5=y
@@ -320,7 +302,6 @@ CONFIG_CRYPTO_SERPENT=m
320CONFIG_CRYPTO_TEA=m 302CONFIG_CRYPTO_TEA=m
321CONFIG_CRYPTO_TWOFISH=m 303CONFIG_CRYPTO_TWOFISH=m
322CONFIG_CRYPTO_DEFLATE=y 304CONFIG_CRYPTO_DEFLATE=y
323# CONFIG_CRYPTO_ANSI_CPRNG is not set
324CONFIG_CRC_CCITT=m 305CONFIG_CRC_CCITT=m
325CONFIG_CRC_T10DIF=y 306CONFIG_CRC_T10DIF=y
326CONFIG_FONTS=y 307CONFIG_FONTS=y
diff --git a/arch/parisc/configs/generic-64bit_defconfig b/arch/parisc/configs/generic-64bit_defconfig
index c564e6e1fa23..d39e7f821aba 100644
--- a/arch/parisc/configs/generic-64bit_defconfig
+++ b/arch/parisc/configs/generic-64bit_defconfig
@@ -8,10 +8,11 @@ CONFIG_TASKSTATS=y
8CONFIG_TASK_DELAY_ACCT=y 8CONFIG_TASK_DELAY_ACCT=y
9CONFIG_TASK_XACCT=y 9CONFIG_TASK_XACCT=y
10CONFIG_TASK_IO_ACCOUNTING=y 10CONFIG_TASK_IO_ACCOUNTING=y
11# CONFIG_UTS_NS is not set 11CONFIG_CGROUPS=y
12# CONFIG_IPC_NS is not set 12CONFIG_MEMCG=y
13# CONFIG_PID_NS is not set 13CONFIG_MEMCG_SWAP=y
14# CONFIG_NET_NS is not set 14CONFIG_CGROUP_PIDS=y
15CONFIG_CPUSETS=y
15CONFIG_RELAY=y 16CONFIG_RELAY=y
16CONFIG_BLK_DEV_INITRD=y 17CONFIG_BLK_DEV_INITRD=y
17CONFIG_CC_OPTIMIZE_FOR_SIZE=y 18CONFIG_CC_OPTIMIZE_FOR_SIZE=y
@@ -52,7 +53,6 @@ CONFIG_INET_ESP=m
52CONFIG_INET_XFRM_MODE_TRANSPORT=m 53CONFIG_INET_XFRM_MODE_TRANSPORT=m
53CONFIG_INET_XFRM_MODE_TUNNEL=m 54CONFIG_INET_XFRM_MODE_TUNNEL=m
54CONFIG_INET_XFRM_MODE_BEET=m 55CONFIG_INET_XFRM_MODE_BEET=m
55CONFIG_INET_LRO=m
56CONFIG_INET_DIAG=m 56CONFIG_INET_DIAG=m
57CONFIG_NETFILTER=y 57CONFIG_NETFILTER=y
58# CONFIG_NETFILTER_ADVANCED is not set 58# CONFIG_NETFILTER_ADVANCED is not set
@@ -84,7 +84,6 @@ CONFIG_PATA_SIL680=y
84CONFIG_ATA_GENERIC=y 84CONFIG_ATA_GENERIC=y
85CONFIG_MD=y 85CONFIG_MD=y
86CONFIG_MD_LINEAR=m 86CONFIG_MD_LINEAR=m
87CONFIG_MD_RAID0=m
88CONFIG_BLK_DEV_DM=m 87CONFIG_BLK_DEV_DM=m
89CONFIG_DM_RAID=m 88CONFIG_DM_RAID=m
90CONFIG_DM_UEVENT=y 89CONFIG_DM_UEVENT=y
@@ -138,21 +137,21 @@ CONFIG_QLGE=m
138# CONFIG_NET_VENDOR_TI is not set 137# CONFIG_NET_VENDOR_TI is not set
139# CONFIG_NET_VENDOR_VIA is not set 138# CONFIG_NET_VENDOR_VIA is not set
140# CONFIG_NET_VENDOR_WIZNET is not set 139# CONFIG_NET_VENDOR_WIZNET is not set
140CONFIG_MDIO_BITBANG=m
141CONFIG_PHYLIB=y 141CONFIG_PHYLIB=y
142CONFIG_MARVELL_PHY=m
143CONFIG_DAVICOM_PHY=m
144CONFIG_QSEMI_PHY=m
145CONFIG_LXT_PHY=m
146CONFIG_CICADA_PHY=m
147CONFIG_VITESSE_PHY=m
148CONFIG_SMSC_PHY=m
149CONFIG_BROADCOM_PHY=m 142CONFIG_BROADCOM_PHY=m
143CONFIG_CICADA_PHY=m
144CONFIG_DAVICOM_PHY=m
150CONFIG_ICPLUS_PHY=m 145CONFIG_ICPLUS_PHY=m
151CONFIG_REALTEK_PHY=m 146CONFIG_LSI_ET1011C_PHY=m
147CONFIG_LXT_PHY=m
148CONFIG_MARVELL_PHY=m
152CONFIG_NATIONAL_PHY=m 149CONFIG_NATIONAL_PHY=m
150CONFIG_QSEMI_PHY=m
151CONFIG_REALTEK_PHY=m
152CONFIG_SMSC_PHY=m
153CONFIG_STE10XP=m 153CONFIG_STE10XP=m
154CONFIG_LSI_ET1011C_PHY=m 154CONFIG_VITESSE_PHY=m
155CONFIG_MDIO_BITBANG=m
156CONFIG_SLIP=m 155CONFIG_SLIP=m
157CONFIG_SLIP_COMPRESSED=y 156CONFIG_SLIP_COMPRESSED=y
158CONFIG_SLIP_SMART=y 157CONFIG_SLIP_SMART=y
@@ -166,10 +165,8 @@ CONFIG_INPUT_MISC=y
166CONFIG_SERIO_SERPORT=m 165CONFIG_SERIO_SERPORT=m
167# CONFIG_HP_SDC is not set 166# CONFIG_HP_SDC is not set
168CONFIG_SERIO_RAW=m 167CONFIG_SERIO_RAW=m
169CONFIG_DEVPTS_MULTIPLE_INSTANCES=y
170# CONFIG_LEGACY_PTYS is not set 168# CONFIG_LEGACY_PTYS is not set
171CONFIG_NOZOMI=m 169CONFIG_NOZOMI=m
172# CONFIG_DEVKMEM is not set
173CONFIG_SERIAL_8250=y 170CONFIG_SERIAL_8250=y
174# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set 171# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set
175CONFIG_SERIAL_8250_CONSOLE=y 172CONFIG_SERIAL_8250_CONSOLE=y
@@ -207,10 +204,8 @@ CONFIG_AGP=y
207CONFIG_AGP_PARISC=y 204CONFIG_AGP_PARISC=y
208CONFIG_DRM=y 205CONFIG_DRM=y
209CONFIG_DRM_RADEON=y 206CONFIG_DRM_RADEON=y
210CONFIG_DRM_RADEON_UMS=y
211CONFIG_FIRMWARE_EDID=y 207CONFIG_FIRMWARE_EDID=y
212CONFIG_FB_MODE_HELPERS=y 208CONFIG_FB_MODE_HELPERS=y
213CONFIG_BACKLIGHT_LCD_SUPPORT=y
214# CONFIG_BACKLIGHT_GENERIC is not set 209# CONFIG_BACKLIGHT_GENERIC is not set
215CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y 210CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
216CONFIG_LOGO=y 211CONFIG_LOGO=y
@@ -246,8 +241,6 @@ CONFIG_EXT2_FS_XATTR=y
246CONFIG_EXT2_FS_SECURITY=y 241CONFIG_EXT2_FS_SECURITY=y
247CONFIG_EXT3_FS=y 242CONFIG_EXT3_FS=y
248CONFIG_EXT3_FS_SECURITY=y 243CONFIG_EXT3_FS_SECURITY=y
249CONFIG_EXT4_FS=y
250CONFIG_EXT4_FS_SECURITY=y
251CONFIG_XFS_FS=m 244CONFIG_XFS_FS=m
252CONFIG_BTRFS_FS=m 245CONFIG_BTRFS_FS=m
253CONFIG_QUOTA=y 246CONFIG_QUOTA=y
@@ -286,27 +279,16 @@ CONFIG_DEBUG_FS=y
286CONFIG_MAGIC_SYSRQ=y 279CONFIG_MAGIC_SYSRQ=y
287CONFIG_DEBUG_KERNEL=y 280CONFIG_DEBUG_KERNEL=y
288CONFIG_DEBUG_STACKOVERFLOW=y 281CONFIG_DEBUG_STACKOVERFLOW=y
289CONFIG_LOCKUP_DETECTOR=y
290CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC=y
291CONFIG_BOOTPARAM_HUNG_TASK_PANIC=y
292# CONFIG_SCHED_DEBUG is not set 282# CONFIG_SCHED_DEBUG is not set
293CONFIG_TIMER_STATS=y
294CONFIG_CRYPTO_MANAGER=y 283CONFIG_CRYPTO_MANAGER=y
295CONFIG_CRYPTO_ECB=m 284CONFIG_CRYPTO_ECB=m
296CONFIG_CRYPTO_PCBC=m 285CONFIG_CRYPTO_PCBC=m
297CONFIG_CRYPTO_MD4=m 286CONFIG_CRYPTO_MD4=m
298CONFIG_CRYPTO_MD5=y 287CONFIG_CRYPTO_MD5=y
299CONFIG_CRYPTO_MICHAEL_MIC=m 288CONFIG_CRYPTO_MICHAEL_MIC=m
300CONFIG_CRYPTO_SHA256=m
301CONFIG_CRYPTO_ARC4=m 289CONFIG_CRYPTO_ARC4=m
302CONFIG_CRYPTO_FCRYPT=m 290CONFIG_CRYPTO_FCRYPT=m
303CONFIG_CRYPTO_DEFLATE=m 291CONFIG_CRYPTO_DEFLATE=m
304# CONFIG_CRYPTO_HW is not set 292# CONFIG_CRYPTO_HW is not set
305CONFIG_CRC_CCITT=m 293CONFIG_CRC_CCITT=m
306CONFIG_LIBCRC32C=y 294CONFIG_LIBCRC32C=y
307CONFIG_XZ_DEC_X86=y
308CONFIG_XZ_DEC_POWERPC=y
309CONFIG_XZ_DEC_IA64=y
310CONFIG_XZ_DEC_ARM=y
311CONFIG_XZ_DEC_ARMTHUMB=y
312CONFIG_XZ_DEC_SPARC=y
diff --git a/arch/parisc/include/asm/pdcpat.h b/arch/parisc/include/asm/pdcpat.h
index 32e105fb8adb..e3c0586260d8 100644
--- a/arch/parisc/include/asm/pdcpat.h
+++ b/arch/parisc/include/asm/pdcpat.h
@@ -150,7 +150,7 @@
150#define PDC_PAT_MEM_SETGM 9L /* Set Good Memory value */ 150#define PDC_PAT_MEM_SETGM 9L /* Set Good Memory value */
151#define PDC_PAT_MEM_ADD_PAGE 10L /* ADDs a page to the cell */ 151#define PDC_PAT_MEM_ADD_PAGE 10L /* ADDs a page to the cell */
152#define PDC_PAT_MEM_ADDRESS 11L /* Get Physical Location From */ 152#define PDC_PAT_MEM_ADDRESS 11L /* Get Physical Location From */
153 /* Memory Address */ 153 /* Memory Address */
154#define PDC_PAT_MEM_GET_TXT_SIZE 12L /* Get Formatted Text Size */ 154#define PDC_PAT_MEM_GET_TXT_SIZE 12L /* Get Formatted Text Size */
155#define PDC_PAT_MEM_GET_PD_TXT 13L /* Get PD Formatted Text */ 155#define PDC_PAT_MEM_GET_PD_TXT 13L /* Get PD Formatted Text */
156#define PDC_PAT_MEM_GET_CELL_TXT 14L /* Get Cell Formatted Text */ 156#define PDC_PAT_MEM_GET_CELL_TXT 14L /* Get Cell Formatted Text */
@@ -228,6 +228,17 @@ struct pdc_pat_mem_read_pd_retinfo { /* PDC_PAT_MEM/PDC_PAT_MEM_PD_READ */
228 unsigned long pdt_entries; 228 unsigned long pdt_entries;
229}; 229};
230 230
231struct pdc_pat_mem_phys_mem_location { /* PDC_PAT_MEM/PDC_PAT_MEM_ADDRESS */
232 u64 cabinet:8;
233 u64 ign1:8;
234 u64 ign2:8;
235 u64 cell_slot:8;
236 u64 ign3:8;
237 u64 dimm_slot:8; /* DIMM slot, e.g. 0x1A, 0x2B, show user hex value! */
238 u64 ign4:8;
239 u64 source:4; /* for mem: always 0x07 */
240 u64 source_detail:4; /* for mem: always 0x04 (SIMM or DIMM) */
241};
231 242
232struct pdc_pat_pd_addr_map_entry { 243struct pdc_pat_pd_addr_map_entry {
233 unsigned char entry_type; /* 1 = Memory Descriptor Entry Type */ 244 unsigned char entry_type; /* 1 = Memory Descriptor Entry Type */
@@ -319,6 +330,9 @@ extern int pdc_pat_mem_read_cell_pdt(struct pdc_pat_mem_read_pd_retinfo *pret,
319extern int pdc_pat_mem_read_pd_pdt(struct pdc_pat_mem_read_pd_retinfo *pret, 330extern int pdc_pat_mem_read_pd_pdt(struct pdc_pat_mem_read_pd_retinfo *pret,
320 unsigned long *pdt_entries_ptr, unsigned long count, 331 unsigned long *pdt_entries_ptr, unsigned long count,
321 unsigned long offset); 332 unsigned long offset);
333extern int pdc_pat_mem_get_dimm_phys_location(
334 struct pdc_pat_mem_phys_mem_location *pret,
335 unsigned long phys_addr);
322 336
323#endif /* __ASSEMBLY__ */ 337#endif /* __ASSEMBLY__ */
324 338
diff --git a/arch/parisc/include/asm/thread_info.h b/arch/parisc/include/asm/thread_info.h
index 88fe0aad4390..bc208136bbb2 100644
--- a/arch/parisc/include/asm/thread_info.h
+++ b/arch/parisc/include/asm/thread_info.h
@@ -34,7 +34,7 @@ struct thread_info {
34 34
35/* thread information allocation */ 35/* thread information allocation */
36 36
37#define THREAD_SIZE_ORDER 2 /* PA-RISC requires at least 16k stack */ 37#define THREAD_SIZE_ORDER 3 /* PA-RISC requires at least 32k stack */
38/* Be sure to hunt all references to this down when you change the size of 38/* Be sure to hunt all references to this down when you change the size of
39 * the kernel stack */ 39 * the kernel stack */
40#define THREAD_SIZE (PAGE_SIZE << THREAD_SIZE_ORDER) 40#define THREAD_SIZE (PAGE_SIZE << THREAD_SIZE_ORDER)
diff --git a/arch/parisc/kernel/cache.c b/arch/parisc/kernel/cache.c
index c32a09095216..19c0c141bc3f 100644
--- a/arch/parisc/kernel/cache.c
+++ b/arch/parisc/kernel/cache.c
@@ -453,8 +453,8 @@ void copy_user_page(void *vto, void *vfrom, unsigned long vaddr,
453 before it can be accessed through the kernel mapping. */ 453 before it can be accessed through the kernel mapping. */
454 preempt_disable(); 454 preempt_disable();
455 flush_dcache_page_asm(__pa(vfrom), vaddr); 455 flush_dcache_page_asm(__pa(vfrom), vaddr);
456 preempt_enable();
457 copy_page_asm(vto, vfrom); 456 copy_page_asm(vto, vfrom);
457 preempt_enable();
458} 458}
459EXPORT_SYMBOL(copy_user_page); 459EXPORT_SYMBOL(copy_user_page);
460 460
@@ -539,6 +539,10 @@ void flush_cache_mm(struct mm_struct *mm)
539 struct vm_area_struct *vma; 539 struct vm_area_struct *vma;
540 pgd_t *pgd; 540 pgd_t *pgd;
541 541
542 /* Flush the TLB to avoid speculation if coherency is required. */
543 if (parisc_requires_coherency())
544 flush_tlb_all();
545
542 /* Flushing the whole cache on each cpu takes forever on 546 /* Flushing the whole cache on each cpu takes forever on
543 rp3440, etc. So, avoid it if the mm isn't too big. */ 547 rp3440, etc. So, avoid it if the mm isn't too big. */
544 if (mm_total_size(mm) >= parisc_cache_flush_threshold) { 548 if (mm_total_size(mm) >= parisc_cache_flush_threshold) {
@@ -577,33 +581,21 @@ void flush_cache_mm(struct mm_struct *mm)
577void flush_cache_range(struct vm_area_struct *vma, 581void flush_cache_range(struct vm_area_struct *vma,
578 unsigned long start, unsigned long end) 582 unsigned long start, unsigned long end)
579{ 583{
580 unsigned long addr;
581 pgd_t *pgd;
582
583 BUG_ON(!vma->vm_mm->context); 584 BUG_ON(!vma->vm_mm->context);
584 585
585 if ((end - start) >= parisc_cache_flush_threshold) { 586 /* Flush the TLB to avoid speculation if coherency is required. */
586 flush_cache_all(); 587 if (parisc_requires_coherency())
587 return; 588 flush_tlb_range(vma, start, end);
588 }
589 589
590 if (vma->vm_mm->context == mfsp(3)) { 590 if ((end - start) >= parisc_cache_flush_threshold
591 flush_user_dcache_range_asm(start, end); 591 || vma->vm_mm->context != mfsp(3)) {
592 if (vma->vm_flags & VM_EXEC) 592 flush_cache_all();
593 flush_user_icache_range_asm(start, end);
594 return; 593 return;
595 } 594 }
596 595
597 pgd = vma->vm_mm->pgd; 596 flush_user_dcache_range_asm(start, end);
598 for (addr = start & PAGE_MASK; addr < end; addr += PAGE_SIZE) { 597 if (vma->vm_flags & VM_EXEC)
599 unsigned long pfn; 598 flush_user_icache_range_asm(start, end);
600 pte_t *ptep = get_ptep(pgd, addr);
601 if (!ptep)
602 continue;
603 pfn = pte_pfn(*ptep);
604 if (pfn_valid(pfn))
605 __flush_cache_page(vma, addr, PFN_PHYS(pfn));
606 }
607} 599}
608 600
609void 601void
@@ -612,7 +604,8 @@ flush_cache_page(struct vm_area_struct *vma, unsigned long vmaddr, unsigned long
612 BUG_ON(!vma->vm_mm->context); 604 BUG_ON(!vma->vm_mm->context);
613 605
614 if (pfn_valid(pfn)) { 606 if (pfn_valid(pfn)) {
615 flush_tlb_page(vma, vmaddr); 607 if (parisc_requires_coherency())
608 flush_tlb_page(vma, vmaddr);
616 __flush_cache_page(vma, vmaddr, PFN_PHYS(pfn)); 609 __flush_cache_page(vma, vmaddr, PFN_PHYS(pfn));
617 } 610 }
618} 611}
diff --git a/arch/parisc/kernel/firmware.c b/arch/parisc/kernel/firmware.c
index 98190252c12f..f622a311d04a 100644
--- a/arch/parisc/kernel/firmware.c
+++ b/arch/parisc/kernel/firmware.c
@@ -1481,12 +1481,44 @@ int pdc_pat_mem_read_pd_pdt(struct pdc_pat_mem_read_pd_retinfo *pret,
1481 unsigned long offset) 1481 unsigned long offset)
1482{ 1482{
1483 int retval; 1483 int retval;
1484 unsigned long flags; 1484 unsigned long flags, entries;
1485 1485
1486 spin_lock_irqsave(&pdc_lock, flags); 1486 spin_lock_irqsave(&pdc_lock, flags);
1487 retval = mem_pdc_call(PDC_PAT_MEM, PDC_PAT_MEM_PD_READ, 1487 retval = mem_pdc_call(PDC_PAT_MEM, PDC_PAT_MEM_PD_READ,
1488 __pa(&pret), __pa(pdt_entries_ptr), 1488 __pa(&pdc_result), __pa(pdt_entries_ptr),
1489 count, offset); 1489 count, offset);
1490
1491 if (retval == PDC_OK) {
1492 entries = min(pdc_result[0], count);
1493 pret->actual_count_bytes = entries;
1494 pret->pdt_entries = entries / sizeof(unsigned long);
1495 }
1496
1497 spin_unlock_irqrestore(&pdc_lock, flags);
1498
1499 return retval;
1500}
1501
1502/**
1503 * pdc_pat_mem_get_dimm_phys_location - Get physical DIMM slot via PAT firmware
1504 * @pret: ptr to hold returned information
1505 * @phys_addr: physical address to examine
1506 *
1507 */
1508int pdc_pat_mem_get_dimm_phys_location(
1509 struct pdc_pat_mem_phys_mem_location *pret,
1510 unsigned long phys_addr)
1511{
1512 int retval;
1513 unsigned long flags;
1514
1515 spin_lock_irqsave(&pdc_lock, flags);
1516 retval = mem_pdc_call(PDC_PAT_MEM, PDC_PAT_MEM_ADDRESS,
1517 __pa(&pdc_result), phys_addr);
1518
1519 if (retval == PDC_OK)
1520 memcpy(pret, &pdc_result, sizeof(*pret));
1521
1490 spin_unlock_irqrestore(&pdc_lock, flags); 1522 spin_unlock_irqrestore(&pdc_lock, flags);
1491 1523
1492 return retval; 1524 return retval;
diff --git a/arch/parisc/kernel/irq.c b/arch/parisc/kernel/irq.c
index ba5e1c7b1f17..0ca254085a66 100644
--- a/arch/parisc/kernel/irq.c
+++ b/arch/parisc/kernel/irq.c
@@ -380,7 +380,7 @@ static inline int eirr_to_irq(unsigned long eirr)
380/* 380/*
381 * IRQ STACK - used for irq handler 381 * IRQ STACK - used for irq handler
382 */ 382 */
383#define IRQ_STACK_SIZE (4096 << 2) /* 16k irq stack size */ 383#define IRQ_STACK_SIZE (4096 << 3) /* 32k irq stack size */
384 384
385union irq_stack_union { 385union irq_stack_union {
386 unsigned long stack[IRQ_STACK_SIZE/sizeof(unsigned long)]; 386 unsigned long stack[IRQ_STACK_SIZE/sizeof(unsigned long)];
@@ -413,6 +413,10 @@ static inline void stack_overflow_check(struct pt_regs *regs)
413 if (regs->sr[7]) 413 if (regs->sr[7])
414 return; 414 return;
415 415
416 /* exit if already in panic */
417 if (sysctl_panic_on_stackoverflow < 0)
418 return;
419
416 /* calculate kernel stack usage */ 420 /* calculate kernel stack usage */
417 stack_usage = sp - stack_start; 421 stack_usage = sp - stack_start;
418#ifdef CONFIG_IRQSTACKS 422#ifdef CONFIG_IRQSTACKS
@@ -454,8 +458,10 @@ check_kernel_stack:
454#ifdef CONFIG_IRQSTACKS 458#ifdef CONFIG_IRQSTACKS
455panic_check: 459panic_check:
456#endif 460#endif
457 if (sysctl_panic_on_stackoverflow) 461 if (sysctl_panic_on_stackoverflow) {
462 sysctl_panic_on_stackoverflow = -1; /* disable further checks */
458 panic("low stack detected by irq handler - check messages\n"); 463 panic("low stack detected by irq handler - check messages\n");
464 }
459#endif 465#endif
460} 466}
461 467
diff --git a/arch/parisc/kernel/pdt.c b/arch/parisc/kernel/pdt.c
index f3a797e670b0..d02874ecb94d 100644
--- a/arch/parisc/kernel/pdt.c
+++ b/arch/parisc/kernel/pdt.c
@@ -112,10 +112,12 @@ void __init pdc_pdt_init(void)
112#ifdef CONFIG_64BIT 112#ifdef CONFIG_64BIT
113 struct pdc_pat_mem_read_pd_retinfo pat_pret; 113 struct pdc_pat_mem_read_pd_retinfo pat_pret;
114 114
115 /* try old obsolete PAT firmware function first */
116 pdt_type = PDT_PAT_OLD;
115 ret = pdc_pat_mem_read_cell_pdt(&pat_pret, pdt_entry, 117 ret = pdc_pat_mem_read_cell_pdt(&pat_pret, pdt_entry,
116 MAX_PDT_ENTRIES); 118 MAX_PDT_ENTRIES);
117 if (ret != PDC_OK) { 119 if (ret != PDC_OK) {
118 pdt_type = PDT_PAT_OLD; 120 pdt_type = PDT_PAT_NEW;
119 ret = pdc_pat_mem_read_pd_pdt(&pat_pret, pdt_entry, 121 ret = pdc_pat_mem_read_pd_pdt(&pat_pret, pdt_entry,
120 MAX_PDT_TABLE_SIZE, 0); 122 MAX_PDT_TABLE_SIZE, 0);
121 } 123 }
@@ -131,11 +133,20 @@ void __init pdc_pdt_init(void)
131 } 133 }
132 134
133 for (i = 0; i < pdt_status.pdt_entries; i++) { 135 for (i = 0; i < pdt_status.pdt_entries; i++) {
134 if (i < 20) 136 struct pdc_pat_mem_phys_mem_location loc;
135 pr_warn("PDT: BAD PAGE #%d at 0x%08lx (error_type = %lu)\n", 137
136 i, 138 /* get DIMM slot number */
137 pdt_entry[i] & PAGE_MASK, 139 loc.dimm_slot = 0xff;
138 pdt_entry[i] & 1); 140#ifdef CONFIG_64BIT
141 pdc_pat_mem_get_dimm_phys_location(&loc, pdt_entry[i]);
142#endif
143
144 pr_warn("PDT: BAD PAGE #%d at 0x%08lx, "
145 "DIMM slot %02x (error_type = %lu)\n",
146 i,
147 pdt_entry[i] & PAGE_MASK,
148 loc.dimm_slot,
149 pdt_entry[i] & 1);
139 150
140 /* mark memory page bad */ 151 /* mark memory page bad */
141 memblock_reserve(pdt_entry[i] & PAGE_MASK, PAGE_SIZE); 152 memblock_reserve(pdt_entry[i] & PAGE_MASK, PAGE_SIZE);
diff --git a/arch/parisc/kernel/process.c b/arch/parisc/kernel/process.c
index b64d7d21646e..a45a67d526f8 100644
--- a/arch/parisc/kernel/process.c
+++ b/arch/parisc/kernel/process.c
@@ -53,6 +53,7 @@
53#include <linux/uaccess.h> 53#include <linux/uaccess.h>
54#include <linux/rcupdate.h> 54#include <linux/rcupdate.h>
55#include <linux/random.h> 55#include <linux/random.h>
56#include <linux/nmi.h>
56 57
57#include <asm/io.h> 58#include <asm/io.h>
58#include <asm/asm-offsets.h> 59#include <asm/asm-offsets.h>
@@ -145,6 +146,7 @@ void machine_power_off(void)
145 146
146 /* prevent soft lockup/stalled CPU messages for endless loop. */ 147 /* prevent soft lockup/stalled CPU messages for endless loop. */
147 rcu_sysrq_start(); 148 rcu_sysrq_start();
149 lockup_detector_suspend();
148 for (;;); 150 for (;;);
149} 151}
150 152
diff --git a/arch/parisc/kernel/vmlinux.lds.S b/arch/parisc/kernel/vmlinux.lds.S
index 3d6ef1b29c6a..ffe2cbf52d1a 100644
--- a/arch/parisc/kernel/vmlinux.lds.S
+++ b/arch/parisc/kernel/vmlinux.lds.S
@@ -78,6 +78,8 @@ SECTIONS
78 *(.text.sys_exit) 78 *(.text.sys_exit)
79 *(.text.do_sigaltstack) 79 *(.text.do_sigaltstack)
80 *(.text.do_fork) 80 *(.text.do_fork)
81 *(.text.div)
82 *($$*) /* millicode routines */
81 *(.text.*) 83 *(.text.*)
82 *(.fixup) 84 *(.fixup)
83 *(.lock.text) /* out-of-line lock text */ 85 *(.lock.text) /* out-of-line lock text */
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 8d4ed73d5490..e2b3e7a00c9e 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -59,6 +59,19 @@ machine-$(CONFIG_PPC64) += 64
59machine-$(CONFIG_CPU_LITTLE_ENDIAN) += le 59machine-$(CONFIG_CPU_LITTLE_ENDIAN) += le
60UTS_MACHINE := $(subst $(space),,$(machine-y)) 60UTS_MACHINE := $(subst $(space),,$(machine-y))
61 61
62# XXX This needs to be before we override LD below
63ifdef CONFIG_PPC32
64KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
65else
66ifeq ($(call ld-ifversion, -ge, 225000000, y),y)
67# Have the linker provide sfpr if possible.
68# There is a corresponding test in arch/powerpc/lib/Makefile
69KBUILD_LDFLAGS_MODULE += --save-restore-funcs
70else
71KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
72endif
73endif
74
62ifeq ($(CONFIG_CPU_LITTLE_ENDIAN),y) 75ifeq ($(CONFIG_CPU_LITTLE_ENDIAN),y)
63override LD += -EL 76override LD += -EL
64LDEMULATION := lppc 77LDEMULATION := lppc
@@ -190,18 +203,6 @@ else
190CHECKFLAGS += -D__LITTLE_ENDIAN__ 203CHECKFLAGS += -D__LITTLE_ENDIAN__
191endif 204endif
192 205
193ifdef CONFIG_PPC32
194KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
195else
196ifeq ($(call ld-ifversion, -ge, 225000000, y),y)
197# Have the linker provide sfpr if possible.
198# There is a corresponding test in arch/powerpc/lib/Makefile
199KBUILD_LDFLAGS_MODULE += --save-restore-funcs
200else
201KBUILD_LDFLAGS_MODULE += arch/powerpc/lib/crtsavres.o
202endif
203endif
204
205ifeq ($(CONFIG_476FPE_ERR46),y) 206ifeq ($(CONFIG_476FPE_ERR46),y)
206 KBUILD_LDFLAGS_MODULE += --ppc476-workaround \ 207 KBUILD_LDFLAGS_MODULE += --ppc476-workaround \
207 -T $(srctree)/arch/powerpc/platforms/44x/ppc476_modules.lds 208 -T $(srctree)/arch/powerpc/platforms/44x/ppc476_modules.lds
diff --git a/arch/powerpc/boot/Makefile b/arch/powerpc/boot/Makefile
index a7814a7b1523..6f952fe1f084 100644
--- a/arch/powerpc/boot/Makefile
+++ b/arch/powerpc/boot/Makefile
@@ -25,12 +25,20 @@ compress-$(CONFIG_KERNEL_XZ) := CONFIG_KERNEL_XZ
25BOOTCFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \ 25BOOTCFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
26 -fno-strict-aliasing -Os -msoft-float -pipe \ 26 -fno-strict-aliasing -Os -msoft-float -pipe \
27 -fomit-frame-pointer -fno-builtin -fPIC -nostdinc \ 27 -fomit-frame-pointer -fno-builtin -fPIC -nostdinc \
28 -isystem $(shell $(CROSS32CC) -print-file-name=include) \
29 -D$(compress-y) 28 -D$(compress-y)
30 29
30BOOTCC := $(CC)
31ifdef CONFIG_PPC64_BOOT_WRAPPER 31ifdef CONFIG_PPC64_BOOT_WRAPPER
32BOOTCFLAGS += -m64 32BOOTCFLAGS += -m64
33else
34BOOTCFLAGS += -m32
35ifdef CROSS32_COMPILE
36 BOOTCC := $(CROSS32_COMPILE)gcc
37endif
33endif 38endif
39
40BOOTCFLAGS += -isystem $(shell $(BOOTCC) -print-file-name=include)
41
34ifdef CONFIG_CPU_BIG_ENDIAN 42ifdef CONFIG_CPU_BIG_ENDIAN
35BOOTCFLAGS += -mbig-endian 43BOOTCFLAGS += -mbig-endian
36else 44else
@@ -183,10 +191,10 @@ clean-files := $(zlib-) $(zlibheader-) $(zliblinuxheader-) \
183 empty.c zImage.coff.lds zImage.ps3.lds zImage.lds 191 empty.c zImage.coff.lds zImage.ps3.lds zImage.lds
184 192
185quiet_cmd_bootcc = BOOTCC $@ 193quiet_cmd_bootcc = BOOTCC $@
186 cmd_bootcc = $(CROSS32CC) -Wp,-MD,$(depfile) $(BOOTCFLAGS) -c -o $@ $< 194 cmd_bootcc = $(BOOTCC) -Wp,-MD,$(depfile) $(BOOTCFLAGS) -c -o $@ $<
187 195
188quiet_cmd_bootas = BOOTAS $@ 196quiet_cmd_bootas = BOOTAS $@
189 cmd_bootas = $(CROSS32CC) -Wp,-MD,$(depfile) $(BOOTAFLAGS) -c -o $@ $< 197 cmd_bootas = $(BOOTCC) -Wp,-MD,$(depfile) $(BOOTAFLAGS) -c -o $@ $<
190 198
191quiet_cmd_bootar = BOOTAR $@ 199quiet_cmd_bootar = BOOTAR $@
192 cmd_bootar = $(CROSS32AR) -cr$(KBUILD_ARFLAGS) $@.$$$$ $(filter-out FORCE,$^); mv $@.$$$$ $@ 200 cmd_bootar = $(CROSS32AR) -cr$(KBUILD_ARFLAGS) $@.$$$$ $(filter-out FORCE,$^); mv $@.$$$$ $@
diff --git a/arch/powerpc/include/asm/book3s/64/mmu.h b/arch/powerpc/include/asm/book3s/64/mmu.h
index 77529a3e3811..5b4023c616f7 100644
--- a/arch/powerpc/include/asm/book3s/64/mmu.h
+++ b/arch/powerpc/include/asm/book3s/64/mmu.h
@@ -59,13 +59,14 @@ extern struct patb_entry *partition_tb;
59#define PRTS_MASK 0x1f /* process table size field */ 59#define PRTS_MASK 0x1f /* process table size field */
60#define PRTB_MASK 0x0ffffffffffff000UL 60#define PRTB_MASK 0x0ffffffffffff000UL
61 61
62/* 62/* Number of supported PID bits */
63 * Limit process table to PAGE_SIZE table. This 63extern unsigned int mmu_pid_bits;
64 * also limit the max pid we can support. 64
65 * MAX_USER_CONTEXT * 16 bytes of space. 65/* Base PID to allocate from */
66 */ 66extern unsigned int mmu_base_pid;
67#define PRTB_SIZE_SHIFT (CONTEXT_BITS + 4) 67
68#define PRTB_ENTRIES (1ul << CONTEXT_BITS) 68#define PRTB_SIZE_SHIFT (mmu_pid_bits + 4)
69#define PRTB_ENTRIES (1ul << mmu_pid_bits)
69 70
70/* 71/*
71 * Power9 currently only support 64K partition table size. 72 * Power9 currently only support 64K partition table size.
diff --git a/arch/powerpc/include/asm/book3s/64/pgtable.h b/arch/powerpc/include/asm/book3s/64/pgtable.h
index d1da415e283c..818a58fc3f4f 100644
--- a/arch/powerpc/include/asm/book3s/64/pgtable.h
+++ b/arch/powerpc/include/asm/book3s/64/pgtable.h
@@ -608,9 +608,17 @@ static inline pte_t pte_mkdevmap(pte_t pte)
608 return __pte(pte_val(pte) | _PAGE_SPECIAL|_PAGE_DEVMAP); 608 return __pte(pte_val(pte) | _PAGE_SPECIAL|_PAGE_DEVMAP);
609} 609}
610 610
611/*
612 * This is potentially called with a pmd as the argument, in which case it's not
613 * safe to check _PAGE_DEVMAP unless we also confirm that _PAGE_PTE is set.
614 * That's because the bit we use for _PAGE_DEVMAP is not reserved for software
615 * use in page directory entries (ie. non-ptes).
616 */
611static inline int pte_devmap(pte_t pte) 617static inline int pte_devmap(pte_t pte)
612{ 618{
613 return !!(pte_raw(pte) & cpu_to_be64(_PAGE_DEVMAP)); 619 u64 mask = cpu_to_be64(_PAGE_DEVMAP | _PAGE_PTE);
620
621 return (pte_raw(pte) & mask) == mask;
614} 622}
615 623
616static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) 624static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
diff --git a/arch/powerpc/include/asm/mmu_context.h b/arch/powerpc/include/asm/mmu_context.h
index da7e9432fa8f..0c76675394c5 100644
--- a/arch/powerpc/include/asm/mmu_context.h
+++ b/arch/powerpc/include/asm/mmu_context.h
@@ -45,7 +45,7 @@ extern void set_context(unsigned long id, pgd_t *pgd);
45 45
46#ifdef CONFIG_PPC_BOOK3S_64 46#ifdef CONFIG_PPC_BOOK3S_64
47extern void radix__switch_mmu_context(struct mm_struct *prev, 47extern void radix__switch_mmu_context(struct mm_struct *prev,
48 struct mm_struct *next); 48 struct mm_struct *next);
49static inline void switch_mmu_context(struct mm_struct *prev, 49static inline void switch_mmu_context(struct mm_struct *prev,
50 struct mm_struct *next, 50 struct mm_struct *next,
51 struct task_struct *tsk) 51 struct task_struct *tsk)
@@ -67,6 +67,12 @@ extern void __destroy_context(unsigned long context_id);
67extern void mmu_context_init(void); 67extern void mmu_context_init(void);
68#endif 68#endif
69 69
70#if defined(CONFIG_KVM_BOOK3S_HV_POSSIBLE) && defined(CONFIG_PPC_RADIX_MMU)
71extern void radix_kvm_prefetch_workaround(struct mm_struct *mm);
72#else
73static inline void radix_kvm_prefetch_workaround(struct mm_struct *mm) { }
74#endif
75
70extern void switch_cop(struct mm_struct *next); 76extern void switch_cop(struct mm_struct *next);
71extern int use_cop(unsigned long acop, struct mm_struct *mm); 77extern int use_cop(unsigned long acop, struct mm_struct *mm);
72extern void drop_cop(unsigned long acop, struct mm_struct *mm); 78extern void drop_cop(unsigned long acop, struct mm_struct *mm);
@@ -79,9 +85,13 @@ static inline void switch_mm_irqs_off(struct mm_struct *prev,
79 struct mm_struct *next, 85 struct mm_struct *next,
80 struct task_struct *tsk) 86 struct task_struct *tsk)
81{ 87{
88 bool new_on_cpu = false;
89
82 /* Mark this context has been used on the new CPU */ 90 /* Mark this context has been used on the new CPU */
83 if (!cpumask_test_cpu(smp_processor_id(), mm_cpumask(next))) 91 if (!cpumask_test_cpu(smp_processor_id(), mm_cpumask(next))) {
84 cpumask_set_cpu(smp_processor_id(), mm_cpumask(next)); 92 cpumask_set_cpu(smp_processor_id(), mm_cpumask(next));
93 new_on_cpu = true;
94 }
85 95
86 /* 32-bit keeps track of the current PGDIR in the thread struct */ 96 /* 32-bit keeps track of the current PGDIR in the thread struct */
87#ifdef CONFIG_PPC32 97#ifdef CONFIG_PPC32
@@ -109,6 +119,10 @@ static inline void switch_mm_irqs_off(struct mm_struct *prev,
109 if (cpu_has_feature(CPU_FTR_ALTIVEC)) 119 if (cpu_has_feature(CPU_FTR_ALTIVEC))
110 asm volatile ("dssall"); 120 asm volatile ("dssall");
111#endif /* CONFIG_ALTIVEC */ 121#endif /* CONFIG_ALTIVEC */
122
123 if (new_on_cpu)
124 radix_kvm_prefetch_workaround(next);
125
112 /* 126 /*
113 * The actual HW switching method differs between the various 127 * The actual HW switching method differs between the various
114 * sub architectures. Out of line for now 128 * sub architectures. Out of line for now
diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
index 9029afd1fa2a..f14f3c04ec7e 100644
--- a/arch/powerpc/kernel/exceptions-64s.S
+++ b/arch/powerpc/kernel/exceptions-64s.S
@@ -1325,10 +1325,18 @@ EXC_VIRT_NONE(0x5800, 0x100)
1325 std r10,PACA_EXGEN+EX_R13(r13); \ 1325 std r10,PACA_EXGEN+EX_R13(r13); \
1326 EXCEPTION_PROLOG_PSERIES_1(soft_nmi_common, _H) 1326 EXCEPTION_PROLOG_PSERIES_1(soft_nmi_common, _H)
1327 1327
1328/*
1329 * Branch to soft_nmi_interrupt using the emergency stack. The emergency
1330 * stack is one that is usable by maskable interrupts so long as MSR_EE
1331 * remains off. It is used for recovery when something has corrupted the
1332 * normal kernel stack, for example. The "soft NMI" must not use the process
1333 * stack because we want irq disabled sections to avoid touching the stack
1334 * at all (other than PMU interrupts), so use the emergency stack for this,
1335 * and run it entirely with interrupts hard disabled.
1336 */
1328EXC_COMMON_BEGIN(soft_nmi_common) 1337EXC_COMMON_BEGIN(soft_nmi_common)
1329 mr r10,r1 1338 mr r10,r1
1330 ld r1,PACAEMERGSP(r13) 1339 ld r1,PACAEMERGSP(r13)
1331 ld r1,PACA_NMI_EMERG_SP(r13)
1332 subi r1,r1,INT_FRAME_SIZE 1340 subi r1,r1,INT_FRAME_SIZE
1333 EXCEPTION_COMMON_NORET_STACK(PACA_EXGEN, 0x900, 1341 EXCEPTION_COMMON_NORET_STACK(PACA_EXGEN, 0x900,
1334 system_reset, soft_nmi_interrupt, 1342 system_reset, soft_nmi_interrupt,
diff --git a/arch/powerpc/kernel/idle_book3s.S b/arch/powerpc/kernel/idle_book3s.S
index 516ebef905c0..e6252c5a57a4 100644
--- a/arch/powerpc/kernel/idle_book3s.S
+++ b/arch/powerpc/kernel/idle_book3s.S
@@ -460,11 +460,17 @@ pnv_restore_hyp_resource_arch300:
460 /* 460 /*
461 * Workaround for POWER9, if we lost resources, the ERAT 461 * Workaround for POWER9, if we lost resources, the ERAT
462 * might have been mixed up and needs flushing. We also need 462 * might have been mixed up and needs flushing. We also need
463 * to reload MMCR0 (see comment above). 463 * to reload MMCR0 (see comment above). We also need to set
464 * then clear bit 60 in MMCRA to ensure the PMU starts running.
464 */ 465 */
465 blt cr3,1f 466 blt cr3,1f
466 PPC_INVALIDATE_ERAT 467 PPC_INVALIDATE_ERAT
467 ld r1,PACAR1(r13) 468 ld r1,PACAR1(r13)
469 mfspr r4,SPRN_MMCRA
470 ori r4,r4,(1 << (63-60))
471 mtspr SPRN_MMCRA,r4
472 xori r4,r4,(1 << (63-60))
473 mtspr SPRN_MMCRA,r4
468 ld r4,_MMCR0(r1) 474 ld r4,_MMCR0(r1)
469 mtspr SPRN_MMCR0,r4 475 mtspr SPRN_MMCR0,r4
4701: 4761:
diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
index 0bcec745a672..f291f7826abc 100644
--- a/arch/powerpc/kernel/irq.c
+++ b/arch/powerpc/kernel/irq.c
@@ -145,6 +145,19 @@ notrace unsigned int __check_irq_replay(void)
145 145
146 /* Clear bit 0 which we wouldn't clear otherwise */ 146 /* Clear bit 0 which we wouldn't clear otherwise */
147 local_paca->irq_happened &= ~PACA_IRQ_HARD_DIS; 147 local_paca->irq_happened &= ~PACA_IRQ_HARD_DIS;
148 if (happened & PACA_IRQ_HARD_DIS) {
149 /*
150 * We may have missed a decrementer interrupt if hard disabled.
151 * Check the decrementer register in case we had a rollover
152 * while hard disabled.
153 */
154 if (!(happened & PACA_IRQ_DEC)) {
155 if (decrementer_check_overflow()) {
156 local_paca->irq_happened |= PACA_IRQ_DEC;
157 happened |= PACA_IRQ_DEC;
158 }
159 }
160 }
148 161
149 /* 162 /*
150 * Force the delivery of pending soft-disabled interrupts on PS3. 163 * Force the delivery of pending soft-disabled interrupts on PS3.
@@ -170,7 +183,7 @@ notrace unsigned int __check_irq_replay(void)
170 * in case we also had a rollover while hard disabled 183 * in case we also had a rollover while hard disabled
171 */ 184 */
172 local_paca->irq_happened &= ~PACA_IRQ_DEC; 185 local_paca->irq_happened &= ~PACA_IRQ_DEC;
173 if ((happened & PACA_IRQ_DEC) || decrementer_check_overflow()) 186 if (happened & PACA_IRQ_DEC)
174 return 0x900; 187 return 0x900;
175 188
176 /* Finally check if an external interrupt happened */ 189 /* Finally check if an external interrupt happened */
diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
index 925a4ef90559..660ed39e9c9a 100644
--- a/arch/powerpc/kernel/ptrace.c
+++ b/arch/powerpc/kernel/ptrace.c
@@ -127,12 +127,19 @@ static void flush_tmregs_to_thread(struct task_struct *tsk)
127 * If task is not current, it will have been flushed already to 127 * If task is not current, it will have been flushed already to
128 * it's thread_struct during __switch_to(). 128 * it's thread_struct during __switch_to().
129 * 129 *
130 * A reclaim flushes ALL the state. 130 * A reclaim flushes ALL the state or if not in TM save TM SPRs
131 * in the appropriate thread structures from live.
131 */ 132 */
132 133
133 if (tsk == current && MSR_TM_SUSPENDED(mfmsr())) 134 if (tsk != current)
134 tm_reclaim_current(TM_CAUSE_SIGNAL); 135 return;
135 136
137 if (MSR_TM_SUSPENDED(mfmsr())) {
138 tm_reclaim_current(TM_CAUSE_SIGNAL);
139 } else {
140 tm_enable();
141 tm_save_sprs(&(tsk->thread));
142 }
136} 143}
137#else 144#else
138static inline void flush_tmregs_to_thread(struct task_struct *tsk) { } 145static inline void flush_tmregs_to_thread(struct task_struct *tsk) { }
diff --git a/arch/powerpc/kernel/smp.c b/arch/powerpc/kernel/smp.c
index 997c88d54acf..cf0e1245b8cc 100644
--- a/arch/powerpc/kernel/smp.c
+++ b/arch/powerpc/kernel/smp.c
@@ -1003,21 +1003,13 @@ static struct sched_domain_topology_level powerpc_topology[] = {
1003 { NULL, }, 1003 { NULL, },
1004}; 1004};
1005 1005
1006static __init long smp_setup_cpu_workfn(void *data __always_unused)
1007{
1008 smp_ops->setup_cpu(boot_cpuid);
1009 return 0;
1010}
1011
1012void __init smp_cpus_done(unsigned int max_cpus) 1006void __init smp_cpus_done(unsigned int max_cpus)
1013{ 1007{
1014 /* 1008 /*
1015 * We want the setup_cpu() here to be called on the boot CPU, but 1009 * We are running pinned to the boot CPU, see rest_init().
1016 * init might run on any CPU, so make sure it's invoked on the boot
1017 * CPU.
1018 */ 1010 */
1019 if (smp_ops && smp_ops->setup_cpu) 1011 if (smp_ops && smp_ops->setup_cpu)
1020 work_on_cpu_safe(boot_cpuid, smp_setup_cpu_workfn, NULL); 1012 smp_ops->setup_cpu(boot_cpuid);
1021 1013
1022 if (smp_ops && smp_ops->bringup_done) 1014 if (smp_ops && smp_ops->bringup_done)
1023 smp_ops->bringup_done(); 1015 smp_ops->bringup_done();
diff --git a/arch/powerpc/kvm/book3s_64_mmu_hv.c b/arch/powerpc/kvm/book3s_64_mmu_hv.c
index 8cb0190e2a73..b42812e014c0 100644
--- a/arch/powerpc/kvm/book3s_64_mmu_hv.c
+++ b/arch/powerpc/kvm/book3s_64_mmu_hv.c
@@ -164,8 +164,10 @@ long kvmppc_alloc_reset_hpt(struct kvm *kvm, int order)
164 goto out; 164 goto out;
165 } 165 }
166 166
167 if (kvm->arch.hpt.virt) 167 if (kvm->arch.hpt.virt) {
168 kvmppc_free_hpt(&kvm->arch.hpt); 168 kvmppc_free_hpt(&kvm->arch.hpt);
169 kvmppc_rmap_reset(kvm);
170 }
169 171
170 err = kvmppc_allocate_hpt(&info, order); 172 err = kvmppc_allocate_hpt(&info, order);
171 if (err < 0) 173 if (err < 0)
diff --git a/arch/powerpc/kvm/book3s_hv.c b/arch/powerpc/kvm/book3s_hv.c
index 0b436df746fc..359c79cdf0cc 100644
--- a/arch/powerpc/kvm/book3s_hv.c
+++ b/arch/powerpc/kvm/book3s_hv.c
@@ -3211,6 +3211,8 @@ static int kvmppc_vcpu_run_hv(struct kvm_run *run, struct kvm_vcpu *vcpu)
3211 run->fail_entry.hardware_entry_failure_reason = 0; 3211 run->fail_entry.hardware_entry_failure_reason = 0;
3212 return -EINVAL; 3212 return -EINVAL;
3213 } 3213 }
3214 /* Enable TM so we can read the TM SPRs */
3215 mtmsr(mfmsr() | MSR_TM);
3214 current->thread.tm_tfhar = mfspr(SPRN_TFHAR); 3216 current->thread.tm_tfhar = mfspr(SPRN_TFHAR);
3215 current->thread.tm_tfiar = mfspr(SPRN_TFIAR); 3217 current->thread.tm_tfiar = mfspr(SPRN_TFIAR);
3216 current->thread.tm_texasr = mfspr(SPRN_TEXASR); 3218 current->thread.tm_texasr = mfspr(SPRN_TEXASR);
diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
index cb44065e2946..c52184a8efdf 100644
--- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S
+++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
@@ -1443,12 +1443,14 @@ mc_cont:
1443 ori r6,r6,1 1443 ori r6,r6,1
1444 mtspr SPRN_CTRLT,r6 1444 mtspr SPRN_CTRLT,r6
14454: 14454:
1446 /* Read the guest SLB and save it away */ 1446 /* Check if we are running hash or radix and store it in cr2 */
1447 ld r5, VCPU_KVM(r9) 1447 ld r5, VCPU_KVM(r9)
1448 lbz r0, KVM_RADIX(r5) 1448 lbz r0, KVM_RADIX(r5)
1449 cmpwi r0, 0 1449 cmpwi cr2,r0,0
1450
1451 /* Read the guest SLB and save it away */
1450 li r5, 0 1452 li r5, 0
1451 bne 3f /* for radix, save 0 entries */ 1453 bne cr2, 3f /* for radix, save 0 entries */
1452 lwz r0,VCPU_SLB_NR(r9) /* number of entries in SLB */ 1454 lwz r0,VCPU_SLB_NR(r9) /* number of entries in SLB */
1453 mtctr r0 1455 mtctr r0
1454 li r6,0 1456 li r6,0
@@ -1712,11 +1714,6 @@ BEGIN_FTR_SECTION_NESTED(96)
1712END_FTR_SECTION_NESTED(CPU_FTR_ARCH_300, 0, 96) 1714END_FTR_SECTION_NESTED(CPU_FTR_ARCH_300, 0, 96)
1713END_FTR_SECTION_IFSET(CPU_FTR_ARCH_207S) 1715END_FTR_SECTION_IFSET(CPU_FTR_ARCH_207S)
171422: 171622:
1715 /* Clear out SLB */
1716 li r5,0
1717 slbmte r5,r5
1718 slbia
1719 ptesync
1720 1717
1721 /* Restore host values of some registers */ 1718 /* Restore host values of some registers */
1722BEGIN_FTR_SECTION 1719BEGIN_FTR_SECTION
@@ -1737,10 +1734,56 @@ BEGIN_FTR_SECTION
1737 mtspr SPRN_PID, r7 1734 mtspr SPRN_PID, r7
1738 mtspr SPRN_IAMR, r8 1735 mtspr SPRN_IAMR, r8
1739END_FTR_SECTION_IFSET(CPU_FTR_ARCH_300) 1736END_FTR_SECTION_IFSET(CPU_FTR_ARCH_300)
1737
1738#ifdef CONFIG_PPC_RADIX_MMU
1739 /*
1740 * Are we running hash or radix ?
1741 */
1742 beq cr2,3f
1743
1744 /* Radix: Handle the case where the guest used an illegal PID */
1745 LOAD_REG_ADDR(r4, mmu_base_pid)
1746 lwz r3, VCPU_GUEST_PID(r9)
1747 lwz r5, 0(r4)
1748 cmpw cr0,r3,r5
1749 blt 2f
1750
1751 /*
1752 * Illegal PID, the HW might have prefetched and cached in the TLB
1753 * some translations for the LPID 0 / guest PID combination which
1754 * Linux doesn't know about, so we need to flush that PID out of
1755 * the TLB. First we need to set LPIDR to 0 so tlbiel applies to
1756 * the right context.
1757 */
1758 li r0,0
1759 mtspr SPRN_LPID,r0
1760 isync
1761
1762 /* Then do a congruence class local flush */
1763 ld r6,VCPU_KVM(r9)
1764 lwz r0,KVM_TLB_SETS(r6)
1765 mtctr r0
1766 li r7,0x400 /* IS field = 0b01 */
1767 ptesync
1768 sldi r0,r3,32 /* RS has PID */
17691: PPC_TLBIEL(7,0,2,1,1) /* RIC=2, PRS=1, R=1 */
1770 addi r7,r7,0x1000
1771 bdnz 1b
1772 ptesync
1773
17742: /* Flush the ERAT on radix P9 DD1 guest exit */
1740BEGIN_FTR_SECTION 1775BEGIN_FTR_SECTION
1741 PPC_INVALIDATE_ERAT 1776 PPC_INVALIDATE_ERAT
1742END_FTR_SECTION_IFSET(CPU_FTR_POWER9_DD1) 1777END_FTR_SECTION_IFSET(CPU_FTR_POWER9_DD1)
1778 b 4f
1779#endif /* CONFIG_PPC_RADIX_MMU */
1743 1780
1781 /* Hash: clear out SLB */
17823: li r5,0
1783 slbmte r5,r5
1784 slbia
1785 ptesync
17864:
1744 /* 1787 /*
1745 * POWER7/POWER8 guest -> host partition switch code. 1788 * POWER7/POWER8 guest -> host partition switch code.
1746 * We don't have to lock against tlbies but we do 1789 * We don't have to lock against tlbies but we do
diff --git a/arch/powerpc/mm/mmu_context_book3s64.c b/arch/powerpc/mm/mmu_context_book3s64.c
index abed1fe6992f..a75f63833284 100644
--- a/arch/powerpc/mm/mmu_context_book3s64.c
+++ b/arch/powerpc/mm/mmu_context_book3s64.c
@@ -126,9 +126,10 @@ static int hash__init_new_context(struct mm_struct *mm)
126static int radix__init_new_context(struct mm_struct *mm) 126static int radix__init_new_context(struct mm_struct *mm)
127{ 127{
128 unsigned long rts_field; 128 unsigned long rts_field;
129 int index; 129 int index, max_id;
130 130
131 index = alloc_context_id(1, PRTB_ENTRIES - 1); 131 max_id = (1 << mmu_pid_bits) - 1;
132 index = alloc_context_id(mmu_base_pid, max_id);
132 if (index < 0) 133 if (index < 0)
133 return index; 134 return index;
134 135
diff --git a/arch/powerpc/mm/pgtable-radix.c b/arch/powerpc/mm/pgtable-radix.c
index 5cc50d47ce3f..671a45d86c18 100644
--- a/arch/powerpc/mm/pgtable-radix.c
+++ b/arch/powerpc/mm/pgtable-radix.c
@@ -25,6 +25,9 @@
25 25
26#include <trace/events/thp.h> 26#include <trace/events/thp.h>
27 27
28unsigned int mmu_pid_bits;
29unsigned int mmu_base_pid;
30
28static int native_register_process_table(unsigned long base, unsigned long pg_sz, 31static int native_register_process_table(unsigned long base, unsigned long pg_sz,
29 unsigned long table_size) 32 unsigned long table_size)
30{ 33{
@@ -261,11 +264,34 @@ static void __init radix_init_pgtable(void)
261 for_each_memblock(memory, reg) 264 for_each_memblock(memory, reg)
262 WARN_ON(create_physical_mapping(reg->base, 265 WARN_ON(create_physical_mapping(reg->base,
263 reg->base + reg->size)); 266 reg->base + reg->size));
267
268 /* Find out how many PID bits are supported */
269 if (cpu_has_feature(CPU_FTR_HVMODE)) {
270 if (!mmu_pid_bits)
271 mmu_pid_bits = 20;
272#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
273 /*
274 * When KVM is possible, we only use the top half of the
275 * PID space to avoid collisions between host and guest PIDs
276 * which can cause problems due to prefetch when exiting the
277 * guest with AIL=3
278 */
279 mmu_base_pid = 1 << (mmu_pid_bits - 1);
280#else
281 mmu_base_pid = 1;
282#endif
283 } else {
284 /* The guest uses the bottom half of the PID space */
285 if (!mmu_pid_bits)
286 mmu_pid_bits = 19;
287 mmu_base_pid = 1;
288 }
289
264 /* 290 /*
265 * Allocate Partition table and process table for the 291 * Allocate Partition table and process table for the
266 * host. 292 * host.
267 */ 293 */
268 BUILD_BUG_ON_MSG((PRTB_SIZE_SHIFT > 36), "Process table size too large."); 294 BUG_ON(PRTB_SIZE_SHIFT > 36);
269 process_tb = early_alloc_pgtable(1UL << PRTB_SIZE_SHIFT); 295 process_tb = early_alloc_pgtable(1UL << PRTB_SIZE_SHIFT);
270 /* 296 /*
271 * Fill in the process table. 297 * Fill in the process table.
@@ -339,6 +365,12 @@ static int __init radix_dt_scan_page_sizes(unsigned long node,
339 if (type == NULL || strcmp(type, "cpu") != 0) 365 if (type == NULL || strcmp(type, "cpu") != 0)
340 return 0; 366 return 0;
341 367
368 /* Find MMU PID size */
369 prop = of_get_flat_dt_prop(node, "ibm,mmu-pid-bits", &size);
370 if (prop && size == 4)
371 mmu_pid_bits = be32_to_cpup(prop);
372
373 /* Grab page size encodings */
342 prop = of_get_flat_dt_prop(node, "ibm,processor-radix-AP-encodings", &size); 374 prop = of_get_flat_dt_prop(node, "ibm,processor-radix-AP-encodings", &size);
343 if (!prop) 375 if (!prop)
344 return 0; 376 return 0;
diff --git a/arch/powerpc/mm/subpage-prot.c b/arch/powerpc/mm/subpage-prot.c
index e94fbd4c8845..781532d7bc4d 100644
--- a/arch/powerpc/mm/subpage-prot.c
+++ b/arch/powerpc/mm/subpage-prot.c
@@ -36,7 +36,7 @@ void subpage_prot_free(struct mm_struct *mm)
36 } 36 }
37 } 37 }
38 addr = 0; 38 addr = 0;
39 for (i = 0; i < 2; ++i) { 39 for (i = 0; i < (TASK_SIZE_USER64 >> 43); ++i) {
40 p = spt->protptrs[i]; 40 p = spt->protptrs[i];
41 if (!p) 41 if (!p)
42 continue; 42 continue;
diff --git a/arch/powerpc/mm/tlb-radix.c b/arch/powerpc/mm/tlb-radix.c
index 744e0164ecf5..16ae1bbe13f0 100644
--- a/arch/powerpc/mm/tlb-radix.c
+++ b/arch/powerpc/mm/tlb-radix.c
@@ -12,12 +12,12 @@
12#include <linux/mm.h> 12#include <linux/mm.h>
13#include <linux/hugetlb.h> 13#include <linux/hugetlb.h>
14#include <linux/memblock.h> 14#include <linux/memblock.h>
15#include <asm/ppc-opcode.h>
16 15
16#include <asm/ppc-opcode.h>
17#include <asm/tlb.h> 17#include <asm/tlb.h>
18#include <asm/tlbflush.h> 18#include <asm/tlbflush.h>
19#include <asm/trace.h> 19#include <asm/trace.h>
20 20#include <asm/cputhreads.h>
21 21
22#define RIC_FLUSH_TLB 0 22#define RIC_FLUSH_TLB 0
23#define RIC_FLUSH_PWC 1 23#define RIC_FLUSH_PWC 1
@@ -454,3 +454,44 @@ void radix__flush_tlb_pte_p9_dd1(unsigned long old_pte, struct mm_struct *mm,
454 else 454 else
455 radix__flush_tlb_page_psize(mm, address, mmu_virtual_psize); 455 radix__flush_tlb_page_psize(mm, address, mmu_virtual_psize);
456} 456}
457
458#ifdef CONFIG_KVM_BOOK3S_HV_POSSIBLE
459extern void radix_kvm_prefetch_workaround(struct mm_struct *mm)
460{
461 unsigned int pid = mm->context.id;
462
463 if (unlikely(pid == MMU_NO_CONTEXT))
464 return;
465
466 /*
467 * If this context hasn't run on that CPU before and KVM is
468 * around, there's a slim chance that the guest on another
469 * CPU just brought in obsolete translation into the TLB of
470 * this CPU due to a bad prefetch using the guest PID on
471 * the way into the hypervisor.
472 *
473 * We work around this here. If KVM is possible, we check if
474 * any sibling thread is in KVM. If it is, the window may exist
475 * and thus we flush that PID from the core.
476 *
477 * A potential future improvement would be to mark which PIDs
478 * have never been used on the system and avoid it if the PID
479 * is new and the process has no other cpumask bit set.
480 */
481 if (cpu_has_feature(CPU_FTR_HVMODE) && radix_enabled()) {
482 int cpu = smp_processor_id();
483 int sib = cpu_first_thread_sibling(cpu);
484 bool flush = false;
485
486 for (; sib <= cpu_last_thread_sibling(cpu) && !flush; sib++) {
487 if (sib == cpu)
488 continue;
489 if (paca[sib].kvm_hstate.kvm_vcpu)
490 flush = true;
491 }
492 if (flush)
493 _tlbiel_pid(pid, RIC_FLUSH_ALL);
494 }
495}
496EXPORT_SYMBOL_GPL(radix_kvm_prefetch_workaround);
497#endif /* CONFIG_KVM_BOOK3S_HV_POSSIBLE */
diff --git a/arch/powerpc/platforms/83xx/mpc832x_rdb.c b/arch/powerpc/platforms/83xx/mpc832x_rdb.c
index d7c9b186954d..763ffca9628d 100644
--- a/arch/powerpc/platforms/83xx/mpc832x_rdb.c
+++ b/arch/powerpc/platforms/83xx/mpc832x_rdb.c
@@ -89,7 +89,7 @@ static int __init of_fsl_spi_probe(char *type, char *compatible, u32 sysclk,
89 goto err; 89 goto err;
90 90
91 ret = of_irq_to_resource(np, 0, &res[1]); 91 ret = of_irq_to_resource(np, 0, &res[1]);
92 if (!ret) 92 if (ret <= 0)
93 goto err; 93 goto err;
94 94
95 pdev = platform_device_alloc("mpc83xx_spi", i); 95 pdev = platform_device_alloc("mpc83xx_spi", i);
diff --git a/arch/powerpc/platforms/powernv/pci-ioda.c b/arch/powerpc/platforms/powernv/pci-ioda.c
index 437613588df1..b900eb1d5e17 100644
--- a/arch/powerpc/platforms/powernv/pci-ioda.c
+++ b/arch/powerpc/platforms/powernv/pci-ioda.c
@@ -1852,6 +1852,14 @@ static int pnv_pci_ioda_dma_set_mask(struct pci_dev *pdev, u64 dma_mask)
1852 /* 4GB offset bypasses 32-bit space */ 1852 /* 4GB offset bypasses 32-bit space */
1853 set_dma_offset(&pdev->dev, (1ULL << 32)); 1853 set_dma_offset(&pdev->dev, (1ULL << 32));
1854 set_dma_ops(&pdev->dev, &dma_direct_ops); 1854 set_dma_ops(&pdev->dev, &dma_direct_ops);
1855 } else if (dma_mask >> 32 && dma_mask != DMA_BIT_MASK(64)) {
1856 /*
1857 * Fail the request if a DMA mask between 32 and 64 bits
1858 * was requested but couldn't be fulfilled. Ideally we
1859 * would do this for 64-bits but historically we have
1860 * always fallen back to 32-bits.
1861 */
1862 return -ENOMEM;
1855 } else { 1863 } else {
1856 dev_info(&pdev->dev, "Using 32-bit DMA via iommu\n"); 1864 dev_info(&pdev->dev, "Using 32-bit DMA via iommu\n");
1857 set_dma_ops(&pdev->dev, &dma_iommu_ops); 1865 set_dma_ops(&pdev->dev, &dma_iommu_ops);
diff --git a/arch/powerpc/platforms/pseries/reconfig.c b/arch/powerpc/platforms/pseries/reconfig.c
index e5bf1e84047f..011ef2180fe6 100644
--- a/arch/powerpc/platforms/pseries/reconfig.c
+++ b/arch/powerpc/platforms/pseries/reconfig.c
@@ -82,7 +82,6 @@ static int pSeries_reconfig_remove_node(struct device_node *np)
82 82
83 of_detach_node(np); 83 of_detach_node(np);
84 of_node_put(parent); 84 of_node_put(parent);
85 of_node_put(np); /* Must decrement the refcount */
86 return 0; 85 return 0;
87} 86}
88 87
diff --git a/arch/s390/kernel/perf_cpum_sf.c b/arch/s390/kernel/perf_cpum_sf.c
index 0c82f7903fc7..c1bf75ffb875 100644
--- a/arch/s390/kernel/perf_cpum_sf.c
+++ b/arch/s390/kernel/perf_cpum_sf.c
@@ -998,7 +998,7 @@ static int perf_push_sample(struct perf_event *event, struct sf_raw_sample *sfr)
998 psw_bits(regs.psw).ia = sfr->basic.ia; 998 psw_bits(regs.psw).ia = sfr->basic.ia;
999 psw_bits(regs.psw).dat = sfr->basic.T; 999 psw_bits(regs.psw).dat = sfr->basic.T;
1000 psw_bits(regs.psw).wait = sfr->basic.W; 1000 psw_bits(regs.psw).wait = sfr->basic.W;
1001 psw_bits(regs.psw).per = sfr->basic.P; 1001 psw_bits(regs.psw).pstate = sfr->basic.P;
1002 psw_bits(regs.psw).as = sfr->basic.AS; 1002 psw_bits(regs.psw).as = sfr->basic.AS;
1003 1003
1004 /* 1004 /*
diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
index 3f2884e99ed4..af09d3437631 100644
--- a/arch/s390/kvm/kvm-s390.c
+++ b/arch/s390/kvm/kvm-s390.c
@@ -1324,7 +1324,7 @@ static long kvm_s390_get_skeys(struct kvm *kvm, struct kvm_s390_skeys *args)
1324{ 1324{
1325 uint8_t *keys; 1325 uint8_t *keys;
1326 uint64_t hva; 1326 uint64_t hva;
1327 int i, r = 0; 1327 int srcu_idx, i, r = 0;
1328 1328
1329 if (args->flags != 0) 1329 if (args->flags != 0)
1330 return -EINVAL; 1330 return -EINVAL;
@@ -1342,6 +1342,7 @@ static long kvm_s390_get_skeys(struct kvm *kvm, struct kvm_s390_skeys *args)
1342 return -ENOMEM; 1342 return -ENOMEM;
1343 1343
1344 down_read(&current->mm->mmap_sem); 1344 down_read(&current->mm->mmap_sem);
1345 srcu_idx = srcu_read_lock(&kvm->srcu);
1345 for (i = 0; i < args->count; i++) { 1346 for (i = 0; i < args->count; i++) {
1346 hva = gfn_to_hva(kvm, args->start_gfn + i); 1347 hva = gfn_to_hva(kvm, args->start_gfn + i);
1347 if (kvm_is_error_hva(hva)) { 1348 if (kvm_is_error_hva(hva)) {
@@ -1353,6 +1354,7 @@ static long kvm_s390_get_skeys(struct kvm *kvm, struct kvm_s390_skeys *args)
1353 if (r) 1354 if (r)
1354 break; 1355 break;
1355 } 1356 }
1357 srcu_read_unlock(&kvm->srcu, srcu_idx);
1356 up_read(&current->mm->mmap_sem); 1358 up_read(&current->mm->mmap_sem);
1357 1359
1358 if (!r) { 1360 if (!r) {
@@ -1370,7 +1372,7 @@ static long kvm_s390_set_skeys(struct kvm *kvm, struct kvm_s390_skeys *args)
1370{ 1372{
1371 uint8_t *keys; 1373 uint8_t *keys;
1372 uint64_t hva; 1374 uint64_t hva;
1373 int i, r = 0; 1375 int srcu_idx, i, r = 0;
1374 1376
1375 if (args->flags != 0) 1377 if (args->flags != 0)
1376 return -EINVAL; 1378 return -EINVAL;
@@ -1396,6 +1398,7 @@ static long kvm_s390_set_skeys(struct kvm *kvm, struct kvm_s390_skeys *args)
1396 goto out; 1398 goto out;
1397 1399
1398 down_read(&current->mm->mmap_sem); 1400 down_read(&current->mm->mmap_sem);
1401 srcu_idx = srcu_read_lock(&kvm->srcu);
1399 for (i = 0; i < args->count; i++) { 1402 for (i = 0; i < args->count; i++) {
1400 hva = gfn_to_hva(kvm, args->start_gfn + i); 1403 hva = gfn_to_hva(kvm, args->start_gfn + i);
1401 if (kvm_is_error_hva(hva)) { 1404 if (kvm_is_error_hva(hva)) {
@@ -1413,6 +1416,7 @@ static long kvm_s390_set_skeys(struct kvm *kvm, struct kvm_s390_skeys *args)
1413 if (r) 1416 if (r)
1414 break; 1417 break;
1415 } 1418 }
1419 srcu_read_unlock(&kvm->srcu, srcu_idx);
1416 up_read(&current->mm->mmap_sem); 1420 up_read(&current->mm->mmap_sem);
1417out: 1421out:
1418 kvfree(keys); 1422 kvfree(keys);
diff --git a/arch/s390/mm/pgtable.c b/arch/s390/mm/pgtable.c
index d4d409ba206b..4a1f7366b17a 100644
--- a/arch/s390/mm/pgtable.c
+++ b/arch/s390/mm/pgtable.c
@@ -591,11 +591,11 @@ void ptep_zap_key(struct mm_struct *mm, unsigned long addr, pte_t *ptep)
591 unsigned long ptev; 591 unsigned long ptev;
592 pgste_t pgste; 592 pgste_t pgste;
593 593
594 /* Clear storage key */ 594 /* Clear storage key ACC and F, but set R/C */
595 preempt_disable(); 595 preempt_disable();
596 pgste = pgste_get_lock(ptep); 596 pgste = pgste_get_lock(ptep);
597 pgste_val(pgste) &= ~(PGSTE_ACC_BITS | PGSTE_FP_BIT | 597 pgste_val(pgste) &= ~(PGSTE_ACC_BITS | PGSTE_FP_BIT);
598 PGSTE_GR_BIT | PGSTE_GC_BIT); 598 pgste_val(pgste) |= PGSTE_GR_BIT | PGSTE_GC_BIT;
599 ptev = pte_val(*ptep); 599 ptev = pte_val(*ptep);
600 if (!(ptev & _PAGE_INVALID) && (ptev & _PAGE_WRITE)) 600 if (!(ptev & _PAGE_INVALID) && (ptev & _PAGE_WRITE))
601 page_set_storage_key(ptev & PAGE_MASK, PAGE_DEFAULT_KEY, 1); 601 page_set_storage_key(ptev & PAGE_MASK, PAGE_DEFAULT_KEY, 1);
diff --git a/arch/s390/net/bpf_jit_comp.c b/arch/s390/net/bpf_jit_comp.c
index 01c6fbc3e85b..1803797fc885 100644
--- a/arch/s390/net/bpf_jit_comp.c
+++ b/arch/s390/net/bpf_jit_comp.c
@@ -1253,7 +1253,8 @@ static int bpf_jit_prog(struct bpf_jit *jit, struct bpf_prog *fp)
1253 insn_count = bpf_jit_insn(jit, fp, i); 1253 insn_count = bpf_jit_insn(jit, fp, i);
1254 if (insn_count < 0) 1254 if (insn_count < 0)
1255 return -1; 1255 return -1;
1256 jit->addrs[i + 1] = jit->prg; /* Next instruction address */ 1256 /* Next instruction address */
1257 jit->addrs[i + insn_count] = jit->prg;
1257 } 1258 }
1258 bpf_jit_epilogue(jit); 1259 bpf_jit_epilogue(jit);
1259 1260
diff --git a/arch/sparc/configs/sparc32_defconfig b/arch/sparc/configs/sparc32_defconfig
index c74d3701ad68..207a43a2d8b3 100644
--- a/arch/sparc/configs/sparc32_defconfig
+++ b/arch/sparc/configs/sparc32_defconfig
@@ -1,4 +1,3 @@
1CONFIG_EXPERIMENTAL=y
2CONFIG_SYSVIPC=y 1CONFIG_SYSVIPC=y
3CONFIG_POSIX_MQUEUE=y 2CONFIG_POSIX_MQUEUE=y
4CONFIG_LOG_BUF_SHIFT=14 3CONFIG_LOG_BUF_SHIFT=14
@@ -23,7 +22,6 @@ CONFIG_IP_PNP_DHCP=y
23CONFIG_INET_AH=y 22CONFIG_INET_AH=y
24CONFIG_INET_ESP=y 23CONFIG_INET_ESP=y
25CONFIG_INET_IPCOMP=y 24CONFIG_INET_IPCOMP=y
26# CONFIG_INET_LRO is not set
27CONFIG_INET6_AH=m 25CONFIG_INET6_AH=m
28CONFIG_INET6_ESP=m 26CONFIG_INET6_ESP=m
29CONFIG_INET6_IPCOMP=m 27CONFIG_INET6_IPCOMP=m
@@ -69,7 +67,6 @@ CONFIG_EXT2_FS=y
69CONFIG_EXT2_FS_XATTR=y 67CONFIG_EXT2_FS_XATTR=y
70CONFIG_EXT2_FS_POSIX_ACL=y 68CONFIG_EXT2_FS_POSIX_ACL=y
71CONFIG_EXT2_FS_SECURITY=y 69CONFIG_EXT2_FS_SECURITY=y
72CONFIG_AUTOFS_FS=m
73CONFIG_AUTOFS4_FS=m 70CONFIG_AUTOFS4_FS=m
74CONFIG_ISO9660_FS=m 71CONFIG_ISO9660_FS=m
75CONFIG_PROC_KCORE=y 72CONFIG_PROC_KCORE=y
@@ -82,7 +79,6 @@ CONFIG_NLS=y
82CONFIG_DEBUG_KERNEL=y 79CONFIG_DEBUG_KERNEL=y
83CONFIG_DETECT_HUNG_TASK=y 80CONFIG_DETECT_HUNG_TASK=y
84# CONFIG_SCHED_DEBUG is not set 81# CONFIG_SCHED_DEBUG is not set
85# CONFIG_RCU_CPU_STALL_DETECTOR is not set
86CONFIG_KGDB=y 82CONFIG_KGDB=y
87CONFIG_KGDB_TESTS=y 83CONFIG_KGDB_TESTS=y
88CONFIG_CRYPTO_NULL=m 84CONFIG_CRYPTO_NULL=m
diff --git a/arch/sparc/configs/sparc64_defconfig b/arch/sparc/configs/sparc64_defconfig
index b2e650d1764f..ca8609d7292f 100644
--- a/arch/sparc/configs/sparc64_defconfig
+++ b/arch/sparc/configs/sparc64_defconfig
@@ -1,5 +1,4 @@
1CONFIG_64BIT=y 1CONFIG_64BIT=y
2CONFIG_EXPERIMENTAL=y
3# CONFIG_LOCALVERSION_AUTO is not set 2# CONFIG_LOCALVERSION_AUTO is not set
4CONFIG_SYSVIPC=y 3CONFIG_SYSVIPC=y
5CONFIG_POSIX_MQUEUE=y 4CONFIG_POSIX_MQUEUE=y
@@ -184,7 +183,6 @@ CONFIG_HID_TOPSEED=y
184CONFIG_HID_THRUSTMASTER=y 183CONFIG_HID_THRUSTMASTER=y
185CONFIG_HID_ZEROPLUS=y 184CONFIG_HID_ZEROPLUS=y
186CONFIG_USB=y 185CONFIG_USB=y
187# CONFIG_USB_DEVICE_CLASS is not set
188CONFIG_USB_EHCI_HCD=m 186CONFIG_USB_EHCI_HCD=m
189# CONFIG_USB_EHCI_TT_NEWSCHED is not set 187# CONFIG_USB_EHCI_TT_NEWSCHED is not set
190CONFIG_USB_OHCI_HCD=y 188CONFIG_USB_OHCI_HCD=y
@@ -210,8 +208,6 @@ CONFIG_LOCKUP_DETECTOR=y
210CONFIG_DETECT_HUNG_TASK=y 208CONFIG_DETECT_HUNG_TASK=y
211# CONFIG_SCHED_DEBUG is not set 209# CONFIG_SCHED_DEBUG is not set
212CONFIG_SCHEDSTATS=y 210CONFIG_SCHEDSTATS=y
213# CONFIG_RCU_CPU_STALL_DETECTOR is not set
214CONFIG_SYSCTL_SYSCALL_CHECK=y
215CONFIG_BLK_DEV_IO_TRACE=y 211CONFIG_BLK_DEV_IO_TRACE=y
216CONFIG_UPROBE_EVENTS=y 212CONFIG_UPROBE_EVENTS=y
217CONFIG_KEYS=y 213CONFIG_KEYS=y
diff --git a/arch/sparc/include/asm/mmu_context_64.h b/arch/sparc/include/asm/mmu_context_64.h
index 2cddcda4f85f..87841d687f8d 100644
--- a/arch/sparc/include/asm/mmu_context_64.h
+++ b/arch/sparc/include/asm/mmu_context_64.h
@@ -27,9 +27,11 @@ void destroy_context(struct mm_struct *mm);
27void __tsb_context_switch(unsigned long pgd_pa, 27void __tsb_context_switch(unsigned long pgd_pa,
28 struct tsb_config *tsb_base, 28 struct tsb_config *tsb_base,
29 struct tsb_config *tsb_huge, 29 struct tsb_config *tsb_huge,
30 unsigned long tsb_descr_pa); 30 unsigned long tsb_descr_pa,
31 unsigned long secondary_ctx);
31 32
32static inline void tsb_context_switch(struct mm_struct *mm) 33static inline void tsb_context_switch_ctx(struct mm_struct *mm,
34 unsigned long ctx)
33{ 35{
34 __tsb_context_switch(__pa(mm->pgd), 36 __tsb_context_switch(__pa(mm->pgd),
35 &mm->context.tsb_block[MM_TSB_BASE], 37 &mm->context.tsb_block[MM_TSB_BASE],
@@ -40,9 +42,12 @@ static inline void tsb_context_switch(struct mm_struct *mm)
40#else 42#else
41 NULL 43 NULL
42#endif 44#endif
43 , __pa(&mm->context.tsb_descr[MM_TSB_BASE])); 45 , __pa(&mm->context.tsb_descr[MM_TSB_BASE]),
46 ctx);
44} 47}
45 48
49#define tsb_context_switch(X) tsb_context_switch_ctx(X, 0)
50
46void tsb_grow(struct mm_struct *mm, 51void tsb_grow(struct mm_struct *mm,
47 unsigned long tsb_index, 52 unsigned long tsb_index,
48 unsigned long mm_rss); 53 unsigned long mm_rss);
@@ -112,8 +117,7 @@ static inline void switch_mm(struct mm_struct *old_mm, struct mm_struct *mm, str
112 * cpu0 to update it's TSB because at that point the cpu_vm_mask 117 * cpu0 to update it's TSB because at that point the cpu_vm_mask
113 * only had cpu1 set in it. 118 * only had cpu1 set in it.
114 */ 119 */
115 load_secondary_context(mm); 120 tsb_context_switch_ctx(mm, CTX_HWBITS(mm->context));
116 tsb_context_switch(mm);
117 121
118 /* Any time a processor runs a context on an address space 122 /* Any time a processor runs a context on an address space
119 * for the first time, we must flush that context out of the 123 * for the first time, we must flush that context out of the
diff --git a/arch/sparc/kernel/tsb.S b/arch/sparc/kernel/tsb.S
index 07c0df924960..db872dbfafe9 100644
--- a/arch/sparc/kernel/tsb.S
+++ b/arch/sparc/kernel/tsb.S
@@ -360,6 +360,7 @@ tsb_flush:
360 * %o1: TSB base config pointer 360 * %o1: TSB base config pointer
361 * %o2: TSB huge config pointer, or NULL if none 361 * %o2: TSB huge config pointer, or NULL if none
362 * %o3: Hypervisor TSB descriptor physical address 362 * %o3: Hypervisor TSB descriptor physical address
363 * %o4: Secondary context to load, if non-zero
363 * 364 *
364 * We have to run this whole thing with interrupts 365 * We have to run this whole thing with interrupts
365 * disabled so that the current cpu doesn't change 366 * disabled so that the current cpu doesn't change
@@ -372,6 +373,17 @@ __tsb_context_switch:
372 rdpr %pstate, %g1 373 rdpr %pstate, %g1
373 wrpr %g1, PSTATE_IE, %pstate 374 wrpr %g1, PSTATE_IE, %pstate
374 375
376 brz,pn %o4, 1f
377 mov SECONDARY_CONTEXT, %o5
378
379661: stxa %o4, [%o5] ASI_DMMU
380 .section .sun4v_1insn_patch, "ax"
381 .word 661b
382 stxa %o4, [%o5] ASI_MMU
383 .previous
384 flush %g6
385
3861:
375 TRAP_LOAD_TRAP_BLOCK(%g2, %g3) 387 TRAP_LOAD_TRAP_BLOCK(%g2, %g3)
376 388
377 stx %o0, [%g2 + TRAP_PER_CPU_PGD_PADDR] 389 stx %o0, [%g2 + TRAP_PER_CPU_PGD_PADDR]
diff --git a/arch/sparc/lib/U3memcpy.S b/arch/sparc/lib/U3memcpy.S
index 54f98706b03b..5a8cb37f0a3b 100644
--- a/arch/sparc/lib/U3memcpy.S
+++ b/arch/sparc/lib/U3memcpy.S
@@ -145,13 +145,13 @@ ENDPROC(U3_retl_o2_plus_GS_plus_0x08)
145ENTRY(U3_retl_o2_and_7_plus_GS) 145ENTRY(U3_retl_o2_and_7_plus_GS)
146 and %o2, 7, %o2 146 and %o2, 7, %o2
147 retl 147 retl
148 add %o2, GLOBAL_SPARE, %o2 148 add %o2, GLOBAL_SPARE, %o0
149ENDPROC(U3_retl_o2_and_7_plus_GS) 149ENDPROC(U3_retl_o2_and_7_plus_GS)
150ENTRY(U3_retl_o2_and_7_plus_GS_plus_8) 150ENTRY(U3_retl_o2_and_7_plus_GS_plus_8)
151 add GLOBAL_SPARE, 8, GLOBAL_SPARE 151 add GLOBAL_SPARE, 8, GLOBAL_SPARE
152 and %o2, 7, %o2 152 and %o2, 7, %o2
153 retl 153 retl
154 add %o2, GLOBAL_SPARE, %o2 154 add %o2, GLOBAL_SPARE, %o0
155ENDPROC(U3_retl_o2_and_7_plus_GS_plus_8) 155ENDPROC(U3_retl_o2_and_7_plus_GS_plus_8)
156#endif 156#endif
157 157
diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
index 3c40ebd50f92..fed73f14aa49 100644
--- a/arch/sparc/mm/init_64.c
+++ b/arch/sparc/mm/init_64.c
@@ -325,6 +325,29 @@ static void __update_mmu_tsb_insert(struct mm_struct *mm, unsigned long tsb_inde
325} 325}
326 326
327#ifdef CONFIG_HUGETLB_PAGE 327#ifdef CONFIG_HUGETLB_PAGE
328static void __init add_huge_page_size(unsigned long size)
329{
330 unsigned int order;
331
332 if (size_to_hstate(size))
333 return;
334
335 order = ilog2(size) - PAGE_SHIFT;
336 hugetlb_add_hstate(order);
337}
338
339static int __init hugetlbpage_init(void)
340{
341 add_huge_page_size(1UL << HPAGE_64K_SHIFT);
342 add_huge_page_size(1UL << HPAGE_SHIFT);
343 add_huge_page_size(1UL << HPAGE_256MB_SHIFT);
344 add_huge_page_size(1UL << HPAGE_2GB_SHIFT);
345
346 return 0;
347}
348
349arch_initcall(hugetlbpage_init);
350
328static int __init setup_hugepagesz(char *string) 351static int __init setup_hugepagesz(char *string)
329{ 352{
330 unsigned long long hugepage_size; 353 unsigned long long hugepage_size;
@@ -364,7 +387,7 @@ static int __init setup_hugepagesz(char *string)
364 goto out; 387 goto out;
365 } 388 }
366 389
367 hugetlb_add_hstate(hugepage_shift - PAGE_SHIFT); 390 add_huge_page_size(hugepage_size);
368 rc = 1; 391 rc = 1;
369 392
370out: 393out:
diff --git a/arch/sparc/power/hibernate.c b/arch/sparc/power/hibernate.c
index 17bd2e167e07..df707a8ad311 100644
--- a/arch/sparc/power/hibernate.c
+++ b/arch/sparc/power/hibernate.c
@@ -35,6 +35,5 @@ void restore_processor_state(void)
35{ 35{
36 struct mm_struct *mm = current->active_mm; 36 struct mm_struct *mm = current->active_mm;
37 37
38 load_secondary_context(mm); 38 tsb_context_switch_ctx(mm, CTX_HWBITS(mm->context));
39 tsb_context_switch(mm);
40} 39}
diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
index 2c860ad4fe06..8a958274b54c 100644
--- a/arch/x86/boot/compressed/Makefile
+++ b/arch/x86/boot/compressed/Makefile
@@ -34,6 +34,7 @@ KBUILD_CFLAGS += $(cflags-y)
34KBUILD_CFLAGS += -mno-mmx -mno-sse 34KBUILD_CFLAGS += -mno-mmx -mno-sse
35KBUILD_CFLAGS += $(call cc-option,-ffreestanding) 35KBUILD_CFLAGS += $(call cc-option,-ffreestanding)
36KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector) 36KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector)
37KBUILD_CFLAGS += $(call cc-disable-warning, address-of-packed-member)
37 38
38KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__ 39KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
39GCOV_PROFILE := n 40GCOV_PROFILE := n
diff --git a/arch/x86/boot/string.c b/arch/x86/boot/string.c
index 630e3664906b..16f49123d747 100644
--- a/arch/x86/boot/string.c
+++ b/arch/x86/boot/string.c
@@ -16,6 +16,15 @@
16#include "ctype.h" 16#include "ctype.h"
17#include "string.h" 17#include "string.h"
18 18
19/*
20 * Undef these macros so that the functions that we provide
21 * here will have the correct names regardless of how string.h
22 * may have chosen to #define them.
23 */
24#undef memcpy
25#undef memset
26#undef memcmp
27
19int memcmp(const void *s1, const void *s2, size_t len) 28int memcmp(const void *s1, const void *s2, size_t len)
20{ 29{
21 bool diff; 30 bool diff;
diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
index a9a8027a6c0e..d271fb79248f 100644
--- a/arch/x86/entry/entry_64.S
+++ b/arch/x86/entry/entry_64.S
@@ -705,6 +705,7 @@ apicinterrupt X86_PLATFORM_IPI_VECTOR x86_platform_ipi smp_x86_platform_ipi
705#ifdef CONFIG_HAVE_KVM 705#ifdef CONFIG_HAVE_KVM
706apicinterrupt3 POSTED_INTR_VECTOR kvm_posted_intr_ipi smp_kvm_posted_intr_ipi 706apicinterrupt3 POSTED_INTR_VECTOR kvm_posted_intr_ipi smp_kvm_posted_intr_ipi
707apicinterrupt3 POSTED_INTR_WAKEUP_VECTOR kvm_posted_intr_wakeup_ipi smp_kvm_posted_intr_wakeup_ipi 707apicinterrupt3 POSTED_INTR_WAKEUP_VECTOR kvm_posted_intr_wakeup_ipi smp_kvm_posted_intr_wakeup_ipi
708apicinterrupt3 POSTED_INTR_NESTED_VECTOR kvm_posted_intr_nested_ipi smp_kvm_posted_intr_nested_ipi
708#endif 709#endif
709 710
710#ifdef CONFIG_X86_MCE_THRESHOLD 711#ifdef CONFIG_X86_MCE_THRESHOLD
diff --git a/arch/x86/events/core.c b/arch/x86/events/core.c
index 8e3db8f642a7..af12e294caed 100644
--- a/arch/x86/events/core.c
+++ b/arch/x86/events/core.c
@@ -2114,7 +2114,7 @@ static void refresh_pce(void *ignored)
2114 load_mm_cr4(this_cpu_read(cpu_tlbstate.loaded_mm)); 2114 load_mm_cr4(this_cpu_read(cpu_tlbstate.loaded_mm));
2115} 2115}
2116 2116
2117static void x86_pmu_event_mapped(struct perf_event *event) 2117static void x86_pmu_event_mapped(struct perf_event *event, struct mm_struct *mm)
2118{ 2118{
2119 if (!(event->hw.flags & PERF_X86_EVENT_RDPMC_ALLOWED)) 2119 if (!(event->hw.flags & PERF_X86_EVENT_RDPMC_ALLOWED))
2120 return; 2120 return;
@@ -2129,22 +2129,20 @@ static void x86_pmu_event_mapped(struct perf_event *event)
2129 * For now, this can't happen because all callers hold mmap_sem 2129 * For now, this can't happen because all callers hold mmap_sem
2130 * for write. If this changes, we'll need a different solution. 2130 * for write. If this changes, we'll need a different solution.
2131 */ 2131 */
2132 lockdep_assert_held_exclusive(&current->mm->mmap_sem); 2132 lockdep_assert_held_exclusive(&mm->mmap_sem);
2133 2133
2134 if (atomic_inc_return(&current->mm->context.perf_rdpmc_allowed) == 1) 2134 if (atomic_inc_return(&mm->context.perf_rdpmc_allowed) == 1)
2135 on_each_cpu_mask(mm_cpumask(current->mm), refresh_pce, NULL, 1); 2135 on_each_cpu_mask(mm_cpumask(mm), refresh_pce, NULL, 1);
2136} 2136}
2137 2137
2138static void x86_pmu_event_unmapped(struct perf_event *event) 2138static void x86_pmu_event_unmapped(struct perf_event *event, struct mm_struct *mm)
2139{ 2139{
2140 if (!current->mm)
2141 return;
2142 2140
2143 if (!(event->hw.flags & PERF_X86_EVENT_RDPMC_ALLOWED)) 2141 if (!(event->hw.flags & PERF_X86_EVENT_RDPMC_ALLOWED))
2144 return; 2142 return;
2145 2143
2146 if (atomic_dec_and_test(&current->mm->context.perf_rdpmc_allowed)) 2144 if (atomic_dec_and_test(&mm->context.perf_rdpmc_allowed))
2147 on_each_cpu_mask(mm_cpumask(current->mm), refresh_pce, NULL, 1); 2145 on_each_cpu_mask(mm_cpumask(mm), refresh_pce, NULL, 1);
2148} 2146}
2149 2147
2150static int x86_pmu_event_idx(struct perf_event *event) 2148static int x86_pmu_event_idx(struct perf_event *event)
diff --git a/arch/x86/include/asm/entry_arch.h b/arch/x86/include/asm/entry_arch.h
index df002992d8fd..07b06955a05d 100644
--- a/arch/x86/include/asm/entry_arch.h
+++ b/arch/x86/include/asm/entry_arch.h
@@ -25,6 +25,8 @@ BUILD_INTERRUPT3(kvm_posted_intr_ipi, POSTED_INTR_VECTOR,
25 smp_kvm_posted_intr_ipi) 25 smp_kvm_posted_intr_ipi)
26BUILD_INTERRUPT3(kvm_posted_intr_wakeup_ipi, POSTED_INTR_WAKEUP_VECTOR, 26BUILD_INTERRUPT3(kvm_posted_intr_wakeup_ipi, POSTED_INTR_WAKEUP_VECTOR,
27 smp_kvm_posted_intr_wakeup_ipi) 27 smp_kvm_posted_intr_wakeup_ipi)
28BUILD_INTERRUPT3(kvm_posted_intr_nested_ipi, POSTED_INTR_NESTED_VECTOR,
29 smp_kvm_posted_intr_nested_ipi)
28#endif 30#endif
29 31
30/* 32/*
diff --git a/arch/x86/include/asm/hardirq.h b/arch/x86/include/asm/hardirq.h
index 9b76cd331990..ad1ed531febc 100644
--- a/arch/x86/include/asm/hardirq.h
+++ b/arch/x86/include/asm/hardirq.h
@@ -15,6 +15,7 @@ typedef struct {
15#ifdef CONFIG_HAVE_KVM 15#ifdef CONFIG_HAVE_KVM
16 unsigned int kvm_posted_intr_ipis; 16 unsigned int kvm_posted_intr_ipis;
17 unsigned int kvm_posted_intr_wakeup_ipis; 17 unsigned int kvm_posted_intr_wakeup_ipis;
18 unsigned int kvm_posted_intr_nested_ipis;
18#endif 19#endif
19 unsigned int x86_platform_ipis; /* arch dependent */ 20 unsigned int x86_platform_ipis; /* arch dependent */
20 unsigned int apic_perf_irqs; 21 unsigned int apic_perf_irqs;
diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h
index b90e1053049b..d6dbafbd4207 100644
--- a/arch/x86/include/asm/hw_irq.h
+++ b/arch/x86/include/asm/hw_irq.h
@@ -30,6 +30,7 @@ extern asmlinkage void apic_timer_interrupt(void);
30extern asmlinkage void x86_platform_ipi(void); 30extern asmlinkage void x86_platform_ipi(void);
31extern asmlinkage void kvm_posted_intr_ipi(void); 31extern asmlinkage void kvm_posted_intr_ipi(void);
32extern asmlinkage void kvm_posted_intr_wakeup_ipi(void); 32extern asmlinkage void kvm_posted_intr_wakeup_ipi(void);
33extern asmlinkage void kvm_posted_intr_nested_ipi(void);
33extern asmlinkage void error_interrupt(void); 34extern asmlinkage void error_interrupt(void);
34extern asmlinkage void irq_work_interrupt(void); 35extern asmlinkage void irq_work_interrupt(void);
35 36
@@ -62,6 +63,7 @@ extern void trace_call_function_single_interrupt(void);
62#define trace_reboot_interrupt reboot_interrupt 63#define trace_reboot_interrupt reboot_interrupt
63#define trace_kvm_posted_intr_ipi kvm_posted_intr_ipi 64#define trace_kvm_posted_intr_ipi kvm_posted_intr_ipi
64#define trace_kvm_posted_intr_wakeup_ipi kvm_posted_intr_wakeup_ipi 65#define trace_kvm_posted_intr_wakeup_ipi kvm_posted_intr_wakeup_ipi
66#define trace_kvm_posted_intr_nested_ipi kvm_posted_intr_nested_ipi
65#endif /* CONFIG_TRACING */ 67#endif /* CONFIG_TRACING */
66 68
67#ifdef CONFIG_X86_LOCAL_APIC 69#ifdef CONFIG_X86_LOCAL_APIC
diff --git a/arch/x86/include/asm/irq_vectors.h b/arch/x86/include/asm/irq_vectors.h
index 6ca9fd6234e1..aaf8d28b5d00 100644
--- a/arch/x86/include/asm/irq_vectors.h
+++ b/arch/x86/include/asm/irq_vectors.h
@@ -83,7 +83,6 @@
83 */ 83 */
84#define X86_PLATFORM_IPI_VECTOR 0xf7 84#define X86_PLATFORM_IPI_VECTOR 0xf7
85 85
86#define POSTED_INTR_WAKEUP_VECTOR 0xf1
87/* 86/*
88 * IRQ work vector: 87 * IRQ work vector:
89 */ 88 */
@@ -98,6 +97,8 @@
98/* Vector for KVM to deliver posted interrupt IPI */ 97/* Vector for KVM to deliver posted interrupt IPI */
99#ifdef CONFIG_HAVE_KVM 98#ifdef CONFIG_HAVE_KVM
100#define POSTED_INTR_VECTOR 0xf2 99#define POSTED_INTR_VECTOR 0xf2
100#define POSTED_INTR_WAKEUP_VECTOR 0xf1
101#define POSTED_INTR_NESTED_VECTOR 0xf0
101#endif 102#endif
102 103
103/* 104/*
diff --git a/arch/x86/kernel/cpu/aperfmperf.c b/arch/x86/kernel/cpu/aperfmperf.c
index d869c8671e36..7cf7c70b6ef2 100644
--- a/arch/x86/kernel/cpu/aperfmperf.c
+++ b/arch/x86/kernel/cpu/aperfmperf.c
@@ -8,20 +8,25 @@
8 * This file is licensed under GPLv2. 8 * This file is licensed under GPLv2.
9 */ 9 */
10 10
11#include <linux/jiffies.h> 11#include <linux/delay.h>
12#include <linux/ktime.h>
12#include <linux/math64.h> 13#include <linux/math64.h>
13#include <linux/percpu.h> 14#include <linux/percpu.h>
14#include <linux/smp.h> 15#include <linux/smp.h>
15 16
16struct aperfmperf_sample { 17struct aperfmperf_sample {
17 unsigned int khz; 18 unsigned int khz;
18 unsigned long jiffies; 19 ktime_t time;
19 u64 aperf; 20 u64 aperf;
20 u64 mperf; 21 u64 mperf;
21}; 22};
22 23
23static DEFINE_PER_CPU(struct aperfmperf_sample, samples); 24static DEFINE_PER_CPU(struct aperfmperf_sample, samples);
24 25
26#define APERFMPERF_CACHE_THRESHOLD_MS 10
27#define APERFMPERF_REFRESH_DELAY_MS 20
28#define APERFMPERF_STALE_THRESHOLD_MS 1000
29
25/* 30/*
26 * aperfmperf_snapshot_khz() 31 * aperfmperf_snapshot_khz()
27 * On the current CPU, snapshot APERF, MPERF, and jiffies 32 * On the current CPU, snapshot APERF, MPERF, and jiffies
@@ -33,9 +38,11 @@ static void aperfmperf_snapshot_khz(void *dummy)
33 u64 aperf, aperf_delta; 38 u64 aperf, aperf_delta;
34 u64 mperf, mperf_delta; 39 u64 mperf, mperf_delta;
35 struct aperfmperf_sample *s = this_cpu_ptr(&samples); 40 struct aperfmperf_sample *s = this_cpu_ptr(&samples);
41 ktime_t now = ktime_get();
42 s64 time_delta = ktime_ms_delta(now, s->time);
36 43
37 /* Don't bother re-computing within 10 ms */ 44 /* Don't bother re-computing within the cache threshold time. */
38 if (time_before(jiffies, s->jiffies + HZ/100)) 45 if (time_delta < APERFMPERF_CACHE_THRESHOLD_MS)
39 return; 46 return;
40 47
41 rdmsrl(MSR_IA32_APERF, aperf); 48 rdmsrl(MSR_IA32_APERF, aperf);
@@ -51,22 +58,21 @@ static void aperfmperf_snapshot_khz(void *dummy)
51 if (mperf_delta == 0) 58 if (mperf_delta == 0)
52 return; 59 return;
53 60
54 /* 61 s->time = now;
55 * if (cpu_khz * aperf_delta) fits into ULLONG_MAX, then
56 * khz = (cpu_khz * aperf_delta) / mperf_delta
57 */
58 if (div64_u64(ULLONG_MAX, cpu_khz) > aperf_delta)
59 s->khz = div64_u64((cpu_khz * aperf_delta), mperf_delta);
60 else /* khz = aperf_delta / (mperf_delta / cpu_khz) */
61 s->khz = div64_u64(aperf_delta,
62 div64_u64(mperf_delta, cpu_khz));
63 s->jiffies = jiffies;
64 s->aperf = aperf; 62 s->aperf = aperf;
65 s->mperf = mperf; 63 s->mperf = mperf;
64
65 /* If the previous iteration was too long ago, discard it. */
66 if (time_delta > APERFMPERF_STALE_THRESHOLD_MS)
67 s->khz = 0;
68 else
69 s->khz = div64_u64((cpu_khz * aperf_delta), mperf_delta);
66} 70}
67 71
68unsigned int arch_freq_get_on_cpu(int cpu) 72unsigned int arch_freq_get_on_cpu(int cpu)
69{ 73{
74 unsigned int khz;
75
70 if (!cpu_khz) 76 if (!cpu_khz)
71 return 0; 77 return 0;
72 78
@@ -74,6 +80,12 @@ unsigned int arch_freq_get_on_cpu(int cpu)
74 return 0; 80 return 0;
75 81
76 smp_call_function_single(cpu, aperfmperf_snapshot_khz, NULL, 1); 82 smp_call_function_single(cpu, aperfmperf_snapshot_khz, NULL, 1);
83 khz = per_cpu(samples.khz, cpu);
84 if (khz)
85 return khz;
86
87 msleep(APERFMPERF_REFRESH_DELAY_MS);
88 smp_call_function_single(cpu, aperfmperf_snapshot_khz, NULL, 1);
77 89
78 return per_cpu(samples.khz, cpu); 90 return per_cpu(samples.khz, cpu);
79} 91}
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c
index 16f82a3aaec7..8ce4212e2b8d 100644
--- a/arch/x86/kernel/hpet.c
+++ b/arch/x86/kernel/hpet.c
@@ -345,21 +345,10 @@ static int hpet_shutdown(struct clock_event_device *evt, int timer)
345 return 0; 345 return 0;
346} 346}
347 347
348static int hpet_resume(struct clock_event_device *evt, int timer) 348static int hpet_resume(struct clock_event_device *evt)
349{ 349{
350 if (!timer) { 350 hpet_enable_legacy_int();
351 hpet_enable_legacy_int();
352 } else {
353 struct hpet_dev *hdev = EVT_TO_HPET_DEV(evt);
354
355 irq_domain_deactivate_irq(irq_get_irq_data(hdev->irq));
356 irq_domain_activate_irq(irq_get_irq_data(hdev->irq));
357 disable_hardirq(hdev->irq);
358 irq_set_affinity(hdev->irq, cpumask_of(hdev->cpu));
359 enable_irq(hdev->irq);
360 }
361 hpet_print_config(); 351 hpet_print_config();
362
363 return 0; 352 return 0;
364} 353}
365 354
@@ -417,7 +406,7 @@ static int hpet_legacy_set_periodic(struct clock_event_device *evt)
417 406
418static int hpet_legacy_resume(struct clock_event_device *evt) 407static int hpet_legacy_resume(struct clock_event_device *evt)
419{ 408{
420 return hpet_resume(evt, 0); 409 return hpet_resume(evt);
421} 410}
422 411
423static int hpet_legacy_next_event(unsigned long delta, 412static int hpet_legacy_next_event(unsigned long delta,
@@ -510,8 +499,14 @@ static int hpet_msi_set_periodic(struct clock_event_device *evt)
510static int hpet_msi_resume(struct clock_event_device *evt) 499static int hpet_msi_resume(struct clock_event_device *evt)
511{ 500{
512 struct hpet_dev *hdev = EVT_TO_HPET_DEV(evt); 501 struct hpet_dev *hdev = EVT_TO_HPET_DEV(evt);
502 struct irq_data *data = irq_get_irq_data(hdev->irq);
503 struct msi_msg msg;
513 504
514 return hpet_resume(evt, hdev->num); 505 /* Restore the MSI msg and unmask the interrupt */
506 irq_chip_compose_msi_msg(data, &msg);
507 hpet_msi_write(hdev, &msg);
508 hpet_msi_unmask(data);
509 return 0;
515} 510}
516 511
517static int hpet_msi_next_event(unsigned long delta, 512static int hpet_msi_next_event(unsigned long delta,
diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c
index 4aa03c5a14c9..4ed0aba8dbc8 100644
--- a/arch/x86/kernel/irq.c
+++ b/arch/x86/kernel/irq.c
@@ -155,6 +155,12 @@ int arch_show_interrupts(struct seq_file *p, int prec)
155 seq_printf(p, "%10u ", irq_stats(j)->kvm_posted_intr_ipis); 155 seq_printf(p, "%10u ", irq_stats(j)->kvm_posted_intr_ipis);
156 seq_puts(p, " Posted-interrupt notification event\n"); 156 seq_puts(p, " Posted-interrupt notification event\n");
157 157
158 seq_printf(p, "%*s: ", prec, "NPI");
159 for_each_online_cpu(j)
160 seq_printf(p, "%10u ",
161 irq_stats(j)->kvm_posted_intr_nested_ipis);
162 seq_puts(p, " Nested posted-interrupt event\n");
163
158 seq_printf(p, "%*s: ", prec, "PIW"); 164 seq_printf(p, "%*s: ", prec, "PIW");
159 for_each_online_cpu(j) 165 for_each_online_cpu(j)
160 seq_printf(p, "%10u ", 166 seq_printf(p, "%10u ",
@@ -313,6 +319,19 @@ __visible void smp_kvm_posted_intr_wakeup_ipi(struct pt_regs *regs)
313 exiting_irq(); 319 exiting_irq();
314 set_irq_regs(old_regs); 320 set_irq_regs(old_regs);
315} 321}
322
323/*
324 * Handler for POSTED_INTERRUPT_NESTED_VECTOR.
325 */
326__visible void smp_kvm_posted_intr_nested_ipi(struct pt_regs *regs)
327{
328 struct pt_regs *old_regs = set_irq_regs(regs);
329
330 entering_ack_irq();
331 inc_irq_stat(kvm_posted_intr_nested_ipis);
332 exiting_irq();
333 set_irq_regs(old_regs);
334}
316#endif 335#endif
317 336
318__visible void __irq_entry smp_trace_x86_platform_ipi(struct pt_regs *regs) 337__visible void __irq_entry smp_trace_x86_platform_ipi(struct pt_regs *regs)
diff --git a/arch/x86/kernel/irqinit.c b/arch/x86/kernel/irqinit.c
index 7468c6987547..c7fd18526c3e 100644
--- a/arch/x86/kernel/irqinit.c
+++ b/arch/x86/kernel/irqinit.c
@@ -150,6 +150,8 @@ static void __init apic_intr_init(void)
150 alloc_intr_gate(POSTED_INTR_VECTOR, kvm_posted_intr_ipi); 150 alloc_intr_gate(POSTED_INTR_VECTOR, kvm_posted_intr_ipi);
151 /* IPI for KVM to deliver interrupt to wake up tasks */ 151 /* IPI for KVM to deliver interrupt to wake up tasks */
152 alloc_intr_gate(POSTED_INTR_WAKEUP_VECTOR, kvm_posted_intr_wakeup_ipi); 152 alloc_intr_gate(POSTED_INTR_WAKEUP_VECTOR, kvm_posted_intr_wakeup_ipi);
153 /* IPI for KVM to deliver nested posted interrupt */
154 alloc_intr_gate(POSTED_INTR_NESTED_VECTOR, kvm_posted_intr_nested_ipi);
153#endif 155#endif
154 156
155 /* IPI vectors for APIC spurious and error interrupts */ 157 /* IPI vectors for APIC spurious and error interrupts */
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index 71c17a5be983..d04e30e3c0ff 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -151,6 +151,8 @@ void kvm_async_pf_task_wait(u32 token)
151 if (hlist_unhashed(&n.link)) 151 if (hlist_unhashed(&n.link))
152 break; 152 break;
153 153
154 rcu_irq_exit();
155
154 if (!n.halted) { 156 if (!n.halted) {
155 local_irq_enable(); 157 local_irq_enable();
156 schedule(); 158 schedule();
@@ -159,11 +161,11 @@ void kvm_async_pf_task_wait(u32 token)
159 /* 161 /*
160 * We cannot reschedule. So halt. 162 * We cannot reschedule. So halt.
161 */ 163 */
162 rcu_irq_exit();
163 native_safe_halt(); 164 native_safe_halt();
164 local_irq_disable(); 165 local_irq_disable();
165 rcu_irq_enter();
166 } 166 }
167
168 rcu_irq_enter();
167 } 169 }
168 if (!n.halted) 170 if (!n.halted)
169 finish_swait(&n.wq, &wait); 171 finish_swait(&n.wq, &wait);
diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
index 67393fc88353..a56bf6051f4e 100644
--- a/arch/x86/kernel/reboot.c
+++ b/arch/x86/kernel/reboot.c
@@ -471,12 +471,12 @@ static int __init reboot_init(void)
471 471
472 /* 472 /*
473 * The DMI quirks table takes precedence. If no quirks entry 473 * The DMI quirks table takes precedence. If no quirks entry
474 * matches and the ACPI Hardware Reduced bit is set, force EFI 474 * matches and the ACPI Hardware Reduced bit is set and EFI
475 * reboot. 475 * runtime services are enabled, force EFI reboot.
476 */ 476 */
477 rv = dmi_check_system(reboot_dmi_table); 477 rv = dmi_check_system(reboot_dmi_table);
478 478
479 if (!rv && efi_reboot_required()) 479 if (!rv && efi_reboot_required() && !efi_runtime_disabled())
480 reboot_type = BOOT_EFI; 480 reboot_type = BOOT_EFI;
481 481
482 return 0; 482 return 0;
diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
index 2819d4c123eb..589dcc117086 100644
--- a/arch/x86/kvm/lapic.c
+++ b/arch/x86/kvm/lapic.c
@@ -1495,11 +1495,10 @@ EXPORT_SYMBOL_GPL(kvm_lapic_hv_timer_in_use);
1495 1495
1496static void cancel_hv_timer(struct kvm_lapic *apic) 1496static void cancel_hv_timer(struct kvm_lapic *apic)
1497{ 1497{
1498 WARN_ON(preemptible());
1498 WARN_ON(!apic->lapic_timer.hv_timer_in_use); 1499 WARN_ON(!apic->lapic_timer.hv_timer_in_use);
1499 preempt_disable();
1500 kvm_x86_ops->cancel_hv_timer(apic->vcpu); 1500 kvm_x86_ops->cancel_hv_timer(apic->vcpu);
1501 apic->lapic_timer.hv_timer_in_use = false; 1501 apic->lapic_timer.hv_timer_in_use = false;
1502 preempt_enable();
1503} 1502}
1504 1503
1505static bool start_hv_timer(struct kvm_lapic *apic) 1504static bool start_hv_timer(struct kvm_lapic *apic)
@@ -1507,6 +1506,7 @@ static bool start_hv_timer(struct kvm_lapic *apic)
1507 struct kvm_timer *ktimer = &apic->lapic_timer; 1506 struct kvm_timer *ktimer = &apic->lapic_timer;
1508 int r; 1507 int r;
1509 1508
1509 WARN_ON(preemptible());
1510 if (!kvm_x86_ops->set_hv_timer) 1510 if (!kvm_x86_ops->set_hv_timer)
1511 return false; 1511 return false;
1512 1512
@@ -1538,6 +1538,8 @@ static bool start_hv_timer(struct kvm_lapic *apic)
1538static void start_sw_timer(struct kvm_lapic *apic) 1538static void start_sw_timer(struct kvm_lapic *apic)
1539{ 1539{
1540 struct kvm_timer *ktimer = &apic->lapic_timer; 1540 struct kvm_timer *ktimer = &apic->lapic_timer;
1541
1542 WARN_ON(preemptible());
1541 if (apic->lapic_timer.hv_timer_in_use) 1543 if (apic->lapic_timer.hv_timer_in_use)
1542 cancel_hv_timer(apic); 1544 cancel_hv_timer(apic);
1543 if (!apic_lvtt_period(apic) && atomic_read(&ktimer->pending)) 1545 if (!apic_lvtt_period(apic) && atomic_read(&ktimer->pending))
@@ -1552,15 +1554,20 @@ static void start_sw_timer(struct kvm_lapic *apic)
1552 1554
1553static void restart_apic_timer(struct kvm_lapic *apic) 1555static void restart_apic_timer(struct kvm_lapic *apic)
1554{ 1556{
1557 preempt_disable();
1555 if (!start_hv_timer(apic)) 1558 if (!start_hv_timer(apic))
1556 start_sw_timer(apic); 1559 start_sw_timer(apic);
1560 preempt_enable();
1557} 1561}
1558 1562
1559void kvm_lapic_expired_hv_timer(struct kvm_vcpu *vcpu) 1563void kvm_lapic_expired_hv_timer(struct kvm_vcpu *vcpu)
1560{ 1564{
1561 struct kvm_lapic *apic = vcpu->arch.apic; 1565 struct kvm_lapic *apic = vcpu->arch.apic;
1562 1566
1563 WARN_ON(!apic->lapic_timer.hv_timer_in_use); 1567 preempt_disable();
1568 /* If the preempt notifier has already run, it also called apic_timer_expired */
1569 if (!apic->lapic_timer.hv_timer_in_use)
1570 goto out;
1564 WARN_ON(swait_active(&vcpu->wq)); 1571 WARN_ON(swait_active(&vcpu->wq));
1565 cancel_hv_timer(apic); 1572 cancel_hv_timer(apic);
1566 apic_timer_expired(apic); 1573 apic_timer_expired(apic);
@@ -1569,6 +1576,8 @@ void kvm_lapic_expired_hv_timer(struct kvm_vcpu *vcpu)
1569 advance_periodic_target_expiration(apic); 1576 advance_periodic_target_expiration(apic);
1570 restart_apic_timer(apic); 1577 restart_apic_timer(apic);
1571 } 1578 }
1579out:
1580 preempt_enable();
1572} 1581}
1573EXPORT_SYMBOL_GPL(kvm_lapic_expired_hv_timer); 1582EXPORT_SYMBOL_GPL(kvm_lapic_expired_hv_timer);
1574 1583
@@ -1582,9 +1591,11 @@ void kvm_lapic_switch_to_sw_timer(struct kvm_vcpu *vcpu)
1582{ 1591{
1583 struct kvm_lapic *apic = vcpu->arch.apic; 1592 struct kvm_lapic *apic = vcpu->arch.apic;
1584 1593
1594 preempt_disable();
1585 /* Possibly the TSC deadline timer is not enabled yet */ 1595 /* Possibly the TSC deadline timer is not enabled yet */
1586 if (apic->lapic_timer.hv_timer_in_use) 1596 if (apic->lapic_timer.hv_timer_in_use)
1587 start_sw_timer(apic); 1597 start_sw_timer(apic);
1598 preempt_enable();
1588} 1599}
1589EXPORT_SYMBOL_GPL(kvm_lapic_switch_to_sw_timer); 1600EXPORT_SYMBOL_GPL(kvm_lapic_switch_to_sw_timer);
1590 1601
diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
index 4d8141e533c3..1107626938cc 100644
--- a/arch/x86/kvm/svm.c
+++ b/arch/x86/kvm/svm.c
@@ -2430,6 +2430,16 @@ static int nested_svm_check_exception(struct vcpu_svm *svm, unsigned nr,
2430 svm->vmcb->control.exit_code = SVM_EXIT_EXCP_BASE + nr; 2430 svm->vmcb->control.exit_code = SVM_EXIT_EXCP_BASE + nr;
2431 svm->vmcb->control.exit_code_hi = 0; 2431 svm->vmcb->control.exit_code_hi = 0;
2432 svm->vmcb->control.exit_info_1 = error_code; 2432 svm->vmcb->control.exit_info_1 = error_code;
2433
2434 /*
2435 * FIXME: we should not write CR2 when L1 intercepts an L2 #PF exception.
2436 * The fix is to add the ancillary datum (CR2 or DR6) to structs
2437 * kvm_queued_exception and kvm_vcpu_events, so that CR2 and DR6 can be
2438 * written only when inject_pending_event runs (DR6 would written here
2439 * too). This should be conditional on a new capability---if the
2440 * capability is disabled, kvm_multiple_exception would write the
2441 * ancillary information to CR2 or DR6, for backwards ABI-compatibility.
2442 */
2433 if (svm->vcpu.arch.exception.nested_apf) 2443 if (svm->vcpu.arch.exception.nested_apf)
2434 svm->vmcb->control.exit_info_2 = svm->vcpu.arch.apf.nested_apf_token; 2444 svm->vmcb->control.exit_info_2 = svm->vcpu.arch.apf.nested_apf_token;
2435 else 2445 else
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
index 29fd8af5c347..9b21b1223035 100644
--- a/arch/x86/kvm/vmx.c
+++ b/arch/x86/kvm/vmx.c
@@ -416,13 +416,10 @@ struct nested_vmx {
416 416
417 /* The guest-physical address of the current VMCS L1 keeps for L2 */ 417 /* The guest-physical address of the current VMCS L1 keeps for L2 */
418 gpa_t current_vmptr; 418 gpa_t current_vmptr;
419 /* The host-usable pointer to the above */
420 struct page *current_vmcs12_page;
421 struct vmcs12 *current_vmcs12;
422 /* 419 /*
423 * Cache of the guest's VMCS, existing outside of guest memory. 420 * Cache of the guest's VMCS, existing outside of guest memory.
424 * Loaded from guest memory during VMPTRLD. Flushed to guest 421 * Loaded from guest memory during VMPTRLD. Flushed to guest
425 * memory during VMXOFF, VMCLEAR, VMPTRLD. 422 * memory during VMCLEAR and VMPTRLD.
426 */ 423 */
427 struct vmcs12 *cached_vmcs12; 424 struct vmcs12 *cached_vmcs12;
428 /* 425 /*
@@ -563,7 +560,6 @@ struct vcpu_vmx {
563 struct kvm_vcpu vcpu; 560 struct kvm_vcpu vcpu;
564 unsigned long host_rsp; 561 unsigned long host_rsp;
565 u8 fail; 562 u8 fail;
566 bool nmi_known_unmasked;
567 u32 exit_intr_info; 563 u32 exit_intr_info;
568 u32 idt_vectoring_info; 564 u32 idt_vectoring_info;
569 ulong rflags; 565 ulong rflags;
@@ -928,6 +924,10 @@ static u32 vmx_segment_access_rights(struct kvm_segment *var);
928static void copy_vmcs12_to_shadow(struct vcpu_vmx *vmx); 924static void copy_vmcs12_to_shadow(struct vcpu_vmx *vmx);
929static void copy_shadow_to_vmcs12(struct vcpu_vmx *vmx); 925static void copy_shadow_to_vmcs12(struct vcpu_vmx *vmx);
930static int alloc_identity_pagetable(struct kvm *kvm); 926static int alloc_identity_pagetable(struct kvm *kvm);
927static bool vmx_get_nmi_mask(struct kvm_vcpu *vcpu);
928static void vmx_set_nmi_mask(struct kvm_vcpu *vcpu, bool masked);
929static bool nested_vmx_is_page_fault_vmexit(struct vmcs12 *vmcs12,
930 u16 error_code);
931 931
932static DEFINE_PER_CPU(struct vmcs *, vmxarea); 932static DEFINE_PER_CPU(struct vmcs *, vmxarea);
933static DEFINE_PER_CPU(struct vmcs *, current_vmcs); 933static DEFINE_PER_CPU(struct vmcs *, current_vmcs);
@@ -2429,6 +2429,30 @@ static void skip_emulated_instruction(struct kvm_vcpu *vcpu)
2429 vmx_set_interrupt_shadow(vcpu, 0); 2429 vmx_set_interrupt_shadow(vcpu, 0);
2430} 2430}
2431 2431
2432static void nested_vmx_inject_exception_vmexit(struct kvm_vcpu *vcpu,
2433 unsigned long exit_qual)
2434{
2435 struct vmcs12 *vmcs12 = get_vmcs12(vcpu);
2436 unsigned int nr = vcpu->arch.exception.nr;
2437 u32 intr_info = nr | INTR_INFO_VALID_MASK;
2438
2439 if (vcpu->arch.exception.has_error_code) {
2440 vmcs12->vm_exit_intr_error_code = vcpu->arch.exception.error_code;
2441 intr_info |= INTR_INFO_DELIVER_CODE_MASK;
2442 }
2443
2444 if (kvm_exception_is_soft(nr))
2445 intr_info |= INTR_TYPE_SOFT_EXCEPTION;
2446 else
2447 intr_info |= INTR_TYPE_HARD_EXCEPTION;
2448
2449 if (!(vmcs12->idt_vectoring_info_field & VECTORING_INFO_VALID_MASK) &&
2450 vmx_get_nmi_mask(vcpu))
2451 intr_info |= INTR_INFO_UNBLOCK_NMI;
2452
2453 nested_vmx_vmexit(vcpu, EXIT_REASON_EXCEPTION_NMI, intr_info, exit_qual);
2454}
2455
2432/* 2456/*
2433 * KVM wants to inject page-faults which it got to the guest. This function 2457 * KVM wants to inject page-faults which it got to the guest. This function
2434 * checks whether in a nested guest, we need to inject them to L1 or L2. 2458 * checks whether in a nested guest, we need to inject them to L1 or L2.
@@ -2438,23 +2462,38 @@ static int nested_vmx_check_exception(struct kvm_vcpu *vcpu)
2438 struct vmcs12 *vmcs12 = get_vmcs12(vcpu); 2462 struct vmcs12 *vmcs12 = get_vmcs12(vcpu);
2439 unsigned int nr = vcpu->arch.exception.nr; 2463 unsigned int nr = vcpu->arch.exception.nr;
2440 2464
2441 if (!((vmcs12->exception_bitmap & (1u << nr)) || 2465 if (nr == PF_VECTOR) {
2442 (nr == PF_VECTOR && vcpu->arch.exception.nested_apf))) 2466 if (vcpu->arch.exception.nested_apf) {
2443 return 0; 2467 nested_vmx_inject_exception_vmexit(vcpu,
2468 vcpu->arch.apf.nested_apf_token);
2469 return 1;
2470 }
2471 /*
2472 * FIXME: we must not write CR2 when L1 intercepts an L2 #PF exception.
2473 * The fix is to add the ancillary datum (CR2 or DR6) to structs
2474 * kvm_queued_exception and kvm_vcpu_events, so that CR2 and DR6
2475 * can be written only when inject_pending_event runs. This should be
2476 * conditional on a new capability---if the capability is disabled,
2477 * kvm_multiple_exception would write the ancillary information to
2478 * CR2 or DR6, for backwards ABI-compatibility.
2479 */
2480 if (nested_vmx_is_page_fault_vmexit(vmcs12,
2481 vcpu->arch.exception.error_code)) {
2482 nested_vmx_inject_exception_vmexit(vcpu, vcpu->arch.cr2);
2483 return 1;
2484 }
2485 } else {
2486 unsigned long exit_qual = 0;
2487 if (nr == DB_VECTOR)
2488 exit_qual = vcpu->arch.dr6;
2444 2489
2445 if (vcpu->arch.exception.nested_apf) { 2490 if (vmcs12->exception_bitmap & (1u << nr)) {
2446 vmcs_write32(VM_EXIT_INTR_ERROR_CODE, vcpu->arch.exception.error_code); 2491 nested_vmx_inject_exception_vmexit(vcpu, exit_qual);
2447 nested_vmx_vmexit(vcpu, EXIT_REASON_EXCEPTION_NMI, 2492 return 1;
2448 PF_VECTOR | INTR_TYPE_HARD_EXCEPTION | 2493 }
2449 INTR_INFO_DELIVER_CODE_MASK | INTR_INFO_VALID_MASK,
2450 vcpu->arch.apf.nested_apf_token);
2451 return 1;
2452 } 2494 }
2453 2495
2454 nested_vmx_vmexit(vcpu, EXIT_REASON_EXCEPTION_NMI, 2496 return 0;
2455 vmcs_read32(VM_EXIT_INTR_INFO),
2456 vmcs_readl(EXIT_QUALIFICATION));
2457 return 1;
2458} 2497}
2459 2498
2460static void vmx_queue_exception(struct kvm_vcpu *vcpu) 2499static void vmx_queue_exception(struct kvm_vcpu *vcpu)
@@ -2668,7 +2707,7 @@ static void nested_vmx_setup_ctls_msrs(struct vcpu_vmx *vmx)
2668 * reason is that if one of these bits is necessary, it will appear 2707 * reason is that if one of these bits is necessary, it will appear
2669 * in vmcs01 and prepare_vmcs02, when it bitwise-or's the control 2708 * in vmcs01 and prepare_vmcs02, when it bitwise-or's the control
2670 * fields of vmcs01 and vmcs02, will turn these bits off - and 2709 * fields of vmcs01 and vmcs02, will turn these bits off - and
2671 * nested_vmx_exit_handled() will not pass related exits to L1. 2710 * nested_vmx_exit_reflected() will not pass related exits to L1.
2672 * These rules have exceptions below. 2711 * These rules have exceptions below.
2673 */ 2712 */
2674 2713
@@ -4956,6 +4995,28 @@ static bool vmx_get_enable_apicv(void)
4956 return enable_apicv; 4995 return enable_apicv;
4957} 4996}
4958 4997
4998static void nested_mark_vmcs12_pages_dirty(struct kvm_vcpu *vcpu)
4999{
5000 struct vmcs12 *vmcs12 = get_vmcs12(vcpu);
5001 gfn_t gfn;
5002
5003 /*
5004 * Don't need to mark the APIC access page dirty; it is never
5005 * written to by the CPU during APIC virtualization.
5006 */
5007
5008 if (nested_cpu_has(vmcs12, CPU_BASED_TPR_SHADOW)) {
5009 gfn = vmcs12->virtual_apic_page_addr >> PAGE_SHIFT;
5010 kvm_vcpu_mark_page_dirty(vcpu, gfn);
5011 }
5012
5013 if (nested_cpu_has_posted_intr(vmcs12)) {
5014 gfn = vmcs12->posted_intr_desc_addr >> PAGE_SHIFT;
5015 kvm_vcpu_mark_page_dirty(vcpu, gfn);
5016 }
5017}
5018
5019
4959static void vmx_complete_nested_posted_interrupt(struct kvm_vcpu *vcpu) 5020static void vmx_complete_nested_posted_interrupt(struct kvm_vcpu *vcpu)
4960{ 5021{
4961 struct vcpu_vmx *vmx = to_vmx(vcpu); 5022 struct vcpu_vmx *vmx = to_vmx(vcpu);
@@ -4963,18 +5024,15 @@ static void vmx_complete_nested_posted_interrupt(struct kvm_vcpu *vcpu)
4963 void *vapic_page; 5024 void *vapic_page;
4964 u16 status; 5025 u16 status;
4965 5026
4966 if (vmx->nested.pi_desc && 5027 if (!vmx->nested.pi_desc || !vmx->nested.pi_pending)
4967 vmx->nested.pi_pending) { 5028 return;
4968 vmx->nested.pi_pending = false;
4969 if (!pi_test_and_clear_on(vmx->nested.pi_desc))
4970 return;
4971
4972 max_irr = find_last_bit(
4973 (unsigned long *)vmx->nested.pi_desc->pir, 256);
4974 5029
4975 if (max_irr == 256) 5030 vmx->nested.pi_pending = false;
4976 return; 5031 if (!pi_test_and_clear_on(vmx->nested.pi_desc))
5032 return;
4977 5033
5034 max_irr = find_last_bit((unsigned long *)vmx->nested.pi_desc->pir, 256);
5035 if (max_irr != 256) {
4978 vapic_page = kmap(vmx->nested.virtual_apic_page); 5036 vapic_page = kmap(vmx->nested.virtual_apic_page);
4979 __kvm_apic_update_irr(vmx->nested.pi_desc->pir, vapic_page); 5037 __kvm_apic_update_irr(vmx->nested.pi_desc->pir, vapic_page);
4980 kunmap(vmx->nested.virtual_apic_page); 5038 kunmap(vmx->nested.virtual_apic_page);
@@ -4986,11 +5044,16 @@ static void vmx_complete_nested_posted_interrupt(struct kvm_vcpu *vcpu)
4986 vmcs_write16(GUEST_INTR_STATUS, status); 5044 vmcs_write16(GUEST_INTR_STATUS, status);
4987 } 5045 }
4988 } 5046 }
5047
5048 nested_mark_vmcs12_pages_dirty(vcpu);
4989} 5049}
4990 5050
4991static inline bool kvm_vcpu_trigger_posted_interrupt(struct kvm_vcpu *vcpu) 5051static inline bool kvm_vcpu_trigger_posted_interrupt(struct kvm_vcpu *vcpu,
5052 bool nested)
4992{ 5053{
4993#ifdef CONFIG_SMP 5054#ifdef CONFIG_SMP
5055 int pi_vec = nested ? POSTED_INTR_NESTED_VECTOR : POSTED_INTR_VECTOR;
5056
4994 if (vcpu->mode == IN_GUEST_MODE) { 5057 if (vcpu->mode == IN_GUEST_MODE) {
4995 struct vcpu_vmx *vmx = to_vmx(vcpu); 5058 struct vcpu_vmx *vmx = to_vmx(vcpu);
4996 5059
@@ -5008,8 +5071,7 @@ static inline bool kvm_vcpu_trigger_posted_interrupt(struct kvm_vcpu *vcpu)
5008 */ 5071 */
5009 WARN_ON_ONCE(pi_test_sn(&vmx->pi_desc)); 5072 WARN_ON_ONCE(pi_test_sn(&vmx->pi_desc));
5010 5073
5011 apic->send_IPI_mask(get_cpu_mask(vcpu->cpu), 5074 apic->send_IPI_mask(get_cpu_mask(vcpu->cpu), pi_vec);
5012 POSTED_INTR_VECTOR);
5013 return true; 5075 return true;
5014 } 5076 }
5015#endif 5077#endif
@@ -5024,7 +5086,7 @@ static int vmx_deliver_nested_posted_interrupt(struct kvm_vcpu *vcpu,
5024 if (is_guest_mode(vcpu) && 5086 if (is_guest_mode(vcpu) &&
5025 vector == vmx->nested.posted_intr_nv) { 5087 vector == vmx->nested.posted_intr_nv) {
5026 /* the PIR and ON have been set by L1. */ 5088 /* the PIR and ON have been set by L1. */
5027 kvm_vcpu_trigger_posted_interrupt(vcpu); 5089 kvm_vcpu_trigger_posted_interrupt(vcpu, true);
5028 /* 5090 /*
5029 * If a posted intr is not recognized by hardware, 5091 * If a posted intr is not recognized by hardware,
5030 * we will accomplish it in the next vmentry. 5092 * we will accomplish it in the next vmentry.
@@ -5058,7 +5120,7 @@ static void vmx_deliver_posted_interrupt(struct kvm_vcpu *vcpu, int vector)
5058 if (pi_test_and_set_on(&vmx->pi_desc)) 5120 if (pi_test_and_set_on(&vmx->pi_desc))
5059 return; 5121 return;
5060 5122
5061 if (!kvm_vcpu_trigger_posted_interrupt(vcpu)) 5123 if (!kvm_vcpu_trigger_posted_interrupt(vcpu, false))
5062 kvm_vcpu_kick(vcpu); 5124 kvm_vcpu_kick(vcpu);
5063} 5125}
5064 5126
@@ -7133,34 +7195,32 @@ static int nested_vmx_check_permission(struct kvm_vcpu *vcpu)
7133 return 1; 7195 return 1;
7134} 7196}
7135 7197
7198static void vmx_disable_shadow_vmcs(struct vcpu_vmx *vmx)
7199{
7200 vmcs_clear_bits(SECONDARY_VM_EXEC_CONTROL, SECONDARY_EXEC_SHADOW_VMCS);
7201 vmcs_write64(VMCS_LINK_POINTER, -1ull);
7202}
7203
7136static inline void nested_release_vmcs12(struct vcpu_vmx *vmx) 7204static inline void nested_release_vmcs12(struct vcpu_vmx *vmx)
7137{ 7205{
7138 if (vmx->nested.current_vmptr == -1ull) 7206 if (vmx->nested.current_vmptr == -1ull)
7139 return; 7207 return;
7140 7208
7141 /* current_vmptr and current_vmcs12 are always set/reset together */
7142 if (WARN_ON(vmx->nested.current_vmcs12 == NULL))
7143 return;
7144
7145 if (enable_shadow_vmcs) { 7209 if (enable_shadow_vmcs) {
7146 /* copy to memory all shadowed fields in case 7210 /* copy to memory all shadowed fields in case
7147 they were modified */ 7211 they were modified */
7148 copy_shadow_to_vmcs12(vmx); 7212 copy_shadow_to_vmcs12(vmx);
7149 vmx->nested.sync_shadow_vmcs = false; 7213 vmx->nested.sync_shadow_vmcs = false;
7150 vmcs_clear_bits(SECONDARY_VM_EXEC_CONTROL, 7214 vmx_disable_shadow_vmcs(vmx);
7151 SECONDARY_EXEC_SHADOW_VMCS);
7152 vmcs_write64(VMCS_LINK_POINTER, -1ull);
7153 } 7215 }
7154 vmx->nested.posted_intr_nv = -1; 7216 vmx->nested.posted_intr_nv = -1;
7155 7217
7156 /* Flush VMCS12 to guest memory */ 7218 /* Flush VMCS12 to guest memory */
7157 memcpy(vmx->nested.current_vmcs12, vmx->nested.cached_vmcs12, 7219 kvm_vcpu_write_guest_page(&vmx->vcpu,
7158 VMCS12_SIZE); 7220 vmx->nested.current_vmptr >> PAGE_SHIFT,
7221 vmx->nested.cached_vmcs12, 0, VMCS12_SIZE);
7159 7222
7160 kunmap(vmx->nested.current_vmcs12_page);
7161 nested_release_page(vmx->nested.current_vmcs12_page);
7162 vmx->nested.current_vmptr = -1ull; 7223 vmx->nested.current_vmptr = -1ull;
7163 vmx->nested.current_vmcs12 = NULL;
7164} 7224}
7165 7225
7166/* 7226/*
@@ -7174,12 +7234,14 @@ static void free_nested(struct vcpu_vmx *vmx)
7174 7234
7175 vmx->nested.vmxon = false; 7235 vmx->nested.vmxon = false;
7176 free_vpid(vmx->nested.vpid02); 7236 free_vpid(vmx->nested.vpid02);
7177 nested_release_vmcs12(vmx); 7237 vmx->nested.posted_intr_nv = -1;
7238 vmx->nested.current_vmptr = -1ull;
7178 if (vmx->nested.msr_bitmap) { 7239 if (vmx->nested.msr_bitmap) {
7179 free_page((unsigned long)vmx->nested.msr_bitmap); 7240 free_page((unsigned long)vmx->nested.msr_bitmap);
7180 vmx->nested.msr_bitmap = NULL; 7241 vmx->nested.msr_bitmap = NULL;
7181 } 7242 }
7182 if (enable_shadow_vmcs) { 7243 if (enable_shadow_vmcs) {
7244 vmx_disable_shadow_vmcs(vmx);
7183 vmcs_clear(vmx->vmcs01.shadow_vmcs); 7245 vmcs_clear(vmx->vmcs01.shadow_vmcs);
7184 free_vmcs(vmx->vmcs01.shadow_vmcs); 7246 free_vmcs(vmx->vmcs01.shadow_vmcs);
7185 vmx->vmcs01.shadow_vmcs = NULL; 7247 vmx->vmcs01.shadow_vmcs = NULL;
@@ -7578,14 +7640,14 @@ static int handle_vmptrld(struct kvm_vcpu *vcpu)
7578 } 7640 }
7579 7641
7580 nested_release_vmcs12(vmx); 7642 nested_release_vmcs12(vmx);
7581 vmx->nested.current_vmcs12 = new_vmcs12;
7582 vmx->nested.current_vmcs12_page = page;
7583 /* 7643 /*
7584 * Load VMCS12 from guest memory since it is not already 7644 * Load VMCS12 from guest memory since it is not already
7585 * cached. 7645 * cached.
7586 */ 7646 */
7587 memcpy(vmx->nested.cached_vmcs12, 7647 memcpy(vmx->nested.cached_vmcs12, new_vmcs12, VMCS12_SIZE);
7588 vmx->nested.current_vmcs12, VMCS12_SIZE); 7648 kunmap(page);
7649 nested_release_page_clean(page);
7650
7589 set_current_vmptr(vmx, vmptr); 7651 set_current_vmptr(vmx, vmptr);
7590 } 7652 }
7591 7653
@@ -8018,12 +8080,11 @@ static bool nested_vmx_exit_handled_cr(struct kvm_vcpu *vcpu,
8018 * should handle it ourselves in L0 (and then continue L2). Only call this 8080 * should handle it ourselves in L0 (and then continue L2). Only call this
8019 * when in is_guest_mode (L2). 8081 * when in is_guest_mode (L2).
8020 */ 8082 */
8021static bool nested_vmx_exit_handled(struct kvm_vcpu *vcpu) 8083static bool nested_vmx_exit_reflected(struct kvm_vcpu *vcpu, u32 exit_reason)
8022{ 8084{
8023 u32 intr_info = vmcs_read32(VM_EXIT_INTR_INFO); 8085 u32 intr_info = vmcs_read32(VM_EXIT_INTR_INFO);
8024 struct vcpu_vmx *vmx = to_vmx(vcpu); 8086 struct vcpu_vmx *vmx = to_vmx(vcpu);
8025 struct vmcs12 *vmcs12 = get_vmcs12(vcpu); 8087 struct vmcs12 *vmcs12 = get_vmcs12(vcpu);
8026 u32 exit_reason = vmx->exit_reason;
8027 8088
8028 trace_kvm_nested_vmexit(kvm_rip_read(vcpu), exit_reason, 8089 trace_kvm_nested_vmexit(kvm_rip_read(vcpu), exit_reason,
8029 vmcs_readl(EXIT_QUALIFICATION), 8090 vmcs_readl(EXIT_QUALIFICATION),
@@ -8032,6 +8093,18 @@ static bool nested_vmx_exit_handled(struct kvm_vcpu *vcpu)
8032 vmcs_read32(VM_EXIT_INTR_ERROR_CODE), 8093 vmcs_read32(VM_EXIT_INTR_ERROR_CODE),
8033 KVM_ISA_VMX); 8094 KVM_ISA_VMX);
8034 8095
8096 /*
8097 * The host physical addresses of some pages of guest memory
8098 * are loaded into VMCS02 (e.g. L1's Virtual APIC Page). The CPU
8099 * may write to these pages via their host physical address while
8100 * L2 is running, bypassing any address-translation-based dirty
8101 * tracking (e.g. EPT write protection).
8102 *
8103 * Mark them dirty on every exit from L2 to prevent them from
8104 * getting out of sync with dirty tracking.
8105 */
8106 nested_mark_vmcs12_pages_dirty(vcpu);
8107
8035 if (vmx->nested.nested_run_pending) 8108 if (vmx->nested.nested_run_pending)
8036 return false; 8109 return false;
8037 8110
@@ -8168,6 +8241,29 @@ static bool nested_vmx_exit_handled(struct kvm_vcpu *vcpu)
8168 } 8241 }
8169} 8242}
8170 8243
8244static int nested_vmx_reflect_vmexit(struct kvm_vcpu *vcpu, u32 exit_reason)
8245{
8246 u32 exit_intr_info = vmcs_read32(VM_EXIT_INTR_INFO);
8247
8248 /*
8249 * At this point, the exit interruption info in exit_intr_info
8250 * is only valid for EXCEPTION_NMI exits. For EXTERNAL_INTERRUPT
8251 * we need to query the in-kernel LAPIC.
8252 */
8253 WARN_ON(exit_reason == EXIT_REASON_EXTERNAL_INTERRUPT);
8254 if ((exit_intr_info &
8255 (INTR_INFO_VALID_MASK | INTR_INFO_DELIVER_CODE_MASK)) ==
8256 (INTR_INFO_VALID_MASK | INTR_INFO_DELIVER_CODE_MASK)) {
8257 struct vmcs12 *vmcs12 = get_vmcs12(vcpu);
8258 vmcs12->vm_exit_intr_error_code =
8259 vmcs_read32(VM_EXIT_INTR_ERROR_CODE);
8260 }
8261
8262 nested_vmx_vmexit(vcpu, exit_reason, exit_intr_info,
8263 vmcs_readl(EXIT_QUALIFICATION));
8264 return 1;
8265}
8266
8171static void vmx_get_exit_info(struct kvm_vcpu *vcpu, u64 *info1, u64 *info2) 8267static void vmx_get_exit_info(struct kvm_vcpu *vcpu, u64 *info1, u64 *info2)
8172{ 8268{
8173 *info1 = vmcs_readl(EXIT_QUALIFICATION); 8269 *info1 = vmcs_readl(EXIT_QUALIFICATION);
@@ -8414,12 +8510,8 @@ static int vmx_handle_exit(struct kvm_vcpu *vcpu)
8414 if (vmx->emulation_required) 8510 if (vmx->emulation_required)
8415 return handle_invalid_guest_state(vcpu); 8511 return handle_invalid_guest_state(vcpu);
8416 8512
8417 if (is_guest_mode(vcpu) && nested_vmx_exit_handled(vcpu)) { 8513 if (is_guest_mode(vcpu) && nested_vmx_exit_reflected(vcpu, exit_reason))
8418 nested_vmx_vmexit(vcpu, exit_reason, 8514 return nested_vmx_reflect_vmexit(vcpu, exit_reason);
8419 vmcs_read32(VM_EXIT_INTR_INFO),
8420 vmcs_readl(EXIT_QUALIFICATION));
8421 return 1;
8422 }
8423 8515
8424 if (exit_reason & VMX_EXIT_REASONS_FAILED_VMENTRY) { 8516 if (exit_reason & VMX_EXIT_REASONS_FAILED_VMENTRY) {
8425 dump_vmcs(); 8517 dump_vmcs();
@@ -9222,7 +9314,6 @@ static struct kvm_vcpu *vmx_create_vcpu(struct kvm *kvm, unsigned int id)
9222 9314
9223 vmx->nested.posted_intr_nv = -1; 9315 vmx->nested.posted_intr_nv = -1;
9224 vmx->nested.current_vmptr = -1ull; 9316 vmx->nested.current_vmptr = -1ull;
9225 vmx->nested.current_vmcs12 = NULL;
9226 9317
9227 vmx->msr_ia32_feature_control_valid_bits = FEATURE_CONTROL_LOCKED; 9318 vmx->msr_ia32_feature_control_valid_bits = FEATURE_CONTROL_LOCKED;
9228 9319
@@ -9508,12 +9599,15 @@ static void vmx_inject_page_fault_nested(struct kvm_vcpu *vcpu,
9508 9599
9509 WARN_ON(!is_guest_mode(vcpu)); 9600 WARN_ON(!is_guest_mode(vcpu));
9510 9601
9511 if (nested_vmx_is_page_fault_vmexit(vmcs12, fault->error_code)) 9602 if (nested_vmx_is_page_fault_vmexit(vmcs12, fault->error_code)) {
9512 nested_vmx_vmexit(vcpu, to_vmx(vcpu)->exit_reason, 9603 vmcs12->vm_exit_intr_error_code = fault->error_code;
9513 vmcs_read32(VM_EXIT_INTR_INFO), 9604 nested_vmx_vmexit(vcpu, EXIT_REASON_EXCEPTION_NMI,
9514 vmcs_readl(EXIT_QUALIFICATION)); 9605 PF_VECTOR | INTR_TYPE_HARD_EXCEPTION |
9515 else 9606 INTR_INFO_DELIVER_CODE_MASK | INTR_INFO_VALID_MASK,
9607 fault->address);
9608 } else {
9516 kvm_inject_page_fault(vcpu, fault); 9609 kvm_inject_page_fault(vcpu, fault);
9610 }
9517} 9611}
9518 9612
9519static inline bool nested_vmx_merge_msr_bitmap(struct kvm_vcpu *vcpu, 9613static inline bool nested_vmx_merge_msr_bitmap(struct kvm_vcpu *vcpu,
@@ -10041,6 +10135,8 @@ static int prepare_vmcs02(struct kvm_vcpu *vcpu, struct vmcs12 *vmcs12,
10041 vmcs12->vm_entry_instruction_len); 10135 vmcs12->vm_entry_instruction_len);
10042 vmcs_write32(GUEST_INTERRUPTIBILITY_INFO, 10136 vmcs_write32(GUEST_INTERRUPTIBILITY_INFO,
10043 vmcs12->guest_interruptibility_info); 10137 vmcs12->guest_interruptibility_info);
10138 vmx->loaded_vmcs->nmi_known_unmasked =
10139 !(vmcs12->guest_interruptibility_info & GUEST_INTR_STATE_NMI);
10044 } else { 10140 } else {
10045 vmcs_write32(VM_ENTRY_INTR_INFO_FIELD, 0); 10141 vmcs_write32(VM_ENTRY_INTR_INFO_FIELD, 0);
10046 } 10142 }
@@ -10065,13 +10161,9 @@ static int prepare_vmcs02(struct kvm_vcpu *vcpu, struct vmcs12 *vmcs12,
10065 10161
10066 /* Posted interrupts setting is only taken from vmcs12. */ 10162 /* Posted interrupts setting is only taken from vmcs12. */
10067 if (nested_cpu_has_posted_intr(vmcs12)) { 10163 if (nested_cpu_has_posted_intr(vmcs12)) {
10068 /*
10069 * Note that we use L0's vector here and in
10070 * vmx_deliver_nested_posted_interrupt.
10071 */
10072 vmx->nested.posted_intr_nv = vmcs12->posted_intr_nv; 10164 vmx->nested.posted_intr_nv = vmcs12->posted_intr_nv;
10073 vmx->nested.pi_pending = false; 10165 vmx->nested.pi_pending = false;
10074 vmcs_write16(POSTED_INTR_NV, POSTED_INTR_VECTOR); 10166 vmcs_write16(POSTED_INTR_NV, POSTED_INTR_NESTED_VECTOR);
10075 } else { 10167 } else {
10076 exec_control &= ~PIN_BASED_POSTED_INTR; 10168 exec_control &= ~PIN_BASED_POSTED_INTR;
10077 } 10169 }
@@ -10095,12 +10187,6 @@ static int prepare_vmcs02(struct kvm_vcpu *vcpu, struct vmcs12 *vmcs12,
10095 * "or"ing of the EB of vmcs01 and vmcs12, because when enable_ept, 10187 * "or"ing of the EB of vmcs01 and vmcs12, because when enable_ept,
10096 * vmcs01's EB.PF is 0 so the "or" will take vmcs12's value, and when 10188 * vmcs01's EB.PF is 0 so the "or" will take vmcs12's value, and when
10097 * !enable_ept, EB.PF is 1, so the "or" will always be 1. 10189 * !enable_ept, EB.PF is 1, so the "or" will always be 1.
10098 *
10099 * A problem with this approach (when !enable_ept) is that L1 may be
10100 * injected with more page faults than it asked for. This could have
10101 * caused problems, but in practice existing hypervisors don't care.
10102 * To fix this, we will need to emulate the PFEC checking (on the L1
10103 * page tables), using walk_addr(), when injecting PFs to L1.
10104 */ 10190 */
10105 vmcs_write32(PAGE_FAULT_ERROR_CODE_MASK, 10191 vmcs_write32(PAGE_FAULT_ERROR_CODE_MASK,
10106 enable_ept ? vmcs12->page_fault_error_code_mask : 0); 10192 enable_ept ? vmcs12->page_fault_error_code_mask : 0);
@@ -10848,13 +10934,8 @@ static void prepare_vmcs12(struct kvm_vcpu *vcpu, struct vmcs12 *vmcs12,
10848 10934
10849 vmcs12->vm_exit_reason = exit_reason; 10935 vmcs12->vm_exit_reason = exit_reason;
10850 vmcs12->exit_qualification = exit_qualification; 10936 vmcs12->exit_qualification = exit_qualification;
10851
10852 vmcs12->vm_exit_intr_info = exit_intr_info; 10937 vmcs12->vm_exit_intr_info = exit_intr_info;
10853 if ((vmcs12->vm_exit_intr_info & 10938
10854 (INTR_INFO_VALID_MASK | INTR_INFO_DELIVER_CODE_MASK)) ==
10855 (INTR_INFO_VALID_MASK | INTR_INFO_DELIVER_CODE_MASK))
10856 vmcs12->vm_exit_intr_error_code =
10857 vmcs_read32(VM_EXIT_INTR_ERROR_CODE);
10858 vmcs12->idt_vectoring_info_field = 0; 10939 vmcs12->idt_vectoring_info_field = 0;
10859 vmcs12->vm_exit_instruction_len = vmcs_read32(VM_EXIT_INSTRUCTION_LEN); 10940 vmcs12->vm_exit_instruction_len = vmcs_read32(VM_EXIT_INSTRUCTION_LEN);
10860 vmcs12->vmx_instruction_info = vmcs_read32(VMX_INSTRUCTION_INFO); 10941 vmcs12->vmx_instruction_info = vmcs_read32(VMX_INSTRUCTION_INFO);
@@ -10942,7 +11023,9 @@ static void load_vmcs12_host_state(struct kvm_vcpu *vcpu,
10942 */ 11023 */
10943 vmx_flush_tlb(vcpu); 11024 vmx_flush_tlb(vcpu);
10944 } 11025 }
10945 11026 /* Restore posted intr vector. */
11027 if (nested_cpu_has_posted_intr(vmcs12))
11028 vmcs_write16(POSTED_INTR_NV, POSTED_INTR_VECTOR);
10946 11029
10947 vmcs_write32(GUEST_SYSENTER_CS, vmcs12->host_ia32_sysenter_cs); 11030 vmcs_write32(GUEST_SYSENTER_CS, vmcs12->host_ia32_sysenter_cs);
10948 vmcs_writel(GUEST_SYSENTER_ESP, vmcs12->host_ia32_sysenter_esp); 11031 vmcs_writel(GUEST_SYSENTER_ESP, vmcs12->host_ia32_sysenter_esp);
@@ -11048,8 +11131,15 @@ static void nested_vmx_vmexit(struct kvm_vcpu *vcpu, u32 exit_reason,
11048 11131
11049 vmx_switch_vmcs(vcpu, &vmx->vmcs01); 11132 vmx_switch_vmcs(vcpu, &vmx->vmcs01);
11050 11133
11051 if ((exit_reason == EXIT_REASON_EXTERNAL_INTERRUPT) 11134 /*
11052 && nested_exit_intr_ack_set(vcpu)) { 11135 * TODO: SDM says that with acknowledge interrupt on exit, bit 31 of
11136 * the VM-exit interrupt information (valid interrupt) is always set to
11137 * 1 on EXIT_REASON_EXTERNAL_INTERRUPT, so we shouldn't need
11138 * kvm_cpu_has_interrupt(). See the commit message for details.
11139 */
11140 if (nested_exit_intr_ack_set(vcpu) &&
11141 exit_reason == EXIT_REASON_EXTERNAL_INTERRUPT &&
11142 kvm_cpu_has_interrupt(vcpu)) {
11053 int irq = kvm_cpu_get_interrupt(vcpu); 11143 int irq = kvm_cpu_get_interrupt(vcpu);
11054 WARN_ON(irq < 0); 11144 WARN_ON(irq < 0);
11055 vmcs12->vm_exit_intr_info = irq | 11145 vmcs12->vm_exit_intr_info = irq |
diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
index 82a63c59f77b..d734aa8c5b4f 100644
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -597,8 +597,8 @@ bool pdptrs_changed(struct kvm_vcpu *vcpu)
597 (unsigned long *)&vcpu->arch.regs_avail)) 597 (unsigned long *)&vcpu->arch.regs_avail))
598 return true; 598 return true;
599 599
600 gfn = (kvm_read_cr3(vcpu) & ~31ul) >> PAGE_SHIFT; 600 gfn = (kvm_read_cr3(vcpu) & 0xffffffe0ul) >> PAGE_SHIFT;
601 offset = (kvm_read_cr3(vcpu) & ~31ul) & (PAGE_SIZE - 1); 601 offset = (kvm_read_cr3(vcpu) & 0xffffffe0ul) & (PAGE_SIZE - 1);
602 r = kvm_read_nested_guest_page(vcpu, gfn, pdpte, offset, sizeof(pdpte), 602 r = kvm_read_nested_guest_page(vcpu, gfn, pdpte, offset, sizeof(pdpte),
603 PFERR_USER_MASK | PFERR_WRITE_MASK); 603 PFERR_USER_MASK | PFERR_WRITE_MASK);
604 if (r < 0) 604 if (r < 0)
@@ -3159,15 +3159,18 @@ static int kvm_vcpu_ioctl_x86_set_vcpu_events(struct kvm_vcpu *vcpu,
3159 kvm_set_hflags(vcpu, hflags); 3159 kvm_set_hflags(vcpu, hflags);
3160 3160
3161 vcpu->arch.smi_pending = events->smi.pending; 3161 vcpu->arch.smi_pending = events->smi.pending;
3162 if (events->smi.smm_inside_nmi) 3162
3163 vcpu->arch.hflags |= HF_SMM_INSIDE_NMI_MASK; 3163 if (events->smi.smm) {
3164 else 3164 if (events->smi.smm_inside_nmi)
3165 vcpu->arch.hflags &= ~HF_SMM_INSIDE_NMI_MASK; 3165 vcpu->arch.hflags |= HF_SMM_INSIDE_NMI_MASK;
3166 if (lapic_in_kernel(vcpu)) {
3167 if (events->smi.latched_init)
3168 set_bit(KVM_APIC_INIT, &vcpu->arch.apic->pending_events);
3169 else 3166 else
3170 clear_bit(KVM_APIC_INIT, &vcpu->arch.apic->pending_events); 3167 vcpu->arch.hflags &= ~HF_SMM_INSIDE_NMI_MASK;
3168 if (lapic_in_kernel(vcpu)) {
3169 if (events->smi.latched_init)
3170 set_bit(KVM_APIC_INIT, &vcpu->arch.apic->pending_events);
3171 else
3172 clear_bit(KVM_APIC_INIT, &vcpu->arch.apic->pending_events);
3173 }
3171 } 3174 }
3172 } 3175 }
3173 3176
@@ -6215,6 +6218,7 @@ static void kvm_pv_kick_cpu_op(struct kvm *kvm, unsigned long flags, int apicid)
6215 6218
6216 lapic_irq.shorthand = 0; 6219 lapic_irq.shorthand = 0;
6217 lapic_irq.dest_mode = 0; 6220 lapic_irq.dest_mode = 0;
6221 lapic_irq.level = 0;
6218 lapic_irq.dest_id = apicid; 6222 lapic_irq.dest_id = apicid;
6219 lapic_irq.msi_redir_hint = false; 6223 lapic_irq.msi_redir_hint = false;
6220 6224
diff --git a/arch/xtensa/include/asm/Kbuild b/arch/xtensa/include/asm/Kbuild
index 2d716ebc5a5e..dff7cc39437c 100644
--- a/arch/xtensa/include/asm/Kbuild
+++ b/arch/xtensa/include/asm/Kbuild
@@ -1,5 +1,6 @@
1generic-y += bug.h 1generic-y += bug.h
2generic-y += clkdev.h 2generic-y += clkdev.h
3generic-y += device.h
3generic-y += div64.h 4generic-y += div64.h
4generic-y += dma-contiguous.h 5generic-y += dma-contiguous.h
5generic-y += emergency-restart.h 6generic-y += emergency-restart.h
@@ -17,6 +18,7 @@ generic-y += local.h
17generic-y += local64.h 18generic-y += local64.h
18generic-y += mcs_spinlock.h 19generic-y += mcs_spinlock.h
19generic-y += mm-arch-hooks.h 20generic-y += mm-arch-hooks.h
21generic-y += param.h
20generic-y += percpu.h 22generic-y += percpu.h
21generic-y += preempt.h 23generic-y += preempt.h
22generic-y += rwsem.h 24generic-y += rwsem.h
diff --git a/arch/xtensa/include/asm/device.h b/arch/xtensa/include/asm/device.h
deleted file mode 100644
index 1deeb8ebbb1b..000000000000
--- a/arch/xtensa/include/asm/device.h
+++ /dev/null
@@ -1,15 +0,0 @@
1/*
2 * Arch specific extensions to struct device
3 *
4 * This file is released under the GPLv2
5 */
6#ifndef _ASM_XTENSA_DEVICE_H
7#define _ASM_XTENSA_DEVICE_H
8
9struct dev_archdata {
10};
11
12struct pdev_archdata {
13};
14
15#endif /* _ASM_XTENSA_DEVICE_H */
diff --git a/arch/xtensa/include/asm/param.h b/arch/xtensa/include/asm/param.h
deleted file mode 100644
index 0a70e780ef2a..000000000000
--- a/arch/xtensa/include/asm/param.h
+++ /dev/null
@@ -1,18 +0,0 @@
1/*
2 * include/asm-xtensa/param.h
3 *
4 * This file is subject to the terms and conditions of the GNU General Public
5 * License. See the file "COPYING" in the main directory of this archive
6 * for more details.
7 *
8 * Copyright (C) 2001 - 2005 Tensilica Inc.
9 */
10#ifndef _XTENSA_PARAM_H
11#define _XTENSA_PARAM_H
12
13#include <uapi/asm/param.h>
14
15# define HZ CONFIG_HZ /* internal timer frequency */
16# define USER_HZ 100 /* for user interfaces in "ticks" */
17# define CLOCKS_PER_SEC (USER_HZ) /* frequnzy at which times() counts */
18#endif /* _XTENSA_PARAM_H */
diff --git a/arch/xtensa/kernel/xtensa_ksyms.c b/arch/xtensa/kernel/xtensa_ksyms.c
index d159e9b9c018..672391003e40 100644
--- a/arch/xtensa/kernel/xtensa_ksyms.c
+++ b/arch/xtensa/kernel/xtensa_ksyms.c
@@ -94,13 +94,11 @@ unsigned long __sync_fetch_and_or_4(unsigned long *p, unsigned long v)
94} 94}
95EXPORT_SYMBOL(__sync_fetch_and_or_4); 95EXPORT_SYMBOL(__sync_fetch_and_or_4);
96 96
97#ifdef CONFIG_NET
98/* 97/*
99 * Networking support 98 * Networking support
100 */ 99 */
101EXPORT_SYMBOL(csum_partial); 100EXPORT_SYMBOL(csum_partial);
102EXPORT_SYMBOL(csum_partial_copy_generic); 101EXPORT_SYMBOL(csum_partial_copy_generic);
103#endif /* CONFIG_NET */
104 102
105/* 103/*
106 * Architecture-specific symbols 104 * Architecture-specific symbols
diff --git a/arch/xtensa/mm/cache.c b/arch/xtensa/mm/cache.c
index 1a804a2f9a5b..3c75c4e597da 100644
--- a/arch/xtensa/mm/cache.c
+++ b/arch/xtensa/mm/cache.c
@@ -103,6 +103,7 @@ void clear_user_highpage(struct page *page, unsigned long vaddr)
103 clear_page_alias(kvaddr, paddr); 103 clear_page_alias(kvaddr, paddr);
104 preempt_enable(); 104 preempt_enable();
105} 105}
106EXPORT_SYMBOL(clear_user_highpage);
106 107
107void copy_user_highpage(struct page *dst, struct page *src, 108void copy_user_highpage(struct page *dst, struct page *src,
108 unsigned long vaddr, struct vm_area_struct *vma) 109 unsigned long vaddr, struct vm_area_struct *vma)
@@ -119,10 +120,7 @@ void copy_user_highpage(struct page *dst, struct page *src,
119 copy_page_alias(dst_vaddr, src_vaddr, dst_paddr, src_paddr); 120 copy_page_alias(dst_vaddr, src_vaddr, dst_paddr, src_paddr);
120 preempt_enable(); 121 preempt_enable();
121} 122}
122 123EXPORT_SYMBOL(copy_user_highpage);
123#endif /* DCACHE_WAY_SIZE > PAGE_SIZE */
124
125#if (DCACHE_WAY_SIZE > PAGE_SIZE) && XCHAL_DCACHE_IS_WRITEBACK
126 124
127/* 125/*
128 * Any time the kernel writes to a user page cache page, or it is about to 126 * Any time the kernel writes to a user page cache page, or it is about to
@@ -176,7 +174,7 @@ void flush_dcache_page(struct page *page)
176 174
177 /* There shouldn't be an entry in the cache for this page anymore. */ 175 /* There shouldn't be an entry in the cache for this page anymore. */
178} 176}
179 177EXPORT_SYMBOL(flush_dcache_page);
180 178
181/* 179/*
182 * For now, flush the whole cache. FIXME?? 180 * For now, flush the whole cache. FIXME??
@@ -188,6 +186,7 @@ void local_flush_cache_range(struct vm_area_struct *vma,
188 __flush_invalidate_dcache_all(); 186 __flush_invalidate_dcache_all();
189 __invalidate_icache_all(); 187 __invalidate_icache_all();
190} 188}
189EXPORT_SYMBOL(local_flush_cache_range);
191 190
192/* 191/*
193 * Remove any entry in the cache for this page. 192 * Remove any entry in the cache for this page.
@@ -207,8 +206,9 @@ void local_flush_cache_page(struct vm_area_struct *vma, unsigned long address,
207 __flush_invalidate_dcache_page_alias(virt, phys); 206 __flush_invalidate_dcache_page_alias(virt, phys);
208 __invalidate_icache_page_alias(virt, phys); 207 __invalidate_icache_page_alias(virt, phys);
209} 208}
209EXPORT_SYMBOL(local_flush_cache_page);
210 210
211#endif 211#endif /* DCACHE_WAY_SIZE > PAGE_SIZE */
212 212
213void 213void
214update_mmu_cache(struct vm_area_struct * vma, unsigned long addr, pte_t *ptep) 214update_mmu_cache(struct vm_area_struct * vma, unsigned long addr, pte_t *ptep)
@@ -225,7 +225,7 @@ update_mmu_cache(struct vm_area_struct * vma, unsigned long addr, pte_t *ptep)
225 225
226 flush_tlb_page(vma, addr); 226 flush_tlb_page(vma, addr);
227 227
228#if (DCACHE_WAY_SIZE > PAGE_SIZE) && XCHAL_DCACHE_IS_WRITEBACK 228#if (DCACHE_WAY_SIZE > PAGE_SIZE)
229 229
230 if (!PageReserved(page) && test_bit(PG_arch_1, &page->flags)) { 230 if (!PageReserved(page) && test_bit(PG_arch_1, &page->flags)) {
231 unsigned long phys = page_to_phys(page); 231 unsigned long phys = page_to_phys(page);
@@ -256,7 +256,7 @@ update_mmu_cache(struct vm_area_struct * vma, unsigned long addr, pte_t *ptep)
256 * flush_dcache_page() on the page. 256 * flush_dcache_page() on the page.
257 */ 257 */
258 258
259#if (DCACHE_WAY_SIZE > PAGE_SIZE) && XCHAL_DCACHE_IS_WRITEBACK 259#if (DCACHE_WAY_SIZE > PAGE_SIZE)
260 260
261void copy_to_user_page(struct vm_area_struct *vma, struct page *page, 261void copy_to_user_page(struct vm_area_struct *vma, struct page *page,
262 unsigned long vaddr, void *dst, const void *src, 262 unsigned long vaddr, void *dst, const void *src,
diff --git a/block/bfq-iosched.h b/block/bfq-iosched.h
index 63e771ab56d8..859f0a8c97c8 100644
--- a/block/bfq-iosched.h
+++ b/block/bfq-iosched.h
@@ -71,17 +71,29 @@ struct bfq_service_tree {
71 * 71 *
72 * bfq_sched_data is the basic scheduler queue. It supports three 72 * bfq_sched_data is the basic scheduler queue. It supports three
73 * ioprio_classes, and can be used either as a toplevel queue or as an 73 * ioprio_classes, and can be used either as a toplevel queue or as an
74 * intermediate queue on a hierarchical setup. @next_in_service 74 * intermediate queue in a hierarchical setup.
75 * points to the active entity of the sched_data service trees that
76 * will be scheduled next. It is used to reduce the number of steps
77 * needed for each hierarchical-schedule update.
78 * 75 *
79 * The supported ioprio_classes are the same as in CFQ, in descending 76 * The supported ioprio_classes are the same as in CFQ, in descending
80 * priority order, IOPRIO_CLASS_RT, IOPRIO_CLASS_BE, IOPRIO_CLASS_IDLE. 77 * priority order, IOPRIO_CLASS_RT, IOPRIO_CLASS_BE, IOPRIO_CLASS_IDLE.
81 * Requests from higher priority queues are served before all the 78 * Requests from higher priority queues are served before all the
82 * requests from lower priority queues; among requests of the same 79 * requests from lower priority queues; among requests of the same
83 * queue requests are served according to B-WF2Q+. 80 * queue requests are served according to B-WF2Q+.
84 * All the fields are protected by the queue lock of the containing bfqd. 81 *
82 * The schedule is implemented by the service trees, plus the field
83 * @next_in_service, which points to the entity on the active trees
84 * that will be served next, if 1) no changes in the schedule occurs
85 * before the current in-service entity is expired, 2) the in-service
86 * queue becomes idle when it expires, and 3) if the entity pointed by
87 * in_service_entity is not a queue, then the in-service child entity
88 * of the entity pointed by in_service_entity becomes idle on
89 * expiration. This peculiar definition allows for the following
90 * optimization, not yet exploited: while a given entity is still in
91 * service, we already know which is the best candidate for next
92 * service among the other active entitities in the same parent
93 * entity. We can then quickly compare the timestamps of the
94 * in-service entity with those of such best candidate.
95 *
96 * All fields are protected by the lock of the containing bfqd.
85 */ 97 */
86struct bfq_sched_data { 98struct bfq_sched_data {
87 /* entity in service */ 99 /* entity in service */
diff --git a/block/bfq-wf2q.c b/block/bfq-wf2q.c
index 979f8f21b7e2..911aa7431dbe 100644
--- a/block/bfq-wf2q.c
+++ b/block/bfq-wf2q.c
@@ -188,21 +188,23 @@ static bool bfq_update_parent_budget(struct bfq_entity *next_in_service)
188 188
189/* 189/*
190 * This function tells whether entity stops being a candidate for next 190 * This function tells whether entity stops being a candidate for next
191 * service, according to the following logic. 191 * service, according to the restrictive definition of the field
192 * next_in_service. In particular, this function is invoked for an
193 * entity that is about to be set in service.
192 * 194 *
193 * This function is invoked for an entity that is about to be set in 195 * If entity is a queue, then the entity is no longer a candidate for
194 * service. If such an entity is a queue, then the entity is no longer 196 * next service according to the that definition, because entity is
195 * a candidate for next service (i.e, a candidate entity to serve 197 * about to become the in-service queue. This function then returns
196 * after the in-service entity is expired). The function then returns 198 * true if entity is a queue.
197 * true.
198 * 199 *
199 * In contrast, the entity could stil be a candidate for next service 200 * In contrast, entity could still be a candidate for next service if
200 * if it is not a queue, and has more than one child. In fact, even if 201 * it is not a queue, and has more than one active child. In fact,
201 * one of its children is about to be set in service, other children 202 * even if one of its children is about to be set in service, other
202 * may still be the next to serve. As a consequence, a non-queue 203 * active children may still be the next to serve, for the parent
203 * entity is not a candidate for next-service only if it has only one 204 * entity, even according to the above definition. As a consequence, a
204 * child. And only if this condition holds, then the function returns 205 * non-queue entity is not a candidate for next-service only if it has
205 * true for a non-queue entity. 206 * only one active child. And only if this condition holds, then this
207 * function returns true for a non-queue entity.
206 */ 208 */
207static bool bfq_no_longer_next_in_service(struct bfq_entity *entity) 209static bool bfq_no_longer_next_in_service(struct bfq_entity *entity)
208{ 210{
@@ -213,6 +215,18 @@ static bool bfq_no_longer_next_in_service(struct bfq_entity *entity)
213 215
214 bfqg = container_of(entity, struct bfq_group, entity); 216 bfqg = container_of(entity, struct bfq_group, entity);
215 217
218 /*
219 * The field active_entities does not always contain the
220 * actual number of active children entities: it happens to
221 * not account for the in-service entity in case the latter is
222 * removed from its active tree (which may get done after
223 * invoking the function bfq_no_longer_next_in_service in
224 * bfq_get_next_queue). Fortunately, here, i.e., while
225 * bfq_no_longer_next_in_service is not yet completed in
226 * bfq_get_next_queue, bfq_active_extract has not yet been
227 * invoked, and thus active_entities still coincides with the
228 * actual number of active entities.
229 */
216 if (bfqg->active_entities == 1) 230 if (bfqg->active_entities == 1)
217 return true; 231 return true;
218 232
@@ -954,7 +968,7 @@ static void bfq_update_fin_time_enqueue(struct bfq_entity *entity,
954 * one of its children receives a new request. 968 * one of its children receives a new request.
955 * 969 *
956 * Basically, this function updates the timestamps of entity and 970 * Basically, this function updates the timestamps of entity and
957 * inserts entity into its active tree, ater possible extracting it 971 * inserts entity into its active tree, ater possibly extracting it
958 * from its idle tree. 972 * from its idle tree.
959 */ 973 */
960static void __bfq_activate_entity(struct bfq_entity *entity, 974static void __bfq_activate_entity(struct bfq_entity *entity,
@@ -1048,7 +1062,7 @@ static void __bfq_requeue_entity(struct bfq_entity *entity)
1048 entity->start = entity->finish; 1062 entity->start = entity->finish;
1049 /* 1063 /*
1050 * In addition, if the entity had more than one child 1064 * In addition, if the entity had more than one child
1051 * when set in service, then was not extracted from 1065 * when set in service, then it was not extracted from
1052 * the active tree. This implies that the position of 1066 * the active tree. This implies that the position of
1053 * the entity in the active tree may need to be 1067 * the entity in the active tree may need to be
1054 * changed now, because we have just updated the start 1068 * changed now, because we have just updated the start
@@ -1056,9 +1070,8 @@ static void __bfq_requeue_entity(struct bfq_entity *entity)
1056 * time in a moment (the requeueing is then, more 1070 * time in a moment (the requeueing is then, more
1057 * precisely, a repositioning in this case). To 1071 * precisely, a repositioning in this case). To
1058 * implement this repositioning, we: 1) dequeue the 1072 * implement this repositioning, we: 1) dequeue the
1059 * entity here, 2) update the finish time and 1073 * entity here, 2) update the finish time and requeue
1060 * requeue the entity according to the new 1074 * the entity according to the new timestamps below.
1061 * timestamps below.
1062 */ 1075 */
1063 if (entity->tree) 1076 if (entity->tree)
1064 bfq_active_extract(st, entity); 1077 bfq_active_extract(st, entity);
@@ -1105,9 +1118,10 @@ static void __bfq_activate_requeue_entity(struct bfq_entity *entity,
1105 1118
1106 1119
1107/** 1120/**
1108 * bfq_activate_entity - activate or requeue an entity representing a bfq_queue, 1121 * bfq_activate_requeue_entity - activate or requeue an entity representing a
1109 * and activate, requeue or reposition all ancestors 1122 * bfq_queue, and activate, requeue or reposition
1110 * for which such an update becomes necessary. 1123 * all ancestors for which such an update becomes
1124 * necessary.
1111 * @entity: the entity to activate. 1125 * @entity: the entity to activate.
1112 * @non_blocking_wait_rq: true if this entity was waiting for a request 1126 * @non_blocking_wait_rq: true if this entity was waiting for a request
1113 * @requeue: true if this is a requeue, which implies that bfqq is 1127 * @requeue: true if this is a requeue, which implies that bfqq is
@@ -1135,9 +1149,9 @@ static void bfq_activate_requeue_entity(struct bfq_entity *entity,
1135 * @ins_into_idle_tree: if false, the entity will not be put into the 1149 * @ins_into_idle_tree: if false, the entity will not be put into the
1136 * idle tree. 1150 * idle tree.
1137 * 1151 *
1138 * Deactivates an entity, independently from its previous state. Must 1152 * Deactivates an entity, independently of its previous state. Must
1139 * be invoked only if entity is on a service tree. Extracts the entity 1153 * be invoked only if entity is on a service tree. Extracts the entity
1140 * from that tree, and if necessary and allowed, puts it on the idle 1154 * from that tree, and if necessary and allowed, puts it into the idle
1141 * tree. 1155 * tree.
1142 */ 1156 */
1143bool __bfq_deactivate_entity(struct bfq_entity *entity, bool ins_into_idle_tree) 1157bool __bfq_deactivate_entity(struct bfq_entity *entity, bool ins_into_idle_tree)
@@ -1158,8 +1172,10 @@ bool __bfq_deactivate_entity(struct bfq_entity *entity, bool ins_into_idle_tree)
1158 st = bfq_entity_service_tree(entity); 1172 st = bfq_entity_service_tree(entity);
1159 is_in_service = entity == sd->in_service_entity; 1173 is_in_service = entity == sd->in_service_entity;
1160 1174
1161 if (is_in_service) 1175 if (is_in_service) {
1162 bfq_calc_finish(entity, entity->service); 1176 bfq_calc_finish(entity, entity->service);
1177 sd->in_service_entity = NULL;
1178 }
1163 1179
1164 if (entity->tree == &st->active) 1180 if (entity->tree == &st->active)
1165 bfq_active_extract(st, entity); 1181 bfq_active_extract(st, entity);
@@ -1177,7 +1193,7 @@ bool __bfq_deactivate_entity(struct bfq_entity *entity, bool ins_into_idle_tree)
1177/** 1193/**
1178 * bfq_deactivate_entity - deactivate an entity representing a bfq_queue. 1194 * bfq_deactivate_entity - deactivate an entity representing a bfq_queue.
1179 * @entity: the entity to deactivate. 1195 * @entity: the entity to deactivate.
1180 * @ins_into_idle_tree: true if the entity can be put on the idle tree 1196 * @ins_into_idle_tree: true if the entity can be put into the idle tree
1181 */ 1197 */
1182static void bfq_deactivate_entity(struct bfq_entity *entity, 1198static void bfq_deactivate_entity(struct bfq_entity *entity,
1183 bool ins_into_idle_tree, 1199 bool ins_into_idle_tree,
@@ -1208,16 +1224,29 @@ static void bfq_deactivate_entity(struct bfq_entity *entity,
1208 */ 1224 */
1209 bfq_update_next_in_service(sd, NULL); 1225 bfq_update_next_in_service(sd, NULL);
1210 1226
1211 if (sd->next_in_service) 1227 if (sd->next_in_service || sd->in_service_entity) {
1212 /* 1228 /*
1213 * The parent entity is still backlogged, 1229 * The parent entity is still active, because
1214 * because next_in_service is not NULL. So, no 1230 * either next_in_service or in_service_entity
1215 * further upwards deactivation must be 1231 * is not NULL. So, no further upwards
1216 * performed. Yet, next_in_service has 1232 * deactivation must be performed. Yet,
1217 * changed. Then the schedule does need to be 1233 * next_in_service has changed. Then the
1218 * updated upwards. 1234 * schedule does need to be updated upwards.
1235 *
1236 * NOTE If in_service_entity is not NULL, then
1237 * next_in_service may happen to be NULL,
1238 * although the parent entity is evidently
1239 * active. This happens if 1) the entity
1240 * pointed by in_service_entity is the only
1241 * active entity in the parent entity, and 2)
1242 * according to the definition of
1243 * next_in_service, the in_service_entity
1244 * cannot be considered as
1245 * next_in_service. See the comments on the
1246 * definition of next_in_service for details.
1219 */ 1247 */
1220 break; 1248 break;
1249 }
1221 1250
1222 /* 1251 /*
1223 * If we get here, then the parent is no more 1252 * If we get here, then the parent is no more
@@ -1494,47 +1523,34 @@ struct bfq_queue *bfq_get_next_queue(struct bfq_data *bfqd)
1494 1523
1495 /* 1524 /*
1496 * If entity is no longer a candidate for next 1525 * If entity is no longer a candidate for next
1497 * service, then we extract it from its active tree, 1526 * service, then it must be extracted from its active
1498 * for the following reason. To further boost the 1527 * tree, so as to make sure that it won't be
1499 * throughput in some special case, BFQ needs to know 1528 * considered when computing next_in_service. See the
1500 * which is the next candidate entity to serve, while 1529 * comments on the function
1501 * there is already an entity in service. In this 1530 * bfq_no_longer_next_in_service() for details.
1502 * respect, to make it easy to compute/update the next
1503 * candidate entity to serve after the current
1504 * candidate has been set in service, there is a case
1505 * where it is necessary to extract the current
1506 * candidate from its service tree. Such a case is
1507 * when the entity just set in service cannot be also
1508 * a candidate for next service. Details about when
1509 * this conditions holds are reported in the comments
1510 * on the function bfq_no_longer_next_in_service()
1511 * invoked below.
1512 */ 1531 */
1513 if (bfq_no_longer_next_in_service(entity)) 1532 if (bfq_no_longer_next_in_service(entity))
1514 bfq_active_extract(bfq_entity_service_tree(entity), 1533 bfq_active_extract(bfq_entity_service_tree(entity),
1515 entity); 1534 entity);
1516 1535
1517 /* 1536 /*
1518 * For the same reason why we may have just extracted 1537 * Even if entity is not to be extracted according to
1519 * entity from its active tree, we may need to update 1538 * the above check, a descendant entity may get
1520 * next_in_service for the sched_data of entity too, 1539 * extracted in one of the next iterations of this
1521 * regardless of whether entity has been extracted. 1540 * loop. Such an event could cause a change in
1522 * In fact, even if entity has not been extracted, a 1541 * next_in_service for the level of the descendant
1523 * descendant entity may get extracted. Such an event 1542 * entity, and thus possibly back to this level.
1524 * would cause a change in next_in_service for the
1525 * level of the descendant entity, and thus possibly
1526 * back to upper levels.
1527 * 1543 *
1528 * We cannot perform the resulting needed update 1544 * However, we cannot perform the resulting needed
1529 * before the end of this loop, because, to know which 1545 * update of next_in_service for this level before the
1530 * is the correct next-to-serve candidate entity for 1546 * end of the whole loop, because, to know which is
1531 * each level, we need first to find the leaf entity 1547 * the correct next-to-serve candidate entity for each
1532 * to set in service. In fact, only after we know 1548 * level, we need first to find the leaf entity to set
1533 * which is the next-to-serve leaf entity, we can 1549 * in service. In fact, only after we know which is
1534 * discover whether the parent entity of the leaf 1550 * the next-to-serve leaf entity, we can discover
1535 * entity becomes the next-to-serve, and so on. 1551 * whether the parent entity of the leaf entity
1552 * becomes the next-to-serve, and so on.
1536 */ 1553 */
1537
1538 } 1554 }
1539 1555
1540 bfqq = bfq_entity_to_bfqq(entity); 1556 bfqq = bfq_entity_to_bfqq(entity);
diff --git a/block/blk-core.c b/block/blk-core.c
index 970b9c9638c5..dbecbf4a64e0 100644
--- a/block/blk-core.c
+++ b/block/blk-core.c
@@ -3421,6 +3421,10 @@ EXPORT_SYMBOL(blk_finish_plug);
3421 */ 3421 */
3422void blk_pm_runtime_init(struct request_queue *q, struct device *dev) 3422void blk_pm_runtime_init(struct request_queue *q, struct device *dev)
3423{ 3423{
3424 /* not support for RQF_PM and ->rpm_status in blk-mq yet */
3425 if (q->mq_ops)
3426 return;
3427
3424 q->dev = dev; 3428 q->dev = dev;
3425 q->rpm_status = RPM_ACTIVE; 3429 q->rpm_status = RPM_ACTIVE;
3426 pm_runtime_set_autosuspend_delay(q->dev, -1); 3430 pm_runtime_set_autosuspend_delay(q->dev, -1);
diff --git a/block/blk-mq-cpumap.c b/block/blk-mq-cpumap.c
index 4891f042a22f..9f8cffc8a701 100644
--- a/block/blk-mq-cpumap.c
+++ b/block/blk-mq-cpumap.c
@@ -17,9 +17,9 @@
17static int cpu_to_queue_index(unsigned int nr_queues, const int cpu) 17static int cpu_to_queue_index(unsigned int nr_queues, const int cpu)
18{ 18{
19 /* 19 /*
20 * Non online CPU will be mapped to queue index 0. 20 * Non present CPU will be mapped to queue index 0.
21 */ 21 */
22 if (!cpu_online(cpu)) 22 if (!cpu_present(cpu))
23 return 0; 23 return 0;
24 return cpu % nr_queues; 24 return cpu % nr_queues;
25} 25}
diff --git a/block/blk-mq.c b/block/blk-mq.c
index 041f7b7fa0d6..211ef367345f 100644
--- a/block/blk-mq.c
+++ b/block/blk-mq.c
@@ -301,11 +301,12 @@ static struct request *blk_mq_get_request(struct request_queue *q,
301 struct elevator_queue *e = q->elevator; 301 struct elevator_queue *e = q->elevator;
302 struct request *rq; 302 struct request *rq;
303 unsigned int tag; 303 unsigned int tag;
304 struct blk_mq_ctx *local_ctx = NULL;
304 305
305 blk_queue_enter_live(q); 306 blk_queue_enter_live(q);
306 data->q = q; 307 data->q = q;
307 if (likely(!data->ctx)) 308 if (likely(!data->ctx))
308 data->ctx = blk_mq_get_ctx(q); 309 data->ctx = local_ctx = blk_mq_get_ctx(q);
309 if (likely(!data->hctx)) 310 if (likely(!data->hctx))
310 data->hctx = blk_mq_map_queue(q, data->ctx->cpu); 311 data->hctx = blk_mq_map_queue(q, data->ctx->cpu);
311 if (op & REQ_NOWAIT) 312 if (op & REQ_NOWAIT)
@@ -324,6 +325,10 @@ static struct request *blk_mq_get_request(struct request_queue *q,
324 325
325 tag = blk_mq_get_tag(data); 326 tag = blk_mq_get_tag(data);
326 if (tag == BLK_MQ_TAG_FAIL) { 327 if (tag == BLK_MQ_TAG_FAIL) {
328 if (local_ctx) {
329 blk_mq_put_ctx(local_ctx);
330 data->ctx = NULL;
331 }
327 blk_queue_exit(q); 332 blk_queue_exit(q);
328 return NULL; 333 return NULL;
329 } 334 }
@@ -356,12 +361,12 @@ struct request *blk_mq_alloc_request(struct request_queue *q, unsigned int op,
356 361
357 rq = blk_mq_get_request(q, NULL, op, &alloc_data); 362 rq = blk_mq_get_request(q, NULL, op, &alloc_data);
358 363
359 blk_mq_put_ctx(alloc_data.ctx);
360 blk_queue_exit(q);
361
362 if (!rq) 364 if (!rq)
363 return ERR_PTR(-EWOULDBLOCK); 365 return ERR_PTR(-EWOULDBLOCK);
364 366
367 blk_mq_put_ctx(alloc_data.ctx);
368 blk_queue_exit(q);
369
365 rq->__data_len = 0; 370 rq->__data_len = 0;
366 rq->__sector = (sector_t) -1; 371 rq->__sector = (sector_t) -1;
367 rq->bio = rq->biotail = NULL; 372 rq->bio = rq->biotail = NULL;
@@ -407,11 +412,11 @@ struct request *blk_mq_alloc_request_hctx(struct request_queue *q,
407 412
408 rq = blk_mq_get_request(q, NULL, op, &alloc_data); 413 rq = blk_mq_get_request(q, NULL, op, &alloc_data);
409 414
410 blk_queue_exit(q);
411
412 if (!rq) 415 if (!rq)
413 return ERR_PTR(-EWOULDBLOCK); 416 return ERR_PTR(-EWOULDBLOCK);
414 417
418 blk_queue_exit(q);
419
415 return rq; 420 return rq;
416} 421}
417EXPORT_SYMBOL_GPL(blk_mq_alloc_request_hctx); 422EXPORT_SYMBOL_GPL(blk_mq_alloc_request_hctx);
diff --git a/crypto/authencesn.c b/crypto/authencesn.c
index 6f8f6b86bfe2..0cf5fefdb859 100644
--- a/crypto/authencesn.c
+++ b/crypto/authencesn.c
@@ -248,6 +248,9 @@ static int crypto_authenc_esn_decrypt_tail(struct aead_request *req,
248 u8 *ihash = ohash + crypto_ahash_digestsize(auth); 248 u8 *ihash = ohash + crypto_ahash_digestsize(auth);
249 u32 tmp[2]; 249 u32 tmp[2];
250 250
251 if (!authsize)
252 goto decrypt;
253
251 /* Move high-order bits of sequence number back. */ 254 /* Move high-order bits of sequence number back. */
252 scatterwalk_map_and_copy(tmp, dst, 4, 4, 0); 255 scatterwalk_map_and_copy(tmp, dst, 4, 4, 0);
253 scatterwalk_map_and_copy(tmp + 1, dst, assoclen + cryptlen, 4, 0); 256 scatterwalk_map_and_copy(tmp + 1, dst, assoclen + cryptlen, 4, 0);
@@ -256,6 +259,8 @@ static int crypto_authenc_esn_decrypt_tail(struct aead_request *req,
256 if (crypto_memneq(ihash, ohash, authsize)) 259 if (crypto_memneq(ihash, ohash, authsize))
257 return -EBADMSG; 260 return -EBADMSG;
258 261
262decrypt:
263
259 sg_init_table(areq_ctx->dst, 2); 264 sg_init_table(areq_ctx->dst, 2);
260 dst = scatterwalk_ffwd(areq_ctx->dst, dst, assoclen); 265 dst = scatterwalk_ffwd(areq_ctx->dst, dst, assoclen);
261 266
diff --git a/drivers/acpi/acpi_apd.c b/drivers/acpi/acpi_apd.c
index fc6c416f8724..d5999eb41c00 100644
--- a/drivers/acpi/acpi_apd.c
+++ b/drivers/acpi/acpi_apd.c
@@ -180,8 +180,8 @@ static const struct acpi_device_id acpi_apd_device_ids[] = {
180 { "APMC0D0F", APD_ADDR(xgene_i2c_desc) }, 180 { "APMC0D0F", APD_ADDR(xgene_i2c_desc) },
181 { "BRCM900D", APD_ADDR(vulcan_spi_desc) }, 181 { "BRCM900D", APD_ADDR(vulcan_spi_desc) },
182 { "CAV900D", APD_ADDR(vulcan_spi_desc) }, 182 { "CAV900D", APD_ADDR(vulcan_spi_desc) },
183 { "HISI0A21", APD_ADDR(hip07_i2c_desc) }, 183 { "HISI02A1", APD_ADDR(hip07_i2c_desc) },
184 { "HISI0A22", APD_ADDR(hip08_i2c_desc) }, 184 { "HISI02A2", APD_ADDR(hip08_i2c_desc) },
185#endif 185#endif
186 { } 186 { }
187}; 187};
diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c
index e51a1e98e62f..f88caf5aab76 100644
--- a/drivers/acpi/acpi_lpss.c
+++ b/drivers/acpi/acpi_lpss.c
@@ -85,6 +85,7 @@ static const struct lpss_device_desc lpss_dma_desc = {
85}; 85};
86 86
87struct lpss_private_data { 87struct lpss_private_data {
88 struct acpi_device *adev;
88 void __iomem *mmio_base; 89 void __iomem *mmio_base;
89 resource_size_t mmio_size; 90 resource_size_t mmio_size;
90 unsigned int fixed_clk_rate; 91 unsigned int fixed_clk_rate;
@@ -155,6 +156,12 @@ static struct pwm_lookup byt_pwm_lookup[] = {
155 156
156static void byt_pwm_setup(struct lpss_private_data *pdata) 157static void byt_pwm_setup(struct lpss_private_data *pdata)
157{ 158{
159 struct acpi_device *adev = pdata->adev;
160
161 /* Only call pwm_add_table for the first PWM controller */
162 if (!adev->pnp.unique_id || strcmp(adev->pnp.unique_id, "1"))
163 return;
164
158 if (!acpi_dev_present("INT33FD", NULL, -1)) 165 if (!acpi_dev_present("INT33FD", NULL, -1))
159 pwm_add_table(byt_pwm_lookup, ARRAY_SIZE(byt_pwm_lookup)); 166 pwm_add_table(byt_pwm_lookup, ARRAY_SIZE(byt_pwm_lookup));
160} 167}
@@ -180,6 +187,12 @@ static struct pwm_lookup bsw_pwm_lookup[] = {
180 187
181static void bsw_pwm_setup(struct lpss_private_data *pdata) 188static void bsw_pwm_setup(struct lpss_private_data *pdata)
182{ 189{
190 struct acpi_device *adev = pdata->adev;
191
192 /* Only call pwm_add_table for the first PWM controller */
193 if (!adev->pnp.unique_id || strcmp(adev->pnp.unique_id, "1"))
194 return;
195
183 pwm_add_table(bsw_pwm_lookup, ARRAY_SIZE(bsw_pwm_lookup)); 196 pwm_add_table(bsw_pwm_lookup, ARRAY_SIZE(bsw_pwm_lookup));
184} 197}
185 198
@@ -456,6 +469,7 @@ static int acpi_lpss_create_device(struct acpi_device *adev,
456 goto err_out; 469 goto err_out;
457 } 470 }
458 471
472 pdata->adev = adev;
459 pdata->dev_desc = dev_desc; 473 pdata->dev_desc = dev_desc;
460 474
461 if (dev_desc->setup) 475 if (dev_desc->setup)
diff --git a/drivers/acpi/acpi_watchdog.c b/drivers/acpi/acpi_watchdog.c
index 8c4e0a18460a..bf22c29d2517 100644
--- a/drivers/acpi/acpi_watchdog.c
+++ b/drivers/acpi/acpi_watchdog.c
@@ -86,7 +86,12 @@ void __init acpi_watchdog_init(void)
86 86
87 found = false; 87 found = false;
88 resource_list_for_each_entry(rentry, &resource_list) { 88 resource_list_for_each_entry(rentry, &resource_list) {
89 if (resource_contains(rentry->res, &res)) { 89 if (rentry->res->flags == res.flags &&
90 resource_overlaps(rentry->res, &res)) {
91 if (res.start < rentry->res->start)
92 rentry->res->start = res.start;
93 if (res.end > rentry->res->end)
94 rentry->res->end = res.end;
90 found = true; 95 found = true;
91 break; 96 break;
92 } 97 }
diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
index ddb01e9fa5b2..62068a5e814f 100644
--- a/drivers/acpi/ec.c
+++ b/drivers/acpi/ec.c
@@ -151,6 +151,10 @@ static bool ec_freeze_events __read_mostly = false;
151module_param(ec_freeze_events, bool, 0644); 151module_param(ec_freeze_events, bool, 0644);
152MODULE_PARM_DESC(ec_freeze_events, "Disabling event handling during suspend/resume"); 152MODULE_PARM_DESC(ec_freeze_events, "Disabling event handling during suspend/resume");
153 153
154static bool ec_no_wakeup __read_mostly;
155module_param(ec_no_wakeup, bool, 0644);
156MODULE_PARM_DESC(ec_no_wakeup, "Do not wake up from suspend-to-idle");
157
154struct acpi_ec_query_handler { 158struct acpi_ec_query_handler {
155 struct list_head node; 159 struct list_head node;
156 acpi_ec_query_func func; 160 acpi_ec_query_func func;
@@ -535,6 +539,14 @@ static void acpi_ec_disable_event(struct acpi_ec *ec)
535 spin_unlock_irqrestore(&ec->lock, flags); 539 spin_unlock_irqrestore(&ec->lock, flags);
536 __acpi_ec_flush_event(ec); 540 __acpi_ec_flush_event(ec);
537} 541}
542
543void acpi_ec_flush_work(void)
544{
545 if (first_ec)
546 __acpi_ec_flush_event(first_ec);
547
548 flush_scheduled_work();
549}
538#endif /* CONFIG_PM_SLEEP */ 550#endif /* CONFIG_PM_SLEEP */
539 551
540static bool acpi_ec_guard_event(struct acpi_ec *ec) 552static bool acpi_ec_guard_event(struct acpi_ec *ec)
@@ -1880,6 +1892,32 @@ static int acpi_ec_suspend(struct device *dev)
1880 return 0; 1892 return 0;
1881} 1893}
1882 1894
1895static int acpi_ec_suspend_noirq(struct device *dev)
1896{
1897 struct acpi_ec *ec = acpi_driver_data(to_acpi_device(dev));
1898
1899 /*
1900 * The SCI handler doesn't run at this point, so the GPE can be
1901 * masked at the low level without side effects.
1902 */
1903 if (ec_no_wakeup && test_bit(EC_FLAGS_STARTED, &ec->flags) &&
1904 ec->reference_count >= 1)
1905 acpi_set_gpe(NULL, ec->gpe, ACPI_GPE_DISABLE);
1906
1907 return 0;
1908}
1909
1910static int acpi_ec_resume_noirq(struct device *dev)
1911{
1912 struct acpi_ec *ec = acpi_driver_data(to_acpi_device(dev));
1913
1914 if (ec_no_wakeup && test_bit(EC_FLAGS_STARTED, &ec->flags) &&
1915 ec->reference_count >= 1)
1916 acpi_set_gpe(NULL, ec->gpe, ACPI_GPE_ENABLE);
1917
1918 return 0;
1919}
1920
1883static int acpi_ec_resume(struct device *dev) 1921static int acpi_ec_resume(struct device *dev)
1884{ 1922{
1885 struct acpi_ec *ec = 1923 struct acpi_ec *ec =
@@ -1891,6 +1929,7 @@ static int acpi_ec_resume(struct device *dev)
1891#endif 1929#endif
1892 1930
1893static const struct dev_pm_ops acpi_ec_pm = { 1931static const struct dev_pm_ops acpi_ec_pm = {
1932 SET_NOIRQ_SYSTEM_SLEEP_PM_OPS(acpi_ec_suspend_noirq, acpi_ec_resume_noirq)
1894 SET_SYSTEM_SLEEP_PM_OPS(acpi_ec_suspend, acpi_ec_resume) 1933 SET_SYSTEM_SLEEP_PM_OPS(acpi_ec_suspend, acpi_ec_resume)
1895}; 1934};
1896 1935
diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h
index 9531d3276f65..58dd7ab3c653 100644
--- a/drivers/acpi/internal.h
+++ b/drivers/acpi/internal.h
@@ -193,6 +193,10 @@ int acpi_ec_add_query_handler(struct acpi_ec *ec, u8 query_bit,
193 void *data); 193 void *data);
194void acpi_ec_remove_query_handler(struct acpi_ec *ec, u8 query_bit); 194void acpi_ec_remove_query_handler(struct acpi_ec *ec, u8 query_bit);
195 195
196#ifdef CONFIG_PM_SLEEP
197void acpi_ec_flush_work(void);
198#endif
199
196 200
197/*-------------------------------------------------------------------------- 201/*--------------------------------------------------------------------------
198 Suspend/Resume 202 Suspend/Resume
diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c
index edb0c79f7c64..917f1cc0fda4 100644
--- a/drivers/acpi/numa.c
+++ b/drivers/acpi/numa.c
@@ -443,7 +443,7 @@ int __init acpi_numa_init(void)
443 * So go over all cpu entries in SRAT to get apicid to node mapping. 443 * So go over all cpu entries in SRAT to get apicid to node mapping.
444 */ 444 */
445 445
446 /* SRAT: Static Resource Affinity Table */ 446 /* SRAT: System Resource Affinity Table */
447 if (!acpi_table_parse(ACPI_SIG_SRAT, acpi_parse_srat)) { 447 if (!acpi_table_parse(ACPI_SIG_SRAT, acpi_parse_srat)) {
448 struct acpi_subtable_proc srat_proc[3]; 448 struct acpi_subtable_proc srat_proc[3];
449 449
diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
index be17664736b2..fa8243c5c062 100644
--- a/drivers/acpi/sleep.c
+++ b/drivers/acpi/sleep.c
@@ -777,11 +777,11 @@ static void acpi_freeze_sync(void)
777 /* 777 /*
778 * Process all pending events in case there are any wakeup ones. 778 * Process all pending events in case there are any wakeup ones.
779 * 779 *
780 * The EC driver uses the system workqueue, so that one needs to be 780 * The EC driver uses the system workqueue and an additional special
781 * flushed too. 781 * one, so those need to be flushed too.
782 */ 782 */
783 acpi_ec_flush_work();
783 acpi_os_wait_events_complete(); 784 acpi_os_wait_events_complete();
784 flush_scheduled_work();
785 s2idle_wakeup = false; 785 s2idle_wakeup = false;
786} 786}
787 787
diff --git a/drivers/ata/Kconfig b/drivers/ata/Kconfig
index 948fc86980a1..363fc5330c21 100644
--- a/drivers/ata/Kconfig
+++ b/drivers/ata/Kconfig
@@ -215,7 +215,7 @@ config SATA_FSL
215 215
216config SATA_GEMINI 216config SATA_GEMINI
217 tristate "Gemini SATA bridge support" 217 tristate "Gemini SATA bridge support"
218 depends on PATA_FTIDE010 218 depends on ARCH_GEMINI || COMPILE_TEST
219 default ARCH_GEMINI 219 default ARCH_GEMINI
220 help 220 help
221 This enabled support for the FTIDE010 to SATA bridge 221 This enabled support for the FTIDE010 to SATA bridge
@@ -613,7 +613,7 @@ config PATA_FTIDE010
613 tristate "Faraday Technology FTIDE010 PATA support" 613 tristate "Faraday Technology FTIDE010 PATA support"
614 depends on OF 614 depends on OF
615 depends on ARM 615 depends on ARM
616 default ARCH_GEMINI 616 depends on SATA_GEMINI
617 help 617 help
618 This option enables support for the Faraday FTIDE010 618 This option enables support for the Faraday FTIDE010
619 PATA controller found in the Cortina Gemini SoCs. 619 PATA controller found in the Cortina Gemini SoCs.
diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
index 8453f9a4682f..fa7dd4394c02 100644
--- a/drivers/ata/libata-core.c
+++ b/drivers/ata/libata-core.c
@@ -2083,7 +2083,7 @@ unsigned int ata_read_log_page(struct ata_device *dev, u8 log,
2083retry: 2083retry:
2084 ata_tf_init(dev, &tf); 2084 ata_tf_init(dev, &tf);
2085 if (dev->dma_mode && ata_id_has_read_log_dma_ext(dev->id) && 2085 if (dev->dma_mode && ata_id_has_read_log_dma_ext(dev->id) &&
2086 !(dev->horkage & ATA_HORKAGE_NO_NCQ_LOG)) { 2086 !(dev->horkage & ATA_HORKAGE_NO_DMA_LOG)) {
2087 tf.command = ATA_CMD_READ_LOG_DMA_EXT; 2087 tf.command = ATA_CMD_READ_LOG_DMA_EXT;
2088 tf.protocol = ATA_PROT_DMA; 2088 tf.protocol = ATA_PROT_DMA;
2089 dma = true; 2089 dma = true;
@@ -2102,8 +2102,8 @@ retry:
2102 buf, sectors * ATA_SECT_SIZE, 0); 2102 buf, sectors * ATA_SECT_SIZE, 0);
2103 2103
2104 if (err_mask && dma) { 2104 if (err_mask && dma) {
2105 dev->horkage |= ATA_HORKAGE_NO_NCQ_LOG; 2105 dev->horkage |= ATA_HORKAGE_NO_DMA_LOG;
2106 ata_dev_warn(dev, "READ LOG DMA EXT failed, trying unqueued\n"); 2106 ata_dev_warn(dev, "READ LOG DMA EXT failed, trying PIO\n");
2107 goto retry; 2107 goto retry;
2108 } 2108 }
2109 2109
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
index b70bcf6d2914..3dbd05532c09 100644
--- a/drivers/ata/libata-eh.c
+++ b/drivers/ata/libata-eh.c
@@ -1434,7 +1434,7 @@ void ata_eh_about_to_do(struct ata_link *link, struct ata_device *dev,
1434 1434
1435/** 1435/**
1436 * ata_eh_done - EH action complete 1436 * ata_eh_done - EH action complete
1437* @ap: target ATA port 1437 * @link: ATA link for which EH actions are complete
1438 * @dev: target ATA dev for per-dev action (can be NULL) 1438 * @dev: target ATA dev for per-dev action (can be NULL)
1439 * @action: action just completed 1439 * @action: action just completed
1440 * 1440 *
@@ -1576,7 +1576,7 @@ unsigned int atapi_eh_tur(struct ata_device *dev, u8 *r_sense_key)
1576 1576
1577/** 1577/**
1578 * ata_eh_request_sense - perform REQUEST_SENSE_DATA_EXT 1578 * ata_eh_request_sense - perform REQUEST_SENSE_DATA_EXT
1579 * @dev: device to perform REQUEST_SENSE_SENSE_DATA_EXT to 1579 * @qc: qc to perform REQUEST_SENSE_SENSE_DATA_EXT to
1580 * @cmd: scsi command for which the sense code should be set 1580 * @cmd: scsi command for which the sense code should be set
1581 * 1581 *
1582 * Perform REQUEST_SENSE_DATA_EXT after the device reported CHECK 1582 * Perform REQUEST_SENSE_DATA_EXT after the device reported CHECK
@@ -4175,7 +4175,6 @@ static void ata_eh_handle_port_resume(struct ata_port *ap)
4175 struct ata_link *link; 4175 struct ata_link *link;
4176 struct ata_device *dev; 4176 struct ata_device *dev;
4177 unsigned long flags; 4177 unsigned long flags;
4178 int rc = 0;
4179 4178
4180 /* are we resuming? */ 4179 /* are we resuming? */
4181 spin_lock_irqsave(ap->lock, flags); 4180 spin_lock_irqsave(ap->lock, flags);
@@ -4202,7 +4201,7 @@ static void ata_eh_handle_port_resume(struct ata_port *ap)
4202 ata_acpi_set_state(ap, ap->pm_mesg); 4201 ata_acpi_set_state(ap, ap->pm_mesg);
4203 4202
4204 if (ap->ops->port_resume) 4203 if (ap->ops->port_resume)
4205 rc = ap->ops->port_resume(ap); 4204 ap->ops->port_resume(ap);
4206 4205
4207 /* tell ACPI that we're resuming */ 4206 /* tell ACPI that we're resuming */
4208 ata_acpi_on_resume(ap); 4207 ata_acpi_on_resume(ap);
diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
index d462c5a3a7ef..44ba292f2cd7 100644
--- a/drivers/ata/libata-scsi.c
+++ b/drivers/ata/libata-scsi.c
@@ -3030,10 +3030,12 @@ static unsigned int atapi_xlat(struct ata_queued_cmd *qc)
3030static struct ata_device *ata_find_dev(struct ata_port *ap, int devno) 3030static struct ata_device *ata_find_dev(struct ata_port *ap, int devno)
3031{ 3031{
3032 if (!sata_pmp_attached(ap)) { 3032 if (!sata_pmp_attached(ap)) {
3033 if (likely(devno < ata_link_max_devices(&ap->link))) 3033 if (likely(devno >= 0 &&
3034 devno < ata_link_max_devices(&ap->link)))
3034 return &ap->link.device[devno]; 3035 return &ap->link.device[devno];
3035 } else { 3036 } else {
3036 if (likely(devno < ap->nr_pmp_links)) 3037 if (likely(devno >= 0 &&
3038 devno < ap->nr_pmp_links))
3037 return &ap->pmp_link[devno].device[0]; 3039 return &ap->pmp_link[devno].device[0];
3038 } 3040 }
3039 3041
diff --git a/drivers/ata/sata_rcar.c b/drivers/ata/sata_rcar.c
index ee9844758736..537d11869069 100644
--- a/drivers/ata/sata_rcar.c
+++ b/drivers/ata/sata_rcar.c
@@ -858,6 +858,14 @@ static const struct of_device_id sata_rcar_match[] = {
858 .compatible = "renesas,sata-r8a7795", 858 .compatible = "renesas,sata-r8a7795",
859 .data = (void *)RCAR_GEN2_SATA 859 .data = (void *)RCAR_GEN2_SATA
860 }, 860 },
861 {
862 .compatible = "renesas,rcar-gen2-sata",
863 .data = (void *)RCAR_GEN2_SATA
864 },
865 {
866 .compatible = "renesas,rcar-gen3-sata",
867 .data = (void *)RCAR_GEN2_SATA
868 },
861 { }, 869 { },
862}; 870};
863MODULE_DEVICE_TABLE(of, sata_rcar_match); 871MODULE_DEVICE_TABLE(of, sata_rcar_match);
diff --git a/drivers/base/dma-coherent.c b/drivers/base/dma-coherent.c
index 2ae24c28e70c..1c152aed6b82 100644
--- a/drivers/base/dma-coherent.c
+++ b/drivers/base/dma-coherent.c
@@ -25,7 +25,7 @@ static inline struct dma_coherent_mem *dev_get_coherent_memory(struct device *de
25{ 25{
26 if (dev && dev->dma_mem) 26 if (dev && dev->dma_mem)
27 return dev->dma_mem; 27 return dev->dma_mem;
28 return dma_coherent_default_memory; 28 return NULL;
29} 29}
30 30
31static inline dma_addr_t dma_get_device_base(struct device *dev, 31static inline dma_addr_t dma_get_device_base(struct device *dev,
@@ -165,34 +165,15 @@ void *dma_mark_declared_memory_occupied(struct device *dev,
165} 165}
166EXPORT_SYMBOL(dma_mark_declared_memory_occupied); 166EXPORT_SYMBOL(dma_mark_declared_memory_occupied);
167 167
168/** 168static void *__dma_alloc_from_coherent(struct dma_coherent_mem *mem,
169 * dma_alloc_from_coherent() - try to allocate memory from the per-device coherent area 169 ssize_t size, dma_addr_t *dma_handle)
170 *
171 * @dev: device from which we allocate memory
172 * @size: size of requested memory area
173 * @dma_handle: This will be filled with the correct dma handle
174 * @ret: This pointer will be filled with the virtual address
175 * to allocated area.
176 *
177 * This function should be only called from per-arch dma_alloc_coherent()
178 * to support allocation from per-device coherent memory pools.
179 *
180 * Returns 0 if dma_alloc_coherent should continue with allocating from
181 * generic memory areas, or !0 if dma_alloc_coherent should return @ret.
182 */
183int dma_alloc_from_coherent(struct device *dev, ssize_t size,
184 dma_addr_t *dma_handle, void **ret)
185{ 170{
186 struct dma_coherent_mem *mem = dev_get_coherent_memory(dev);
187 int order = get_order(size); 171 int order = get_order(size);
188 unsigned long flags; 172 unsigned long flags;
189 int pageno; 173 int pageno;
190 int dma_memory_map; 174 int dma_memory_map;
175 void *ret;
191 176
192 if (!mem)
193 return 0;
194
195 *ret = NULL;
196 spin_lock_irqsave(&mem->spinlock, flags); 177 spin_lock_irqsave(&mem->spinlock, flags);
197 178
198 if (unlikely(size > (mem->size << PAGE_SHIFT))) 179 if (unlikely(size > (mem->size << PAGE_SHIFT)))
@@ -203,21 +184,50 @@ int dma_alloc_from_coherent(struct device *dev, ssize_t size,
203 goto err; 184 goto err;
204 185
205 /* 186 /*
206 * Memory was found in the per-device area. 187 * Memory was found in the coherent area.
207 */ 188 */
208 *dma_handle = dma_get_device_base(dev, mem) + (pageno << PAGE_SHIFT); 189 *dma_handle = mem->device_base + (pageno << PAGE_SHIFT);
209 *ret = mem->virt_base + (pageno << PAGE_SHIFT); 190 ret = mem->virt_base + (pageno << PAGE_SHIFT);
210 dma_memory_map = (mem->flags & DMA_MEMORY_MAP); 191 dma_memory_map = (mem->flags & DMA_MEMORY_MAP);
211 spin_unlock_irqrestore(&mem->spinlock, flags); 192 spin_unlock_irqrestore(&mem->spinlock, flags);
212 if (dma_memory_map) 193 if (dma_memory_map)
213 memset(*ret, 0, size); 194 memset(ret, 0, size);
214 else 195 else
215 memset_io(*ret, 0, size); 196 memset_io(ret, 0, size);
216 197
217 return 1; 198 return ret;
218 199
219err: 200err:
220 spin_unlock_irqrestore(&mem->spinlock, flags); 201 spin_unlock_irqrestore(&mem->spinlock, flags);
202 return NULL;
203}
204
205/**
206 * dma_alloc_from_dev_coherent() - allocate memory from device coherent pool
207 * @dev: device from which we allocate memory
208 * @size: size of requested memory area
209 * @dma_handle: This will be filled with the correct dma handle
210 * @ret: This pointer will be filled with the virtual address
211 * to allocated area.
212 *
213 * This function should be only called from per-arch dma_alloc_coherent()
214 * to support allocation from per-device coherent memory pools.
215 *
216 * Returns 0 if dma_alloc_coherent should continue with allocating from
217 * generic memory areas, or !0 if dma_alloc_coherent should return @ret.
218 */
219int dma_alloc_from_dev_coherent(struct device *dev, ssize_t size,
220 dma_addr_t *dma_handle, void **ret)
221{
222 struct dma_coherent_mem *mem = dev_get_coherent_memory(dev);
223
224 if (!mem)
225 return 0;
226
227 *ret = __dma_alloc_from_coherent(mem, size, dma_handle);
228 if (*ret)
229 return 1;
230
221 /* 231 /*
222 * In the case where the allocation can not be satisfied from the 232 * In the case where the allocation can not be satisfied from the
223 * per-device area, try to fall back to generic memory if the 233 * per-device area, try to fall back to generic memory if the
@@ -225,25 +235,20 @@ err:
225 */ 235 */
226 return mem->flags & DMA_MEMORY_EXCLUSIVE; 236 return mem->flags & DMA_MEMORY_EXCLUSIVE;
227} 237}
228EXPORT_SYMBOL(dma_alloc_from_coherent); 238EXPORT_SYMBOL(dma_alloc_from_dev_coherent);
229 239
230/** 240void *dma_alloc_from_global_coherent(ssize_t size, dma_addr_t *dma_handle)
231 * dma_release_from_coherent() - try to free the memory allocated from per-device coherent memory pool
232 * @dev: device from which the memory was allocated
233 * @order: the order of pages allocated
234 * @vaddr: virtual address of allocated pages
235 *
236 * This checks whether the memory was allocated from the per-device
237 * coherent memory pool and if so, releases that memory.
238 *
239 * Returns 1 if we correctly released the memory, or 0 if
240 * dma_release_coherent() should proceed with releasing memory from
241 * generic pools.
242 */
243int dma_release_from_coherent(struct device *dev, int order, void *vaddr)
244{ 241{
245 struct dma_coherent_mem *mem = dev_get_coherent_memory(dev); 242 if (!dma_coherent_default_memory)
243 return NULL;
244
245 return __dma_alloc_from_coherent(dma_coherent_default_memory, size,
246 dma_handle);
247}
246 248
249static int __dma_release_from_coherent(struct dma_coherent_mem *mem,
250 int order, void *vaddr)
251{
247 if (mem && vaddr >= mem->virt_base && vaddr < 252 if (mem && vaddr >= mem->virt_base && vaddr <
248 (mem->virt_base + (mem->size << PAGE_SHIFT))) { 253 (mem->virt_base + (mem->size << PAGE_SHIFT))) {
249 int page = (vaddr - mem->virt_base) >> PAGE_SHIFT; 254 int page = (vaddr - mem->virt_base) >> PAGE_SHIFT;
@@ -256,28 +261,39 @@ int dma_release_from_coherent(struct device *dev, int order, void *vaddr)
256 } 261 }
257 return 0; 262 return 0;
258} 263}
259EXPORT_SYMBOL(dma_release_from_coherent);
260 264
261/** 265/**
262 * dma_mmap_from_coherent() - try to mmap the memory allocated from 266 * dma_release_from_dev_coherent() - free memory to device coherent memory pool
263 * per-device coherent memory pool to userspace
264 * @dev: device from which the memory was allocated 267 * @dev: device from which the memory was allocated
265 * @vma: vm_area for the userspace memory 268 * @order: the order of pages allocated
266 * @vaddr: cpu address returned by dma_alloc_from_coherent 269 * @vaddr: virtual address of allocated pages
267 * @size: size of the memory buffer allocated by dma_alloc_from_coherent
268 * @ret: result from remap_pfn_range()
269 * 270 *
270 * This checks whether the memory was allocated from the per-device 271 * This checks whether the memory was allocated from the per-device
271 * coherent memory pool and if so, maps that memory to the provided vma. 272 * coherent memory pool and if so, releases that memory.
272 * 273 *
273 * Returns 1 if we correctly mapped the memory, or 0 if the caller should 274 * Returns 1 if we correctly released the memory, or 0 if the caller should
274 * proceed with mapping memory from generic pools. 275 * proceed with releasing memory from generic pools.
275 */ 276 */
276int dma_mmap_from_coherent(struct device *dev, struct vm_area_struct *vma, 277int dma_release_from_dev_coherent(struct device *dev, int order, void *vaddr)
277 void *vaddr, size_t size, int *ret)
278{ 278{
279 struct dma_coherent_mem *mem = dev_get_coherent_memory(dev); 279 struct dma_coherent_mem *mem = dev_get_coherent_memory(dev);
280 280
281 return __dma_release_from_coherent(mem, order, vaddr);
282}
283EXPORT_SYMBOL(dma_release_from_dev_coherent);
284
285int dma_release_from_global_coherent(int order, void *vaddr)
286{
287 if (!dma_coherent_default_memory)
288 return 0;
289
290 return __dma_release_from_coherent(dma_coherent_default_memory, order,
291 vaddr);
292}
293
294static int __dma_mmap_from_coherent(struct dma_coherent_mem *mem,
295 struct vm_area_struct *vma, void *vaddr, size_t size, int *ret)
296{
281 if (mem && vaddr >= mem->virt_base && vaddr + size <= 297 if (mem && vaddr >= mem->virt_base && vaddr + size <=
282 (mem->virt_base + (mem->size << PAGE_SHIFT))) { 298 (mem->virt_base + (mem->size << PAGE_SHIFT))) {
283 unsigned long off = vma->vm_pgoff; 299 unsigned long off = vma->vm_pgoff;
@@ -296,7 +312,39 @@ int dma_mmap_from_coherent(struct device *dev, struct vm_area_struct *vma,
296 } 312 }
297 return 0; 313 return 0;
298} 314}
299EXPORT_SYMBOL(dma_mmap_from_coherent); 315
316/**
317 * dma_mmap_from_dev_coherent() - mmap memory from the device coherent pool
318 * @dev: device from which the memory was allocated
319 * @vma: vm_area for the userspace memory
320 * @vaddr: cpu address returned by dma_alloc_from_dev_coherent
321 * @size: size of the memory buffer allocated
322 * @ret: result from remap_pfn_range()
323 *
324 * This checks whether the memory was allocated from the per-device
325 * coherent memory pool and if so, maps that memory to the provided vma.
326 *
327 * Returns 1 if we correctly mapped the memory, or 0 if the caller should
328 * proceed with mapping memory from generic pools.
329 */
330int dma_mmap_from_dev_coherent(struct device *dev, struct vm_area_struct *vma,
331 void *vaddr, size_t size, int *ret)
332{
333 struct dma_coherent_mem *mem = dev_get_coherent_memory(dev);
334
335 return __dma_mmap_from_coherent(mem, vma, vaddr, size, ret);
336}
337EXPORT_SYMBOL(dma_mmap_from_dev_coherent);
338
339int dma_mmap_from_global_coherent(struct vm_area_struct *vma, void *vaddr,
340 size_t size, int *ret)
341{
342 if (!dma_coherent_default_memory)
343 return 0;
344
345 return __dma_mmap_from_coherent(dma_coherent_default_memory, vma,
346 vaddr, size, ret);
347}
300 348
301/* 349/*
302 * Support for reserved memory regions defined in device tree 350 * Support for reserved memory regions defined in device tree
diff --git a/drivers/base/dma-mapping.c b/drivers/base/dma-mapping.c
index 5096755d185e..b555ff9dd8fc 100644
--- a/drivers/base/dma-mapping.c
+++ b/drivers/base/dma-mapping.c
@@ -235,7 +235,7 @@ int dma_common_mmap(struct device *dev, struct vm_area_struct *vma,
235 235
236 vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); 236 vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
237 237
238 if (dma_mmap_from_coherent(dev, vma, cpu_addr, size, &ret)) 238 if (dma_mmap_from_dev_coherent(dev, vma, cpu_addr, size, &ret))
239 return ret; 239 return ret;
240 240
241 if (off < count && user_count <= (count - off)) { 241 if (off < count && user_count <= (count - off)) {
diff --git a/drivers/block/nbd.c b/drivers/block/nbd.c
index 87a0a29f6e7e..5bdf923294a5 100644
--- a/drivers/block/nbd.c
+++ b/drivers/block/nbd.c
@@ -908,7 +908,8 @@ static int nbd_reconnect_socket(struct nbd_device *nbd, unsigned long arg)
908 continue; 908 continue;
909 } 909 }
910 sk_set_memalloc(sock->sk); 910 sk_set_memalloc(sock->sk);
911 sock->sk->sk_sndtimeo = nbd->tag_set.timeout; 911 if (nbd->tag_set.timeout)
912 sock->sk->sk_sndtimeo = nbd->tag_set.timeout;
912 atomic_inc(&config->recv_threads); 913 atomic_inc(&config->recv_threads);
913 refcount_inc(&nbd->config_refs); 914 refcount_inc(&nbd->config_refs);
914 old = nsock->sock; 915 old = nsock->sock;
@@ -922,6 +923,8 @@ static int nbd_reconnect_socket(struct nbd_device *nbd, unsigned long arg)
922 mutex_unlock(&nsock->tx_lock); 923 mutex_unlock(&nsock->tx_lock);
923 sockfd_put(old); 924 sockfd_put(old);
924 925
926 clear_bit(NBD_DISCONNECTED, &config->runtime_flags);
927
925 /* We take the tx_mutex in an error path in the recv_work, so we 928 /* We take the tx_mutex in an error path in the recv_work, so we
926 * need to queue_work outside of the tx_mutex. 929 * need to queue_work outside of the tx_mutex.
927 */ 930 */
@@ -978,11 +981,15 @@ static void send_disconnects(struct nbd_device *nbd)
978 int i, ret; 981 int i, ret;
979 982
980 for (i = 0; i < config->num_connections; i++) { 983 for (i = 0; i < config->num_connections; i++) {
984 struct nbd_sock *nsock = config->socks[i];
985
981 iov_iter_kvec(&from, WRITE | ITER_KVEC, &iov, 1, sizeof(request)); 986 iov_iter_kvec(&from, WRITE | ITER_KVEC, &iov, 1, sizeof(request));
987 mutex_lock(&nsock->tx_lock);
982 ret = sock_xmit(nbd, i, 1, &from, 0, NULL); 988 ret = sock_xmit(nbd, i, 1, &from, 0, NULL);
983 if (ret <= 0) 989 if (ret <= 0)
984 dev_err(disk_to_dev(nbd->disk), 990 dev_err(disk_to_dev(nbd->disk),
985 "Send disconnect failed %d\n", ret); 991 "Send disconnect failed %d\n", ret);
992 mutex_unlock(&nsock->tx_lock);
986 } 993 }
987} 994}
988 995
@@ -991,9 +998,8 @@ static int nbd_disconnect(struct nbd_device *nbd)
991 struct nbd_config *config = nbd->config; 998 struct nbd_config *config = nbd->config;
992 999
993 dev_info(disk_to_dev(nbd->disk), "NBD_DISCONNECT\n"); 1000 dev_info(disk_to_dev(nbd->disk), "NBD_DISCONNECT\n");
994 if (!test_and_set_bit(NBD_DISCONNECT_REQUESTED, 1001 set_bit(NBD_DISCONNECT_REQUESTED, &config->runtime_flags);
995 &config->runtime_flags)) 1002 send_disconnects(nbd);
996 send_disconnects(nbd);
997 return 0; 1003 return 0;
998} 1004}
999 1005
@@ -1074,7 +1080,9 @@ static int nbd_start_device(struct nbd_device *nbd)
1074 return -ENOMEM; 1080 return -ENOMEM;
1075 } 1081 }
1076 sk_set_memalloc(config->socks[i]->sock->sk); 1082 sk_set_memalloc(config->socks[i]->sock->sk);
1077 config->socks[i]->sock->sk->sk_sndtimeo = nbd->tag_set.timeout; 1083 if (nbd->tag_set.timeout)
1084 config->socks[i]->sock->sk->sk_sndtimeo =
1085 nbd->tag_set.timeout;
1078 atomic_inc(&config->recv_threads); 1086 atomic_inc(&config->recv_threads);
1079 refcount_inc(&nbd->config_refs); 1087 refcount_inc(&nbd->config_refs);
1080 INIT_WORK(&args->work, recv_work); 1088 INIT_WORK(&args->work, recv_work);
diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
index 4e02aa5fdac0..1498b899a593 100644
--- a/drivers/block/virtio_blk.c
+++ b/drivers/block/virtio_blk.c
@@ -541,12 +541,9 @@ virtblk_cache_type_store(struct device *dev, struct device_attribute *attr,
541 int i; 541 int i;
542 542
543 BUG_ON(!virtio_has_feature(vblk->vdev, VIRTIO_BLK_F_CONFIG_WCE)); 543 BUG_ON(!virtio_has_feature(vblk->vdev, VIRTIO_BLK_F_CONFIG_WCE));
544 for (i = ARRAY_SIZE(virtblk_cache_types); --i >= 0; ) 544 i = sysfs_match_string(virtblk_cache_types, buf);
545 if (sysfs_streq(buf, virtblk_cache_types[i]))
546 break;
547
548 if (i < 0) 545 if (i < 0)
549 return -EINVAL; 546 return i;
550 547
551 virtio_cwrite8(vdev, offsetof(struct virtio_blk_config, wce), i); 548 virtio_cwrite8(vdev, offsetof(struct virtio_blk_config, wce), i);
552 virtblk_update_cache_mode(vdev); 549 virtblk_update_cache_mode(vdev);
diff --git a/drivers/block/xen-blkfront.c b/drivers/block/xen-blkfront.c
index c852ed3c01d5..98e34e4c62b8 100644
--- a/drivers/block/xen-blkfront.c
+++ b/drivers/block/xen-blkfront.c
@@ -111,7 +111,7 @@ struct blk_shadow {
111}; 111};
112 112
113struct blkif_req { 113struct blkif_req {
114 int error; 114 blk_status_t error;
115}; 115};
116 116
117static inline struct blkif_req *blkif_req(struct request *rq) 117static inline struct blkif_req *blkif_req(struct request *rq)
@@ -708,6 +708,7 @@ static int blkif_queue_rw_req(struct request *req, struct blkfront_ring_info *ri
708 * existing persistent grants, or if we have to get new grants, 708 * existing persistent grants, or if we have to get new grants,
709 * as there are not sufficiently many free. 709 * as there are not sufficiently many free.
710 */ 710 */
711 bool new_persistent_gnts = false;
711 struct scatterlist *sg; 712 struct scatterlist *sg;
712 int num_sg, max_grefs, num_grant; 713 int num_sg, max_grefs, num_grant;
713 714
@@ -719,19 +720,21 @@ static int blkif_queue_rw_req(struct request *req, struct blkfront_ring_info *ri
719 */ 720 */
720 max_grefs += INDIRECT_GREFS(max_grefs); 721 max_grefs += INDIRECT_GREFS(max_grefs);
721 722
722 /* 723 /* Check if we have enough persistent grants to allocate a requests */
723 * We have to reserve 'max_grefs' grants because persistent 724 if (rinfo->persistent_gnts_c < max_grefs) {
724 * grants are shared by all rings. 725 new_persistent_gnts = true;
725 */ 726
726 if (max_grefs > 0) 727 if (gnttab_alloc_grant_references(
727 if (gnttab_alloc_grant_references(max_grefs, &setup.gref_head) < 0) { 728 max_grefs - rinfo->persistent_gnts_c,
729 &setup.gref_head) < 0) {
728 gnttab_request_free_callback( 730 gnttab_request_free_callback(
729 &rinfo->callback, 731 &rinfo->callback,
730 blkif_restart_queue_callback, 732 blkif_restart_queue_callback,
731 rinfo, 733 rinfo,
732 max_grefs); 734 max_grefs - rinfo->persistent_gnts_c);
733 return 1; 735 return 1;
734 } 736 }
737 }
735 738
736 /* Fill out a communications ring structure. */ 739 /* Fill out a communications ring structure. */
737 id = blkif_ring_get_request(rinfo, req, &ring_req); 740 id = blkif_ring_get_request(rinfo, req, &ring_req);
@@ -832,7 +835,7 @@ static int blkif_queue_rw_req(struct request *req, struct blkfront_ring_info *ri
832 if (unlikely(require_extra_req)) 835 if (unlikely(require_extra_req))
833 rinfo->shadow[extra_id].req = *extra_ring_req; 836 rinfo->shadow[extra_id].req = *extra_ring_req;
834 837
835 if (max_grefs > 0) 838 if (new_persistent_gnts)
836 gnttab_free_grant_references(setup.gref_head); 839 gnttab_free_grant_references(setup.gref_head);
837 840
838 return 0; 841 return 0;
@@ -906,8 +909,8 @@ out_err:
906 return BLK_STS_IOERR; 909 return BLK_STS_IOERR;
907 910
908out_busy: 911out_busy:
909 spin_unlock_irqrestore(&rinfo->ring_lock, flags);
910 blk_mq_stop_hw_queue(hctx); 912 blk_mq_stop_hw_queue(hctx);
913 spin_unlock_irqrestore(&rinfo->ring_lock, flags);
911 return BLK_STS_RESOURCE; 914 return BLK_STS_RESOURCE;
912} 915}
913 916
@@ -1616,7 +1619,7 @@ static irqreturn_t blkif_interrupt(int irq, void *dev_id)
1616 if (unlikely(bret->status == BLKIF_RSP_EOPNOTSUPP)) { 1619 if (unlikely(bret->status == BLKIF_RSP_EOPNOTSUPP)) {
1617 printk(KERN_WARNING "blkfront: %s: %s op failed\n", 1620 printk(KERN_WARNING "blkfront: %s: %s op failed\n",
1618 info->gd->disk_name, op_name(bret->operation)); 1621 info->gd->disk_name, op_name(bret->operation));
1619 blkif_req(req)->error = -EOPNOTSUPP; 1622 blkif_req(req)->error = BLK_STS_NOTSUPP;
1620 } 1623 }
1621 if (unlikely(bret->status == BLKIF_RSP_ERROR && 1624 if (unlikely(bret->status == BLKIF_RSP_ERROR &&
1622 rinfo->shadow[id].req.u.rw.nr_segments == 0)) { 1625 rinfo->shadow[id].req.u.rw.nr_segments == 0)) {
diff --git a/drivers/bus/uniphier-system-bus.c b/drivers/bus/uniphier-system-bus.c
index 1e6e0269edcc..f76be6bd6eb3 100644
--- a/drivers/bus/uniphier-system-bus.c
+++ b/drivers/bus/uniphier-system-bus.c
@@ -256,10 +256,23 @@ static int uniphier_system_bus_probe(struct platform_device *pdev)
256 256
257 uniphier_system_bus_set_reg(priv); 257 uniphier_system_bus_set_reg(priv);
258 258
259 platform_set_drvdata(pdev, priv);
260
259 /* Now, the bus is configured. Populate platform_devices below it */ 261 /* Now, the bus is configured. Populate platform_devices below it */
260 return of_platform_default_populate(dev->of_node, NULL, dev); 262 return of_platform_default_populate(dev->of_node, NULL, dev);
261} 263}
262 264
265static int __maybe_unused uniphier_system_bus_resume(struct device *dev)
266{
267 uniphier_system_bus_set_reg(dev_get_drvdata(dev));
268
269 return 0;
270}
271
272static const struct dev_pm_ops uniphier_system_bus_pm_ops = {
273 SET_SYSTEM_SLEEP_PM_OPS(NULL, uniphier_system_bus_resume)
274};
275
263static const struct of_device_id uniphier_system_bus_match[] = { 276static const struct of_device_id uniphier_system_bus_match[] = {
264 { .compatible = "socionext,uniphier-system-bus" }, 277 { .compatible = "socionext,uniphier-system-bus" },
265 { /* sentinel */ } 278 { /* sentinel */ }
@@ -271,6 +284,7 @@ static struct platform_driver uniphier_system_bus_driver = {
271 .driver = { 284 .driver = {
272 .name = "uniphier-system-bus", 285 .name = "uniphier-system-bus",
273 .of_match_table = uniphier_system_bus_match, 286 .of_match_table = uniphier_system_bus_match,
287 .pm = &uniphier_system_bus_pm_ops,
274 }, 288 },
275}; 289};
276module_platform_driver(uniphier_system_bus_driver); 290module_platform_driver(uniphier_system_bus_driver);
diff --git a/drivers/char/random.c b/drivers/char/random.c
index afa3ce7d3e72..8ad92707e45f 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -1492,7 +1492,7 @@ static void _warn_unseeded_randomness(const char *func_name, void *caller,
1492#ifndef CONFIG_WARN_ALL_UNSEEDED_RANDOM 1492#ifndef CONFIG_WARN_ALL_UNSEEDED_RANDOM
1493 print_once = true; 1493 print_once = true;
1494#endif 1494#endif
1495 pr_notice("random: %s called from %pF with crng_init=%d\n", 1495 pr_notice("random: %s called from %pS with crng_init=%d\n",
1496 func_name, caller, crng_init); 1496 func_name, caller, crng_init);
1497} 1497}
1498 1498
diff --git a/drivers/clk/clk-gemini.c b/drivers/clk/clk-gemini.c
index c391a49aaaff..b4cf2f699a21 100644
--- a/drivers/clk/clk-gemini.c
+++ b/drivers/clk/clk-gemini.c
@@ -237,6 +237,18 @@ static int gemini_reset(struct reset_controller_dev *rcdev,
237 BIT(GEMINI_RESET_CPU1) | BIT(id)); 237 BIT(GEMINI_RESET_CPU1) | BIT(id));
238} 238}
239 239
240static int gemini_reset_assert(struct reset_controller_dev *rcdev,
241 unsigned long id)
242{
243 return 0;
244}
245
246static int gemini_reset_deassert(struct reset_controller_dev *rcdev,
247 unsigned long id)
248{
249 return 0;
250}
251
240static int gemini_reset_status(struct reset_controller_dev *rcdev, 252static int gemini_reset_status(struct reset_controller_dev *rcdev,
241 unsigned long id) 253 unsigned long id)
242{ 254{
@@ -253,6 +265,8 @@ static int gemini_reset_status(struct reset_controller_dev *rcdev,
253 265
254static const struct reset_control_ops gemini_reset_ops = { 266static const struct reset_control_ops gemini_reset_ops = {
255 .reset = gemini_reset, 267 .reset = gemini_reset,
268 .assert = gemini_reset_assert,
269 .deassert = gemini_reset_deassert,
256 .status = gemini_reset_status, 270 .status = gemini_reset_status,
257}; 271};
258 272
diff --git a/drivers/clk/keystone/sci-clk.c b/drivers/clk/keystone/sci-clk.c
index 43b0f2f08df2..9cdf9d5050ac 100644
--- a/drivers/clk/keystone/sci-clk.c
+++ b/drivers/clk/keystone/sci-clk.c
@@ -22,6 +22,7 @@
22#include <linux/platform_device.h> 22#include <linux/platform_device.h>
23#include <linux/slab.h> 23#include <linux/slab.h>
24#include <linux/soc/ti/ti_sci_protocol.h> 24#include <linux/soc/ti/ti_sci_protocol.h>
25#include <linux/bsearch.h>
25 26
26#define SCI_CLK_SSC_ENABLE BIT(0) 27#define SCI_CLK_SSC_ENABLE BIT(0)
27#define SCI_CLK_ALLOW_FREQ_CHANGE BIT(1) 28#define SCI_CLK_ALLOW_FREQ_CHANGE BIT(1)
@@ -44,6 +45,7 @@ struct sci_clk_data {
44 * @dev: Device pointer for the clock provider 45 * @dev: Device pointer for the clock provider
45 * @clk_data: Clock data 46 * @clk_data: Clock data
46 * @clocks: Clocks array for this device 47 * @clocks: Clocks array for this device
48 * @num_clocks: Total number of clocks for this provider
47 */ 49 */
48struct sci_clk_provider { 50struct sci_clk_provider {
49 const struct ti_sci_handle *sci; 51 const struct ti_sci_handle *sci;
@@ -51,6 +53,7 @@ struct sci_clk_provider {
51 struct device *dev; 53 struct device *dev;
52 const struct sci_clk_data *clk_data; 54 const struct sci_clk_data *clk_data;
53 struct clk_hw **clocks; 55 struct clk_hw **clocks;
56 int num_clocks;
54}; 57};
55 58
56/** 59/**
@@ -58,7 +61,6 @@ struct sci_clk_provider {
58 * @hw: Hardware clock cookie for common clock framework 61 * @hw: Hardware clock cookie for common clock framework
59 * @dev_id: Device index 62 * @dev_id: Device index
60 * @clk_id: Clock index 63 * @clk_id: Clock index
61 * @node: Clocks list link
62 * @provider: Master clock provider 64 * @provider: Master clock provider
63 * @flags: Flags for the clock 65 * @flags: Flags for the clock
64 */ 66 */
@@ -66,7 +68,6 @@ struct sci_clk {
66 struct clk_hw hw; 68 struct clk_hw hw;
67 u16 dev_id; 69 u16 dev_id;
68 u8 clk_id; 70 u8 clk_id;
69 struct list_head node;
70 struct sci_clk_provider *provider; 71 struct sci_clk_provider *provider;
71 u8 flags; 72 u8 flags;
72}; 73};
@@ -367,6 +368,19 @@ err:
367 return &sci_clk->hw; 368 return &sci_clk->hw;
368} 369}
369 370
371static int _cmp_sci_clk(const void *a, const void *b)
372{
373 const struct sci_clk *ca = a;
374 const struct sci_clk *cb = *(struct sci_clk **)b;
375
376 if (ca->dev_id == cb->dev_id && ca->clk_id == cb->clk_id)
377 return 0;
378 if (ca->dev_id > cb->dev_id ||
379 (ca->dev_id == cb->dev_id && ca->clk_id > cb->clk_id))
380 return 1;
381 return -1;
382}
383
370/** 384/**
371 * sci_clk_get - Xlate function for getting clock handles 385 * sci_clk_get - Xlate function for getting clock handles
372 * @clkspec: device tree clock specifier 386 * @clkspec: device tree clock specifier
@@ -380,29 +394,22 @@ err:
380static struct clk_hw *sci_clk_get(struct of_phandle_args *clkspec, void *data) 394static struct clk_hw *sci_clk_get(struct of_phandle_args *clkspec, void *data)
381{ 395{
382 struct sci_clk_provider *provider = data; 396 struct sci_clk_provider *provider = data;
383 u16 dev_id; 397 struct sci_clk **clk;
384 u8 clk_id; 398 struct sci_clk key;
385 const struct sci_clk_data *clks = provider->clk_data;
386 struct clk_hw **clocks = provider->clocks;
387 399
388 if (clkspec->args_count != 2) 400 if (clkspec->args_count != 2)
389 return ERR_PTR(-EINVAL); 401 return ERR_PTR(-EINVAL);
390 402
391 dev_id = clkspec->args[0]; 403 key.dev_id = clkspec->args[0];
392 clk_id = clkspec->args[1]; 404 key.clk_id = clkspec->args[1];
393 405
394 while (clks->num_clks) { 406 clk = bsearch(&key, provider->clocks, provider->num_clocks,
395 if (clks->dev == dev_id) { 407 sizeof(clk), _cmp_sci_clk);
396 if (clk_id >= clks->num_clks)
397 return ERR_PTR(-EINVAL);
398
399 return clocks[clk_id];
400 }
401 408
402 clks++; 409 if (!clk)
403 } 410 return ERR_PTR(-ENODEV);
404 411
405 return ERR_PTR(-ENODEV); 412 return &(*clk)->hw;
406} 413}
407 414
408static int ti_sci_init_clocks(struct sci_clk_provider *p) 415static int ti_sci_init_clocks(struct sci_clk_provider *p)
@@ -410,18 +417,29 @@ static int ti_sci_init_clocks(struct sci_clk_provider *p)
410 const struct sci_clk_data *data = p->clk_data; 417 const struct sci_clk_data *data = p->clk_data;
411 struct clk_hw *hw; 418 struct clk_hw *hw;
412 int i; 419 int i;
420 int num_clks = 0;
413 421
414 while (data->num_clks) { 422 while (data->num_clks) {
415 p->clocks = devm_kcalloc(p->dev, data->num_clks, 423 num_clks += data->num_clks;
416 sizeof(struct sci_clk), 424 data++;
417 GFP_KERNEL); 425 }
418 if (!p->clocks)
419 return -ENOMEM;
420 426
427 p->num_clocks = num_clks;
428
429 p->clocks = devm_kcalloc(p->dev, num_clks, sizeof(struct sci_clk),
430 GFP_KERNEL);
431 if (!p->clocks)
432 return -ENOMEM;
433
434 num_clks = 0;
435
436 data = p->clk_data;
437
438 while (data->num_clks) {
421 for (i = 0; i < data->num_clks; i++) { 439 for (i = 0; i < data->num_clks; i++) {
422 hw = _sci_clk_build(p, data->dev, i); 440 hw = _sci_clk_build(p, data->dev, i);
423 if (!IS_ERR(hw)) { 441 if (!IS_ERR(hw)) {
424 p->clocks[i] = hw; 442 p->clocks[num_clks++] = hw;
425 continue; 443 continue;
426 } 444 }
427 445
diff --git a/drivers/clk/meson/clk-mpll.c b/drivers/clk/meson/clk-mpll.c
index 39eab69fe51a..44a5a535ca63 100644
--- a/drivers/clk/meson/clk-mpll.c
+++ b/drivers/clk/meson/clk-mpll.c
@@ -161,6 +161,13 @@ static int mpll_set_rate(struct clk_hw *hw,
161 reg = PARM_SET(p->width, p->shift, reg, 1); 161 reg = PARM_SET(p->width, p->shift, reg, 1);
162 writel(reg, mpll->base + p->reg_off); 162 writel(reg, mpll->base + p->reg_off);
163 163
164 p = &mpll->ssen;
165 if (p->width != 0) {
166 reg = readl(mpll->base + p->reg_off);
167 reg = PARM_SET(p->width, p->shift, reg, 1);
168 writel(reg, mpll->base + p->reg_off);
169 }
170
164 p = &mpll->n2; 171 p = &mpll->n2;
165 reg = readl(mpll->base + p->reg_off); 172 reg = readl(mpll->base + p->reg_off);
166 reg = PARM_SET(p->width, p->shift, reg, n2); 173 reg = PARM_SET(p->width, p->shift, reg, n2);
diff --git a/drivers/clk/meson/clkc.h b/drivers/clk/meson/clkc.h
index d6feafe8bd6c..1629da9b4141 100644
--- a/drivers/clk/meson/clkc.h
+++ b/drivers/clk/meson/clkc.h
@@ -118,6 +118,7 @@ struct meson_clk_mpll {
118 struct parm sdm_en; 118 struct parm sdm_en;
119 struct parm n2; 119 struct parm n2;
120 struct parm en; 120 struct parm en;
121 struct parm ssen;
121 spinlock_t *lock; 122 spinlock_t *lock;
122}; 123};
123 124
diff --git a/drivers/clk/meson/gxbb.c b/drivers/clk/meson/gxbb.c
index a897ea45327c..a7ea5f3da89d 100644
--- a/drivers/clk/meson/gxbb.c
+++ b/drivers/clk/meson/gxbb.c
@@ -528,6 +528,11 @@ static struct meson_clk_mpll gxbb_mpll0 = {
528 .shift = 14, 528 .shift = 14,
529 .width = 1, 529 .width = 1,
530 }, 530 },
531 .ssen = {
532 .reg_off = HHI_MPLL_CNTL,
533 .shift = 25,
534 .width = 1,
535 },
531 .lock = &clk_lock, 536 .lock = &clk_lock,
532 .hw.init = &(struct clk_init_data){ 537 .hw.init = &(struct clk_init_data){
533 .name = "mpll0", 538 .name = "mpll0",
diff --git a/drivers/clk/meson/meson8b.c b/drivers/clk/meson/meson8b.c
index bb3f1de876b1..6ec512ad2598 100644
--- a/drivers/clk/meson/meson8b.c
+++ b/drivers/clk/meson/meson8b.c
@@ -267,6 +267,11 @@ static struct meson_clk_mpll meson8b_mpll0 = {
267 .shift = 14, 267 .shift = 14,
268 .width = 1, 268 .width = 1,
269 }, 269 },
270 .ssen = {
271 .reg_off = HHI_MPLL_CNTL,
272 .shift = 25,
273 .width = 1,
274 },
270 .lock = &clk_lock, 275 .lock = &clk_lock,
271 .hw.init = &(struct clk_init_data){ 276 .hw.init = &(struct clk_init_data){
272 .name = "mpll0", 277 .name = "mpll0",
diff --git a/drivers/clk/samsung/clk-exynos5420.c b/drivers/clk/samsung/clk-exynos5420.c
index 0748a0b333c5..9a6476aa7d81 100644
--- a/drivers/clk/samsung/clk-exynos5420.c
+++ b/drivers/clk/samsung/clk-exynos5420.c
@@ -1283,16 +1283,16 @@ static const struct samsung_pll_rate_table exynos5420_pll2550x_24mhz_tbl[] __ini
1283static const struct samsung_pll_rate_table exynos5420_epll_24mhz_tbl[] = { 1283static const struct samsung_pll_rate_table exynos5420_epll_24mhz_tbl[] = {
1284 PLL_36XX_RATE(600000000U, 100, 2, 1, 0), 1284 PLL_36XX_RATE(600000000U, 100, 2, 1, 0),
1285 PLL_36XX_RATE(400000000U, 200, 3, 2, 0), 1285 PLL_36XX_RATE(400000000U, 200, 3, 2, 0),
1286 PLL_36XX_RATE(393216000U, 197, 3, 2, 25690), 1286 PLL_36XX_RATE(393216003U, 197, 3, 2, -25690),
1287 PLL_36XX_RATE(361267200U, 301, 5, 2, 3671), 1287 PLL_36XX_RATE(361267218U, 301, 5, 2, 3671),
1288 PLL_36XX_RATE(200000000U, 200, 3, 3, 0), 1288 PLL_36XX_RATE(200000000U, 200, 3, 3, 0),
1289 PLL_36XX_RATE(196608000U, 197, 3, 3, -25690), 1289 PLL_36XX_RATE(196608001U, 197, 3, 3, -25690),
1290 PLL_36XX_RATE(180633600U, 301, 5, 3, 3671), 1290 PLL_36XX_RATE(180633609U, 301, 5, 3, 3671),
1291 PLL_36XX_RATE(131072000U, 131, 3, 3, 4719), 1291 PLL_36XX_RATE(131072006U, 131, 3, 3, 4719),
1292 PLL_36XX_RATE(100000000U, 200, 3, 4, 0), 1292 PLL_36XX_RATE(100000000U, 200, 3, 4, 0),
1293 PLL_36XX_RATE(65536000U, 131, 3, 4, 4719), 1293 PLL_36XX_RATE( 65536003U, 131, 3, 4, 4719),
1294 PLL_36XX_RATE(49152000U, 197, 3, 5, 25690), 1294 PLL_36XX_RATE( 49152000U, 197, 3, 5, -25690),
1295 PLL_36XX_RATE(32768000U, 131, 3, 5, 4719), 1295 PLL_36XX_RATE( 32768001U, 131, 3, 5, 4719),
1296}; 1296};
1297 1297
1298static struct samsung_pll_clock exynos5x_plls[nr_plls] __initdata = { 1298static struct samsung_pll_clock exynos5x_plls[nr_plls] __initdata = {
diff --git a/drivers/clk/sunxi-ng/ccu-sun5i.c b/drivers/clk/sunxi-ng/ccu-sun5i.c
index 5372bf8be5e6..31d7ffda9aab 100644
--- a/drivers/clk/sunxi-ng/ccu-sun5i.c
+++ b/drivers/clk/sunxi-ng/ccu-sun5i.c
@@ -184,7 +184,7 @@ static struct ccu_mux cpu_clk = {
184 .hw.init = CLK_HW_INIT_PARENTS("cpu", 184 .hw.init = CLK_HW_INIT_PARENTS("cpu",
185 cpu_parents, 185 cpu_parents,
186 &ccu_mux_ops, 186 &ccu_mux_ops,
187 CLK_IS_CRITICAL), 187 CLK_SET_RATE_PARENT | CLK_IS_CRITICAL),
188 } 188 }
189}; 189};
190 190
diff --git a/drivers/clk/x86/clk-pmc-atom.c b/drivers/clk/x86/clk-pmc-atom.c
index f99abc1106f0..08ef69945ffb 100644
--- a/drivers/clk/x86/clk-pmc-atom.c
+++ b/drivers/clk/x86/clk-pmc-atom.c
@@ -186,6 +186,13 @@ static struct clk_plt *plt_clk_register(struct platform_device *pdev, int id,
186 pclk->reg = base + PMC_CLK_CTL_OFFSET + id * PMC_CLK_CTL_SIZE; 186 pclk->reg = base + PMC_CLK_CTL_OFFSET + id * PMC_CLK_CTL_SIZE;
187 spin_lock_init(&pclk->lock); 187 spin_lock_init(&pclk->lock);
188 188
189 /*
190 * If the clock was already enabled by the firmware mark it as critical
191 * to avoid it being gated by the clock framework if no driver owns it.
192 */
193 if (plt_clk_is_enabled(&pclk->hw))
194 init.flags |= CLK_IS_CRITICAL;
195
189 ret = devm_clk_hw_register(&pdev->dev, &pclk->hw); 196 ret = devm_clk_hw_register(&pdev->dev, &pclk->hw);
190 if (ret) { 197 if (ret) {
191 pclk = ERR_PTR(ret); 198 pclk = ERR_PTR(ret);
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
index 6cd503525638..0566455f233e 100644
--- a/drivers/cpufreq/intel_pstate.c
+++ b/drivers/cpufreq/intel_pstate.c
@@ -1922,13 +1922,6 @@ static int intel_pstate_init_cpu(unsigned int cpunum)
1922 return 0; 1922 return 0;
1923} 1923}
1924 1924
1925static unsigned int intel_pstate_get(unsigned int cpu_num)
1926{
1927 struct cpudata *cpu = all_cpu_data[cpu_num];
1928
1929 return cpu ? get_avg_frequency(cpu) : 0;
1930}
1931
1932static void intel_pstate_set_update_util_hook(unsigned int cpu_num) 1925static void intel_pstate_set_update_util_hook(unsigned int cpu_num)
1933{ 1926{
1934 struct cpudata *cpu = all_cpu_data[cpu_num]; 1927 struct cpudata *cpu = all_cpu_data[cpu_num];
@@ -2169,7 +2162,6 @@ static struct cpufreq_driver intel_pstate = {
2169 .setpolicy = intel_pstate_set_policy, 2162 .setpolicy = intel_pstate_set_policy,
2170 .suspend = intel_pstate_hwp_save_state, 2163 .suspend = intel_pstate_hwp_save_state,
2171 .resume = intel_pstate_resume, 2164 .resume = intel_pstate_resume,
2172 .get = intel_pstate_get,
2173 .init = intel_pstate_cpu_init, 2165 .init = intel_pstate_cpu_init,
2174 .exit = intel_pstate_cpu_exit, 2166 .exit = intel_pstate_cpu_exit,
2175 .stop_cpu = intel_pstate_stop_cpu, 2167 .stop_cpu = intel_pstate_stop_cpu,
diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig
index 193204dfbf3a..4b75084fabad 100644
--- a/drivers/crypto/Kconfig
+++ b/drivers/crypto/Kconfig
@@ -655,7 +655,7 @@ source "drivers/crypto/virtio/Kconfig"
655config CRYPTO_DEV_BCM_SPU 655config CRYPTO_DEV_BCM_SPU
656 tristate "Broadcom symmetric crypto/hash acceleration support" 656 tristate "Broadcom symmetric crypto/hash acceleration support"
657 depends on ARCH_BCM_IPROC 657 depends on ARCH_BCM_IPROC
658 depends on BCM_PDC_MBOX 658 depends on MAILBOX
659 default m 659 default m
660 select CRYPTO_DES 660 select CRYPTO_DES
661 select CRYPTO_MD5 661 select CRYPTO_MD5
diff --git a/drivers/crypto/bcm/spu2.c b/drivers/crypto/bcm/spu2.c
index ef04c9748317..bf7ac621c591 100644
--- a/drivers/crypto/bcm/spu2.c
+++ b/drivers/crypto/bcm/spu2.c
@@ -302,6 +302,7 @@ spu2_hash_xlate(enum hash_alg hash_alg, enum hash_mode hash_mode,
302 break; 302 break;
303 case HASH_ALG_SHA3_512: 303 case HASH_ALG_SHA3_512:
304 *spu2_type = SPU2_HASH_TYPE_SHA3_512; 304 *spu2_type = SPU2_HASH_TYPE_SHA3_512;
305 break;
305 case HASH_ALG_LAST: 306 case HASH_ALG_LAST:
306 default: 307 default:
307 err = -EINVAL; 308 err = -EINVAL;
diff --git a/drivers/crypto/cavium/nitrox/nitrox_main.c b/drivers/crypto/cavium/nitrox/nitrox_main.c
index ae44a464cd2d..9ccefb9b7232 100644
--- a/drivers/crypto/cavium/nitrox/nitrox_main.c
+++ b/drivers/crypto/cavium/nitrox/nitrox_main.c
@@ -18,8 +18,9 @@
18#define SE_GROUP 0 18#define SE_GROUP 0
19 19
20#define DRIVER_VERSION "1.0" 20#define DRIVER_VERSION "1.0"
21#define FW_DIR "cavium/"
21/* SE microcode */ 22/* SE microcode */
22#define SE_FW "cnn55xx_se.fw" 23#define SE_FW FW_DIR "cnn55xx_se.fw"
23 24
24static const char nitrox_driver_name[] = "CNN55XX"; 25static const char nitrox_driver_name[] = "CNN55XX";
25 26
diff --git a/drivers/crypto/inside-secure/safexcel.c b/drivers/crypto/inside-secure/safexcel.c
index e7f87ac12685..1fabd4aee81b 100644
--- a/drivers/crypto/inside-secure/safexcel.c
+++ b/drivers/crypto/inside-secure/safexcel.c
@@ -773,7 +773,6 @@ static int safexcel_probe(struct platform_device *pdev)
773 struct device *dev = &pdev->dev; 773 struct device *dev = &pdev->dev;
774 struct resource *res; 774 struct resource *res;
775 struct safexcel_crypto_priv *priv; 775 struct safexcel_crypto_priv *priv;
776 u64 dma_mask;
777 int i, ret; 776 int i, ret;
778 777
779 priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); 778 priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL);
@@ -802,9 +801,7 @@ static int safexcel_probe(struct platform_device *pdev)
802 return -EPROBE_DEFER; 801 return -EPROBE_DEFER;
803 } 802 }
804 803
805 if (of_property_read_u64(dev->of_node, "dma-mask", &dma_mask)) 804 ret = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64));
806 dma_mask = DMA_BIT_MASK(64);
807 ret = dma_set_mask_and_coherent(dev, dma_mask);
808 if (ret) 805 if (ret)
809 goto err_clk; 806 goto err_clk;
810 807
diff --git a/drivers/crypto/inside-secure/safexcel_hash.c b/drivers/crypto/inside-secure/safexcel_hash.c
index 8527a5899a2f..3f819399cd95 100644
--- a/drivers/crypto/inside-secure/safexcel_hash.c
+++ b/drivers/crypto/inside-secure/safexcel_hash.c
@@ -883,10 +883,7 @@ static int safexcel_hmac_sha1_setkey(struct crypto_ahash *tfm, const u8 *key,
883 if (ret) 883 if (ret)
884 return ret; 884 return ret;
885 885
886 memcpy(ctx->ipad, &istate.state, SHA1_DIGEST_SIZE); 886 for (i = 0; i < SHA1_DIGEST_SIZE / sizeof(u32); i++) {
887 memcpy(ctx->opad, &ostate.state, SHA1_DIGEST_SIZE);
888
889 for (i = 0; i < ARRAY_SIZE(istate.state); i++) {
890 if (ctx->ipad[i] != le32_to_cpu(istate.state[i]) || 887 if (ctx->ipad[i] != le32_to_cpu(istate.state[i]) ||
891 ctx->opad[i] != le32_to_cpu(ostate.state[i])) { 888 ctx->opad[i] != le32_to_cpu(ostate.state[i])) {
892 ctx->base.needs_inv = true; 889 ctx->base.needs_inv = true;
@@ -894,6 +891,9 @@ static int safexcel_hmac_sha1_setkey(struct crypto_ahash *tfm, const u8 *key,
894 } 891 }
895 } 892 }
896 893
894 memcpy(ctx->ipad, &istate.state, SHA1_DIGEST_SIZE);
895 memcpy(ctx->opad, &ostate.state, SHA1_DIGEST_SIZE);
896
897 return 0; 897 return 0;
898} 898}
899 899
diff --git a/drivers/dax/super.c b/drivers/dax/super.c
index ce9e563e6e1d..938eb4868f7f 100644
--- a/drivers/dax/super.c
+++ b/drivers/dax/super.c
@@ -278,6 +278,12 @@ void dax_write_cache(struct dax_device *dax_dev, bool wc)
278} 278}
279EXPORT_SYMBOL_GPL(dax_write_cache); 279EXPORT_SYMBOL_GPL(dax_write_cache);
280 280
281bool dax_write_cache_enabled(struct dax_device *dax_dev)
282{
283 return test_bit(DAXDEV_WRITE_CACHE, &dax_dev->flags);
284}
285EXPORT_SYMBOL_GPL(dax_write_cache_enabled);
286
281bool dax_alive(struct dax_device *dax_dev) 287bool dax_alive(struct dax_device *dax_dev)
282{ 288{
283 lockdep_assert_held(&dax_srcu); 289 lockdep_assert_held(&dax_srcu);
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index f235eae04c16..461d6fc3688b 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -504,6 +504,7 @@ config GPIO_XGENE_SB
504 depends on ARCH_XGENE && OF_GPIO 504 depends on ARCH_XGENE && OF_GPIO
505 select GPIO_GENERIC 505 select GPIO_GENERIC
506 select GPIOLIB_IRQCHIP 506 select GPIOLIB_IRQCHIP
507 select IRQ_DOMAIN_HIERARCHY
507 help 508 help
508 This driver supports the GPIO block within the APM X-Gene 509 This driver supports the GPIO block within the APM X-Gene
509 Standby Domain. Say yes here to enable the GPIO functionality. 510 Standby Domain. Say yes here to enable the GPIO functionality.
diff --git a/drivers/gpio/gpio-exar.c b/drivers/gpio/gpio-exar.c
index fb8d304cfa17..0ecd2369c2ca 100644
--- a/drivers/gpio/gpio-exar.c
+++ b/drivers/gpio/gpio-exar.c
@@ -132,7 +132,7 @@ static int gpio_exar_probe(struct platform_device *pdev)
132 if (!p) 132 if (!p)
133 return -ENOMEM; 133 return -ENOMEM;
134 134
135 ret = device_property_read_u32(&pdev->dev, "linux,first-pin", 135 ret = device_property_read_u32(&pdev->dev, "exar,first-pin",
136 &first_pin); 136 &first_pin);
137 if (ret) 137 if (ret)
138 return ret; 138 return ret;
diff --git a/drivers/gpio/gpio-lp87565.c b/drivers/gpio/gpio-lp87565.c
index 6313c50bb91b..a121c8f10610 100644
--- a/drivers/gpio/gpio-lp87565.c
+++ b/drivers/gpio/gpio-lp87565.c
@@ -26,6 +26,27 @@ struct lp87565_gpio {
26 struct regmap *map; 26 struct regmap *map;
27}; 27};
28 28
29static int lp87565_gpio_get(struct gpio_chip *chip, unsigned int offset)
30{
31 struct lp87565_gpio *gpio = gpiochip_get_data(chip);
32 int ret, val;
33
34 ret = regmap_read(gpio->map, LP87565_REG_GPIO_IN, &val);
35 if (ret < 0)
36 return ret;
37
38 return !!(val & BIT(offset));
39}
40
41static void lp87565_gpio_set(struct gpio_chip *chip, unsigned int offset,
42 int value)
43{
44 struct lp87565_gpio *gpio = gpiochip_get_data(chip);
45
46 regmap_update_bits(gpio->map, LP87565_REG_GPIO_OUT,
47 BIT(offset), value ? BIT(offset) : 0);
48}
49
29static int lp87565_gpio_get_direction(struct gpio_chip *chip, 50static int lp87565_gpio_get_direction(struct gpio_chip *chip,
30 unsigned int offset) 51 unsigned int offset)
31{ 52{
@@ -54,30 +75,11 @@ static int lp87565_gpio_direction_output(struct gpio_chip *chip,
54{ 75{
55 struct lp87565_gpio *gpio = gpiochip_get_data(chip); 76 struct lp87565_gpio *gpio = gpiochip_get_data(chip);
56 77
78 lp87565_gpio_set(chip, offset, value);
79
57 return regmap_update_bits(gpio->map, 80 return regmap_update_bits(gpio->map,
58 LP87565_REG_GPIO_CONFIG, 81 LP87565_REG_GPIO_CONFIG,
59 BIT(offset), !value ? BIT(offset) : 0); 82 BIT(offset), BIT(offset));
60}
61
62static int lp87565_gpio_get(struct gpio_chip *chip, unsigned int offset)
63{
64 struct lp87565_gpio *gpio = gpiochip_get_data(chip);
65 int ret, val;
66
67 ret = regmap_read(gpio->map, LP87565_REG_GPIO_IN, &val);
68 if (ret < 0)
69 return ret;
70
71 return !!(val & BIT(offset));
72}
73
74static void lp87565_gpio_set(struct gpio_chip *chip, unsigned int offset,
75 int value)
76{
77 struct lp87565_gpio *gpio = gpiochip_get_data(chip);
78
79 regmap_update_bits(gpio->map, LP87565_REG_GPIO_OUT,
80 BIT(offset), value ? BIT(offset) : 0);
81} 83}
82 84
83static int lp87565_gpio_request(struct gpio_chip *gc, unsigned int offset) 85static int lp87565_gpio_request(struct gpio_chip *gc, unsigned int offset)
diff --git a/drivers/gpio/gpio-mxc.c b/drivers/gpio/gpio-mxc.c
index 3abea3f0b307..92692251ade1 100644
--- a/drivers/gpio/gpio-mxc.c
+++ b/drivers/gpio/gpio-mxc.c
@@ -424,6 +424,9 @@ static int mxc_gpio_probe(struct platform_device *pdev)
424 return PTR_ERR(port->base); 424 return PTR_ERR(port->base);
425 425
426 port->irq_high = platform_get_irq(pdev, 1); 426 port->irq_high = platform_get_irq(pdev, 1);
427 if (port->irq_high < 0)
428 port->irq_high = 0;
429
427 port->irq = platform_get_irq(pdev, 0); 430 port->irq = platform_get_irq(pdev, 0);
428 if (port->irq < 0) 431 if (port->irq < 0)
429 return port->irq; 432 return port->irq;
diff --git a/drivers/gpio/gpio-tegra.c b/drivers/gpio/gpio-tegra.c
index 88529d3c06c9..506c6a67c5fc 100644
--- a/drivers/gpio/gpio-tegra.c
+++ b/drivers/gpio/gpio-tegra.c
@@ -360,7 +360,7 @@ static void tegra_gpio_irq_handler(struct irq_desc *desc)
360{ 360{
361 int port; 361 int port;
362 int pin; 362 int pin;
363 int unmasked = 0; 363 bool unmasked = false;
364 int gpio; 364 int gpio;
365 u32 lvl; 365 u32 lvl;
366 unsigned long sta; 366 unsigned long sta;
@@ -384,8 +384,8 @@ static void tegra_gpio_irq_handler(struct irq_desc *desc)
384 * before executing the handler so that we don't 384 * before executing the handler so that we don't
385 * miss edges 385 * miss edges
386 */ 386 */
387 if (lvl & (0x100 << pin)) { 387 if (!unmasked && lvl & (0x100 << pin)) {
388 unmasked = 1; 388 unmasked = true;
389 chained_irq_exit(chip, desc); 389 chained_irq_exit(chip, desc);
390 } 390 }
391 391
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
index 9568708a550b..cd003b74512f 100644
--- a/drivers/gpio/gpiolib.c
+++ b/drivers/gpio/gpiolib.c
@@ -704,24 +704,23 @@ static irqreturn_t lineevent_irq_thread(int irq, void *p)
704{ 704{
705 struct lineevent_state *le = p; 705 struct lineevent_state *le = p;
706 struct gpioevent_data ge; 706 struct gpioevent_data ge;
707 int ret; 707 int ret, level;
708 708
709 ge.timestamp = ktime_get_real_ns(); 709 ge.timestamp = ktime_get_real_ns();
710 level = gpiod_get_value_cansleep(le->desc);
710 711
711 if (le->eflags & GPIOEVENT_REQUEST_RISING_EDGE 712 if (le->eflags & GPIOEVENT_REQUEST_RISING_EDGE
712 && le->eflags & GPIOEVENT_REQUEST_FALLING_EDGE) { 713 && le->eflags & GPIOEVENT_REQUEST_FALLING_EDGE) {
713 int level = gpiod_get_value_cansleep(le->desc);
714
715 if (level) 714 if (level)
716 /* Emit low-to-high event */ 715 /* Emit low-to-high event */
717 ge.id = GPIOEVENT_EVENT_RISING_EDGE; 716 ge.id = GPIOEVENT_EVENT_RISING_EDGE;
718 else 717 else
719 /* Emit high-to-low event */ 718 /* Emit high-to-low event */
720 ge.id = GPIOEVENT_EVENT_FALLING_EDGE; 719 ge.id = GPIOEVENT_EVENT_FALLING_EDGE;
721 } else if (le->eflags & GPIOEVENT_REQUEST_RISING_EDGE) { 720 } else if (le->eflags & GPIOEVENT_REQUEST_RISING_EDGE && level) {
722 /* Emit low-to-high event */ 721 /* Emit low-to-high event */
723 ge.id = GPIOEVENT_EVENT_RISING_EDGE; 722 ge.id = GPIOEVENT_EVENT_RISING_EDGE;
724 } else if (le->eflags & GPIOEVENT_REQUEST_FALLING_EDGE) { 723 } else if (le->eflags & GPIOEVENT_REQUEST_FALLING_EDGE && !level) {
725 /* Emit high-to-low event */ 724 /* Emit high-to-low event */
726 ge.id = GPIOEVENT_EVENT_FALLING_EDGE; 725 ge.id = GPIOEVENT_EVENT_FALLING_EDGE;
727 } else { 726 } else {
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
index f621ee115c98..5e771bc11b00 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
@@ -198,12 +198,16 @@ amdgpu_bo_list_get(struct amdgpu_fpriv *fpriv, int id)
198 result = idr_find(&fpriv->bo_list_handles, id); 198 result = idr_find(&fpriv->bo_list_handles, id);
199 199
200 if (result) { 200 if (result) {
201 if (kref_get_unless_zero(&result->refcount)) 201 if (kref_get_unless_zero(&result->refcount)) {
202 rcu_read_unlock();
202 mutex_lock(&result->lock); 203 mutex_lock(&result->lock);
203 else 204 } else {
205 rcu_read_unlock();
204 result = NULL; 206 result = NULL;
207 }
208 } else {
209 rcu_read_unlock();
205 } 210 }
206 rcu_read_unlock();
207 211
208 return result; 212 return result;
209} 213}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c
index 38f739fb727b..6558a3ed57a7 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c
@@ -359,7 +359,7 @@ void amdgpu_mn_unregister(struct amdgpu_bo *bo)
359 head = bo->mn_list.next; 359 head = bo->mn_list.next;
360 360
361 bo->mn = NULL; 361 bo->mn = NULL;
362 list_del(&bo->mn_list); 362 list_del_init(&bo->mn_list);
363 363
364 if (list_empty(head)) { 364 if (list_empty(head)) {
365 struct amdgpu_mn_node *node; 365 struct amdgpu_mn_node *node;
diff --git a/drivers/gpu/drm/amd/amdgpu/clearstate_gfx9.h b/drivers/gpu/drm/amd/amdgpu/clearstate_gfx9.h
index 18fd01f3e4b2..003a131bad47 100644
--- a/drivers/gpu/drm/amd/amdgpu/clearstate_gfx9.h
+++ b/drivers/gpu/drm/amd/amdgpu/clearstate_gfx9.h
@@ -1,24 +1,25 @@
1
2/* 1/*
3*************************************************************************************************** 2 * Copyright 2017 Advanced Micro Devices, Inc.
4* 3 *
5* Trade secret of Advanced Micro Devices, Inc. 4 * Permission is hereby granted, free of charge, to any person obtaining a
6* Copyright (c) 2010 Advanced Micro Devices, Inc. (unpublished) 5 * copy of this software and associated documentation files (the "Software"),
7* 6 * to deal in the Software without restriction, including without limitation
8* All rights reserved. This notice is intended as a precaution against inadvertent publication and 7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9* does not imply publication or any waiver of confidentiality. The year included in the foregoing 8 * and/or sell copies of the Software, and to permit persons to whom the
10* notice is the year of creation of the work. 9 * Software is furnished to do so, subject to the following conditions:
11* 10 *
12*************************************************************************************************** 11 * The above copyright notice and this permission notice shall be included in
13*/ 12 * all copies or substantial portions of the Software.
14/** 13 *
15*************************************************************************************************** 14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16* @brief gfx9 Clearstate Definitions 15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17*************************************************************************************************** 16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18* 17 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
19* Do not edit! This is a machine-generated file! 18 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
20* 19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
21*/ 20 * OTHER DEALINGS IN THE SOFTWARE.
21 *
22 */
22 23
23static const unsigned int gfx9_SECT_CONTEXT_def_1[] = 24static const unsigned int gfx9_SECT_CONTEXT_def_1[] =
24{ 25{
diff --git a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
index 3a0b69b09ed6..c9b9c88231aa 100644
--- a/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
@@ -1475,21 +1475,23 @@ static void gfx_v9_0_tiling_mode_table_init(struct amdgpu_device *adev)
1475 1475
1476static void gfx_v9_0_select_se_sh(struct amdgpu_device *adev, u32 se_num, u32 sh_num, u32 instance) 1476static void gfx_v9_0_select_se_sh(struct amdgpu_device *adev, u32 se_num, u32 sh_num, u32 instance)
1477{ 1477{
1478 u32 data = REG_SET_FIELD(0, GRBM_GFX_INDEX, INSTANCE_BROADCAST_WRITES, 1); 1478 u32 data;
1479 1479
1480 if ((se_num == 0xffffffff) && (sh_num == 0xffffffff)) { 1480 if (instance == 0xffffffff)
1481 data = REG_SET_FIELD(data, GRBM_GFX_INDEX, SH_BROADCAST_WRITES, 1); 1481 data = REG_SET_FIELD(0, GRBM_GFX_INDEX, INSTANCE_BROADCAST_WRITES, 1);
1482 data = REG_SET_FIELD(data, GRBM_GFX_INDEX, SE_BROADCAST_WRITES, 1); 1482 else
1483 } else if (se_num == 0xffffffff) { 1483 data = REG_SET_FIELD(0, GRBM_GFX_INDEX, INSTANCE_INDEX, instance);
1484 data = REG_SET_FIELD(data, GRBM_GFX_INDEX, SH_INDEX, sh_num); 1484
1485 if (se_num == 0xffffffff)
1485 data = REG_SET_FIELD(data, GRBM_GFX_INDEX, SE_BROADCAST_WRITES, 1); 1486 data = REG_SET_FIELD(data, GRBM_GFX_INDEX, SE_BROADCAST_WRITES, 1);
1486 } else if (sh_num == 0xffffffff) { 1487 else
1487 data = REG_SET_FIELD(data, GRBM_GFX_INDEX, SH_BROADCAST_WRITES, 1);
1488 data = REG_SET_FIELD(data, GRBM_GFX_INDEX, SE_INDEX, se_num); 1488 data = REG_SET_FIELD(data, GRBM_GFX_INDEX, SE_INDEX, se_num);
1489 } else { 1489
1490 if (sh_num == 0xffffffff)
1491 data = REG_SET_FIELD(data, GRBM_GFX_INDEX, SH_BROADCAST_WRITES, 1);
1492 else
1490 data = REG_SET_FIELD(data, GRBM_GFX_INDEX, SH_INDEX, sh_num); 1493 data = REG_SET_FIELD(data, GRBM_GFX_INDEX, SH_INDEX, sh_num);
1491 data = REG_SET_FIELD(data, GRBM_GFX_INDEX, SE_INDEX, se_num); 1494
1492 }
1493 WREG32_SOC15(GC, 0, mmGRBM_GFX_INDEX, data); 1495 WREG32_SOC15(GC, 0, mmGRBM_GFX_INDEX, data);
1494} 1496}
1495 1497
diff --git a/drivers/gpu/drm/amd/amdgpu/si.c b/drivers/gpu/drm/amd/amdgpu/si.c
index f45fb0f022b3..4267fa417997 100644
--- a/drivers/gpu/drm/amd/amdgpu/si.c
+++ b/drivers/gpu/drm/amd/amdgpu/si.c
@@ -1385,6 +1385,7 @@ static void si_init_golden_registers(struct amdgpu_device *adev)
1385 amdgpu_program_register_sequence(adev, 1385 amdgpu_program_register_sequence(adev,
1386 pitcairn_mgcg_cgcg_init, 1386 pitcairn_mgcg_cgcg_init,
1387 (const u32)ARRAY_SIZE(pitcairn_mgcg_cgcg_init)); 1387 (const u32)ARRAY_SIZE(pitcairn_mgcg_cgcg_init));
1388 break;
1388 case CHIP_VERDE: 1389 case CHIP_VERDE:
1389 amdgpu_program_register_sequence(adev, 1390 amdgpu_program_register_sequence(adev,
1390 verde_golden_registers, 1391 verde_golden_registers,
@@ -1409,6 +1410,7 @@ static void si_init_golden_registers(struct amdgpu_device *adev)
1409 amdgpu_program_register_sequence(adev, 1410 amdgpu_program_register_sequence(adev,
1410 oland_mgcg_cgcg_init, 1411 oland_mgcg_cgcg_init,
1411 (const u32)ARRAY_SIZE(oland_mgcg_cgcg_init)); 1412 (const u32)ARRAY_SIZE(oland_mgcg_cgcg_init));
1413 break;
1412 case CHIP_HAINAN: 1414 case CHIP_HAINAN:
1413 amdgpu_program_register_sequence(adev, 1415 amdgpu_program_register_sequence(adev,
1414 hainan_golden_registers, 1416 hainan_golden_registers,
diff --git a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
index d6f097f44b6c..197174e562d2 100644
--- a/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
+++ b/drivers/gpu/drm/amd/powerplay/hwmgr/vega10_hwmgr.c
@@ -2128,15 +2128,9 @@ static int vega10_populate_avfs_parameters(struct pp_hwmgr *hwmgr)
2128 pp_table->AvfsGbCksOff.m2_shift = 12; 2128 pp_table->AvfsGbCksOff.m2_shift = 12;
2129 pp_table->AvfsGbCksOff.b_shift = 0; 2129 pp_table->AvfsGbCksOff.b_shift = 0;
2130 2130
2131 for (i = 0; i < dep_table->count; i++) { 2131 for (i = 0; i < dep_table->count; i++)
2132 if (dep_table->entries[i].sclk_offset == 0) 2132 pp_table->StaticVoltageOffsetVid[i] =
2133 pp_table->StaticVoltageOffsetVid[i] = 248; 2133 convert_to_vid((uint8_t)(dep_table->entries[i].sclk_offset));
2134 else
2135 pp_table->StaticVoltageOffsetVid[i] =
2136 (uint8_t)(dep_table->entries[i].sclk_offset *
2137 VOLTAGE_VID_OFFSET_SCALE2 /
2138 VOLTAGE_VID_OFFSET_SCALE1);
2139 }
2140 2134
2141 if ((PPREGKEY_VEGA10QUADRATICEQUATION_DFLT != 2135 if ((PPREGKEY_VEGA10QUADRATICEQUATION_DFLT !=
2142 data->disp_clk_quad_eqn_a) && 2136 data->disp_clk_quad_eqn_a) &&
diff --git a/drivers/gpu/drm/drm_dp_helper.c b/drivers/gpu/drm/drm_dp_helper.c
index 213fb837e1c4..08af8d6b844b 100644
--- a/drivers/gpu/drm/drm_dp_helper.c
+++ b/drivers/gpu/drm/drm_dp_helper.c
@@ -544,7 +544,7 @@ void drm_dp_downstream_debug(struct seq_file *m,
544 DP_DETAILED_CAP_INFO_AVAILABLE; 544 DP_DETAILED_CAP_INFO_AVAILABLE;
545 int clk; 545 int clk;
546 int bpc; 546 int bpc;
547 char id[6]; 547 char id[7];
548 int len; 548 int len;
549 uint8_t rev[2]; 549 uint8_t rev[2];
550 int type = port_cap[0] & DP_DS_PORT_TYPE_MASK; 550 int type = port_cap[0] & DP_DS_PORT_TYPE_MASK;
@@ -583,6 +583,7 @@ void drm_dp_downstream_debug(struct seq_file *m,
583 seq_puts(m, "\t\tType: N/A\n"); 583 seq_puts(m, "\t\tType: N/A\n");
584 } 584 }
585 585
586 memset(id, 0, sizeof(id));
586 drm_dp_downstream_id(aux, id); 587 drm_dp_downstream_id(aux, id);
587 seq_printf(m, "\t\tID: %s\n", id); 588 seq_printf(m, "\t\tID: %s\n", id);
588 589
@@ -591,7 +592,7 @@ void drm_dp_downstream_debug(struct seq_file *m,
591 seq_printf(m, "\t\tHW: %d.%d\n", 592 seq_printf(m, "\t\tHW: %d.%d\n",
592 (rev[0] & 0xf0) >> 4, rev[0] & 0xf); 593 (rev[0] & 0xf0) >> 4, rev[0] & 0xf);
593 594
594 len = drm_dp_dpcd_read(aux, DP_BRANCH_SW_REV, &rev, 2); 595 len = drm_dp_dpcd_read(aux, DP_BRANCH_SW_REV, rev, 2);
595 if (len > 0) 596 if (len > 0)
596 seq_printf(m, "\t\tSW: %d.%d\n", rev[0], rev[1]); 597 seq_printf(m, "\t\tSW: %d.%d\n", rev[0], rev[1]);
597 598
diff --git a/drivers/gpu/drm/exynos/Kconfig b/drivers/gpu/drm/exynos/Kconfig
index 1d185347c64c..305dc3d4ff77 100644
--- a/drivers/gpu/drm/exynos/Kconfig
+++ b/drivers/gpu/drm/exynos/Kconfig
@@ -75,6 +75,7 @@ config DRM_EXYNOS_DP
75config DRM_EXYNOS_HDMI 75config DRM_EXYNOS_HDMI
76 bool "HDMI" 76 bool "HDMI"
77 depends on DRM_EXYNOS_MIXER || DRM_EXYNOS5433_DECON 77 depends on DRM_EXYNOS_MIXER || DRM_EXYNOS5433_DECON
78 select CEC_CORE if CEC_NOTIFIER
78 help 79 help
79 Choose this option if you want to use Exynos HDMI for DRM. 80 Choose this option if you want to use Exynos HDMI for DRM.
80 81
diff --git a/drivers/gpu/drm/exynos/exynos_drm_drv.c b/drivers/gpu/drm/exynos/exynos_drm_drv.c
index 35a8dfc93836..242bd50faa26 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_drv.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_drv.c
@@ -453,7 +453,6 @@ static int exynos_drm_platform_probe(struct platform_device *pdev)
453 struct component_match *match; 453 struct component_match *match;
454 454
455 pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); 455 pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32);
456 exynos_drm_driver.num_ioctls = ARRAY_SIZE(exynos_ioctls);
457 456
458 match = exynos_drm_match_add(&pdev->dev); 457 match = exynos_drm_match_add(&pdev->dev);
459 if (IS_ERR(match)) 458 if (IS_ERR(match))
diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
index a11b79596e2f..b6a46d9a016e 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c
@@ -1651,8 +1651,6 @@ static int exynos_dsi_parse_dt(struct exynos_dsi *dsi)
1651 return ret; 1651 return ret;
1652 1652
1653 dsi->bridge_node = of_graph_get_remote_node(node, DSI_PORT_IN, 0); 1653 dsi->bridge_node = of_graph_get_remote_node(node, DSI_PORT_IN, 0);
1654 if (!dsi->bridge_node)
1655 return -EINVAL;
1656 1654
1657 return 0; 1655 return 0;
1658} 1656}
@@ -1687,9 +1685,11 @@ static int exynos_dsi_bind(struct device *dev, struct device *master,
1687 return ret; 1685 return ret;
1688 } 1686 }
1689 1687
1690 bridge = of_drm_find_bridge(dsi->bridge_node); 1688 if (dsi->bridge_node) {
1691 if (bridge) 1689 bridge = of_drm_find_bridge(dsi->bridge_node);
1692 drm_bridge_attach(encoder, bridge, NULL); 1690 if (bridge)
1691 drm_bridge_attach(encoder, bridge, NULL);
1692 }
1693 1693
1694 return mipi_dsi_host_register(&dsi->dsi_host); 1694 return mipi_dsi_host_register(&dsi->dsi_host);
1695} 1695}
diff --git a/drivers/gpu/drm/exynos/exynos_drm_mic.c b/drivers/gpu/drm/exynos/exynos_drm_mic.c
index e45720543a45..16bbee897e0d 100644
--- a/drivers/gpu/drm/exynos/exynos_drm_mic.c
+++ b/drivers/gpu/drm/exynos/exynos_drm_mic.c
@@ -340,16 +340,10 @@ static int exynos_mic_bind(struct device *dev, struct device *master,
340 void *data) 340 void *data)
341{ 341{
342 struct exynos_mic *mic = dev_get_drvdata(dev); 342 struct exynos_mic *mic = dev_get_drvdata(dev);
343 int ret;
344 343
345 mic->bridge.funcs = &mic_bridge_funcs;
346 mic->bridge.of_node = dev->of_node;
347 mic->bridge.driver_private = mic; 344 mic->bridge.driver_private = mic;
348 ret = drm_bridge_add(&mic->bridge);
349 if (ret)
350 DRM_ERROR("mic: Failed to add MIC to the global bridge list\n");
351 345
352 return ret; 346 return 0;
353} 347}
354 348
355static void exynos_mic_unbind(struct device *dev, struct device *master, 349static void exynos_mic_unbind(struct device *dev, struct device *master,
@@ -365,8 +359,6 @@ static void exynos_mic_unbind(struct device *dev, struct device *master,
365 359
366already_disabled: 360already_disabled:
367 mutex_unlock(&mic_mutex); 361 mutex_unlock(&mic_mutex);
368
369 drm_bridge_remove(&mic->bridge);
370} 362}
371 363
372static const struct component_ops exynos_mic_component_ops = { 364static const struct component_ops exynos_mic_component_ops = {
@@ -461,6 +453,15 @@ static int exynos_mic_probe(struct platform_device *pdev)
461 453
462 platform_set_drvdata(pdev, mic); 454 platform_set_drvdata(pdev, mic);
463 455
456 mic->bridge.funcs = &mic_bridge_funcs;
457 mic->bridge.of_node = dev->of_node;
458
459 ret = drm_bridge_add(&mic->bridge);
460 if (ret) {
461 DRM_ERROR("mic: Failed to add MIC to the global bridge list\n");
462 return ret;
463 }
464
464 pm_runtime_enable(dev); 465 pm_runtime_enable(dev);
465 466
466 ret = component_add(dev, &exynos_mic_component_ops); 467 ret = component_add(dev, &exynos_mic_component_ops);
@@ -479,8 +480,13 @@ err:
479 480
480static int exynos_mic_remove(struct platform_device *pdev) 481static int exynos_mic_remove(struct platform_device *pdev)
481{ 482{
483 struct exynos_mic *mic = platform_get_drvdata(pdev);
484
482 component_del(&pdev->dev, &exynos_mic_component_ops); 485 component_del(&pdev->dev, &exynos_mic_component_ops);
483 pm_runtime_disable(&pdev->dev); 486 pm_runtime_disable(&pdev->dev);
487
488 drm_bridge_remove(&mic->bridge);
489
484 return 0; 490 return 0;
485} 491}
486 492
diff --git a/drivers/gpu/drm/exynos/exynos_hdmi.c b/drivers/gpu/drm/exynos/exynos_hdmi.c
index 06bfbe400cf1..d3b69d66736f 100644
--- a/drivers/gpu/drm/exynos/exynos_hdmi.c
+++ b/drivers/gpu/drm/exynos/exynos_hdmi.c
@@ -1501,8 +1501,6 @@ static void hdmi_disable(struct drm_encoder *encoder)
1501 */ 1501 */
1502 cancel_delayed_work(&hdata->hotplug_work); 1502 cancel_delayed_work(&hdata->hotplug_work);
1503 cec_notifier_set_phys_addr(hdata->notifier, CEC_PHYS_ADDR_INVALID); 1503 cec_notifier_set_phys_addr(hdata->notifier, CEC_PHYS_ADDR_INVALID);
1504
1505 hdmiphy_disable(hdata);
1506} 1504}
1507 1505
1508static const struct drm_encoder_helper_funcs exynos_hdmi_encoder_helper_funcs = { 1506static const struct drm_encoder_helper_funcs exynos_hdmi_encoder_helper_funcs = {
@@ -1676,7 +1674,7 @@ static int hdmi_resources_init(struct hdmi_context *hdata)
1676 return hdmi_bridge_init(hdata); 1674 return hdmi_bridge_init(hdata);
1677} 1675}
1678 1676
1679static struct of_device_id hdmi_match_types[] = { 1677static const struct of_device_id hdmi_match_types[] = {
1680 { 1678 {
1681 .compatible = "samsung,exynos4210-hdmi", 1679 .compatible = "samsung,exynos4210-hdmi",
1682 .data = &exynos4210_hdmi_driver_data, 1680 .data = &exynos4210_hdmi_driver_data,
@@ -1934,8 +1932,7 @@ static int hdmi_remove(struct platform_device *pdev)
1934 return 0; 1932 return 0;
1935} 1933}
1936 1934
1937#ifdef CONFIG_PM 1935static int __maybe_unused exynos_hdmi_suspend(struct device *dev)
1938static int exynos_hdmi_suspend(struct device *dev)
1939{ 1936{
1940 struct hdmi_context *hdata = dev_get_drvdata(dev); 1937 struct hdmi_context *hdata = dev_get_drvdata(dev);
1941 1938
@@ -1944,7 +1941,7 @@ static int exynos_hdmi_suspend(struct device *dev)
1944 return 0; 1941 return 0;
1945} 1942}
1946 1943
1947static int exynos_hdmi_resume(struct device *dev) 1944static int __maybe_unused exynos_hdmi_resume(struct device *dev)
1948{ 1945{
1949 struct hdmi_context *hdata = dev_get_drvdata(dev); 1946 struct hdmi_context *hdata = dev_get_drvdata(dev);
1950 int ret; 1947 int ret;
@@ -1955,7 +1952,6 @@ static int exynos_hdmi_resume(struct device *dev)
1955 1952
1956 return 0; 1953 return 0;
1957} 1954}
1958#endif
1959 1955
1960static const struct dev_pm_ops exynos_hdmi_pm_ops = { 1956static const struct dev_pm_ops exynos_hdmi_pm_ops = {
1961 SET_RUNTIME_PM_OPS(exynos_hdmi_suspend, exynos_hdmi_resume, NULL) 1957 SET_RUNTIME_PM_OPS(exynos_hdmi_suspend, exynos_hdmi_resume, NULL)
diff --git a/drivers/gpu/drm/exynos/exynos_mixer.c b/drivers/gpu/drm/exynos/exynos_mixer.c
index 6bed4f3ffcd6..a998a8dd783c 100644
--- a/drivers/gpu/drm/exynos/exynos_mixer.c
+++ b/drivers/gpu/drm/exynos/exynos_mixer.c
@@ -1094,28 +1094,28 @@ static const struct exynos_drm_crtc_ops mixer_crtc_ops = {
1094 .atomic_check = mixer_atomic_check, 1094 .atomic_check = mixer_atomic_check,
1095}; 1095};
1096 1096
1097static struct mixer_drv_data exynos5420_mxr_drv_data = { 1097static const struct mixer_drv_data exynos5420_mxr_drv_data = {
1098 .version = MXR_VER_128_0_0_184, 1098 .version = MXR_VER_128_0_0_184,
1099 .is_vp_enabled = 0, 1099 .is_vp_enabled = 0,
1100}; 1100};
1101 1101
1102static struct mixer_drv_data exynos5250_mxr_drv_data = { 1102static const struct mixer_drv_data exynos5250_mxr_drv_data = {
1103 .version = MXR_VER_16_0_33_0, 1103 .version = MXR_VER_16_0_33_0,
1104 .is_vp_enabled = 0, 1104 .is_vp_enabled = 0,
1105}; 1105};
1106 1106
1107static struct mixer_drv_data exynos4212_mxr_drv_data = { 1107static const struct mixer_drv_data exynos4212_mxr_drv_data = {
1108 .version = MXR_VER_0_0_0_16, 1108 .version = MXR_VER_0_0_0_16,
1109 .is_vp_enabled = 1, 1109 .is_vp_enabled = 1,
1110}; 1110};
1111 1111
1112static struct mixer_drv_data exynos4210_mxr_drv_data = { 1112static const struct mixer_drv_data exynos4210_mxr_drv_data = {
1113 .version = MXR_VER_0_0_0_16, 1113 .version = MXR_VER_0_0_0_16,
1114 .is_vp_enabled = 1, 1114 .is_vp_enabled = 1,
1115 .has_sclk = 1, 1115 .has_sclk = 1,
1116}; 1116};
1117 1117
1118static struct of_device_id mixer_match_types[] = { 1118static const struct of_device_id mixer_match_types[] = {
1119 { 1119 {
1120 .compatible = "samsung,exynos4210-mixer", 1120 .compatible = "samsung,exynos4210-mixer",
1121 .data = &exynos4210_mxr_drv_data, 1121 .data = &exynos4210_mxr_drv_data,
diff --git a/drivers/gpu/drm/i915/gvt/display.c b/drivers/gpu/drm/i915/gvt/display.c
index 2deb05f618fb..7cb0818a13de 100644
--- a/drivers/gpu/drm/i915/gvt/display.c
+++ b/drivers/gpu/drm/i915/gvt/display.c
@@ -323,27 +323,27 @@ void intel_gvt_check_vblank_emulation(struct intel_gvt *gvt)
323{ 323{
324 struct intel_gvt_irq *irq = &gvt->irq; 324 struct intel_gvt_irq *irq = &gvt->irq;
325 struct intel_vgpu *vgpu; 325 struct intel_vgpu *vgpu;
326 bool have_enabled_pipe = false;
327 int pipe, id; 326 int pipe, id;
328 327
329 if (WARN_ON(!mutex_is_locked(&gvt->lock))) 328 if (WARN_ON(!mutex_is_locked(&gvt->lock)))
330 return; 329 return;
331 330
332 hrtimer_cancel(&irq->vblank_timer.timer);
333
334 for_each_active_vgpu(gvt, vgpu, id) { 331 for_each_active_vgpu(gvt, vgpu, id) {
335 for (pipe = 0; pipe < I915_MAX_PIPES; pipe++) { 332 for (pipe = 0; pipe < I915_MAX_PIPES; pipe++) {
336 have_enabled_pipe = 333 if (pipe_is_enabled(vgpu, pipe))
337 pipe_is_enabled(vgpu, pipe); 334 goto out;
338 if (have_enabled_pipe)
339 break;
340 } 335 }
341 } 336 }
342 337
343 if (have_enabled_pipe) 338 /* all the pipes are disabled */
344 hrtimer_start(&irq->vblank_timer.timer, 339 hrtimer_cancel(&irq->vblank_timer.timer);
345 ktime_add_ns(ktime_get(), irq->vblank_timer.period), 340 return;
346 HRTIMER_MODE_ABS); 341
342out:
343 hrtimer_start(&irq->vblank_timer.timer,
344 ktime_add_ns(ktime_get(), irq->vblank_timer.period),
345 HRTIMER_MODE_ABS);
346
347} 347}
348 348
349static void emulate_vblank_on_pipe(struct intel_vgpu *vgpu, int pipe) 349static void emulate_vblank_on_pipe(struct intel_vgpu *vgpu, int pipe)
diff --git a/drivers/gpu/drm/i915/i915_gem_clflush.c b/drivers/gpu/drm/i915/i915_gem_clflush.c
index 152f16c11878..348b29a845c9 100644
--- a/drivers/gpu/drm/i915/i915_gem_clflush.c
+++ b/drivers/gpu/drm/i915/i915_gem_clflush.c
@@ -114,7 +114,7 @@ i915_clflush_notify(struct i915_sw_fence *fence,
114 return NOTIFY_DONE; 114 return NOTIFY_DONE;
115} 115}
116 116
117void i915_gem_clflush_object(struct drm_i915_gem_object *obj, 117bool i915_gem_clflush_object(struct drm_i915_gem_object *obj,
118 unsigned int flags) 118 unsigned int flags)
119{ 119{
120 struct clflush *clflush; 120 struct clflush *clflush;
@@ -128,7 +128,7 @@ void i915_gem_clflush_object(struct drm_i915_gem_object *obj,
128 */ 128 */
129 if (!i915_gem_object_has_struct_page(obj)) { 129 if (!i915_gem_object_has_struct_page(obj)) {
130 obj->cache_dirty = false; 130 obj->cache_dirty = false;
131 return; 131 return false;
132 } 132 }
133 133
134 /* If the GPU is snooping the contents of the CPU cache, 134 /* If the GPU is snooping the contents of the CPU cache,
@@ -140,7 +140,7 @@ void i915_gem_clflush_object(struct drm_i915_gem_object *obj,
140 * tracking. 140 * tracking.
141 */ 141 */
142 if (!(flags & I915_CLFLUSH_FORCE) && obj->cache_coherent) 142 if (!(flags & I915_CLFLUSH_FORCE) && obj->cache_coherent)
143 return; 143 return false;
144 144
145 trace_i915_gem_object_clflush(obj); 145 trace_i915_gem_object_clflush(obj);
146 146
@@ -179,4 +179,5 @@ void i915_gem_clflush_object(struct drm_i915_gem_object *obj,
179 } 179 }
180 180
181 obj->cache_dirty = false; 181 obj->cache_dirty = false;
182 return true;
182} 183}
diff --git a/drivers/gpu/drm/i915/i915_gem_clflush.h b/drivers/gpu/drm/i915/i915_gem_clflush.h
index 2455a7820937..f390247561b3 100644
--- a/drivers/gpu/drm/i915/i915_gem_clflush.h
+++ b/drivers/gpu/drm/i915/i915_gem_clflush.h
@@ -28,7 +28,7 @@
28struct drm_i915_private; 28struct drm_i915_private;
29struct drm_i915_gem_object; 29struct drm_i915_gem_object;
30 30
31void i915_gem_clflush_object(struct drm_i915_gem_object *obj, 31bool i915_gem_clflush_object(struct drm_i915_gem_object *obj,
32 unsigned int flags); 32 unsigned int flags);
33#define I915_CLFLUSH_FORCE BIT(0) 33#define I915_CLFLUSH_FORCE BIT(0)
34#define I915_CLFLUSH_SYNC BIT(1) 34#define I915_CLFLUSH_SYNC BIT(1)
diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
index 054b2e54cdaf..e9503f6d1100 100644
--- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
@@ -560,9 +560,6 @@ static int eb_reserve_vma(const struct i915_execbuffer *eb,
560 eb->args->flags |= __EXEC_HAS_RELOC; 560 eb->args->flags |= __EXEC_HAS_RELOC;
561 } 561 }
562 562
563 entry->flags |= __EXEC_OBJECT_HAS_PIN;
564 GEM_BUG_ON(eb_vma_misplaced(entry, vma));
565
566 if (unlikely(entry->flags & EXEC_OBJECT_NEEDS_FENCE)) { 563 if (unlikely(entry->flags & EXEC_OBJECT_NEEDS_FENCE)) {
567 err = i915_vma_get_fence(vma); 564 err = i915_vma_get_fence(vma);
568 if (unlikely(err)) { 565 if (unlikely(err)) {
@@ -574,6 +571,9 @@ static int eb_reserve_vma(const struct i915_execbuffer *eb,
574 entry->flags |= __EXEC_OBJECT_HAS_FENCE; 571 entry->flags |= __EXEC_OBJECT_HAS_FENCE;
575 } 572 }
576 573
574 entry->flags |= __EXEC_OBJECT_HAS_PIN;
575 GEM_BUG_ON(eb_vma_misplaced(entry, vma));
576
577 return 0; 577 return 0;
578} 578}
579 579
@@ -1458,7 +1458,7 @@ static int eb_relocate_vma(struct i915_execbuffer *eb, struct i915_vma *vma)
1458 * to read. However, if the array is not writable the user loses 1458 * to read. However, if the array is not writable the user loses
1459 * the updated relocation values. 1459 * the updated relocation values.
1460 */ 1460 */
1461 if (unlikely(!access_ok(VERIFY_READ, urelocs, remain*sizeof(urelocs)))) 1461 if (unlikely(!access_ok(VERIFY_READ, urelocs, remain*sizeof(*urelocs))))
1462 return -EFAULT; 1462 return -EFAULT;
1463 1463
1464 do { 1464 do {
@@ -1775,7 +1775,7 @@ out:
1775 } 1775 }
1776 } 1776 }
1777 1777
1778 return err ?: have_copy; 1778 return err;
1779} 1779}
1780 1780
1781static int eb_relocate(struct i915_execbuffer *eb) 1781static int eb_relocate(struct i915_execbuffer *eb)
@@ -1825,7 +1825,7 @@ static int eb_move_to_gpu(struct i915_execbuffer *eb)
1825 int err; 1825 int err;
1826 1826
1827 for (i = 0; i < count; i++) { 1827 for (i = 0; i < count; i++) {
1828 const struct drm_i915_gem_exec_object2 *entry = &eb->exec[i]; 1828 struct drm_i915_gem_exec_object2 *entry = &eb->exec[i];
1829 struct i915_vma *vma = exec_to_vma(entry); 1829 struct i915_vma *vma = exec_to_vma(entry);
1830 struct drm_i915_gem_object *obj = vma->obj; 1830 struct drm_i915_gem_object *obj = vma->obj;
1831 1831
@@ -1841,12 +1841,14 @@ static int eb_move_to_gpu(struct i915_execbuffer *eb)
1841 eb->request->capture_list = capture; 1841 eb->request->capture_list = capture;
1842 } 1842 }
1843 1843
1844 if (unlikely(obj->cache_dirty && !obj->cache_coherent)) {
1845 if (i915_gem_clflush_object(obj, 0))
1846 entry->flags &= ~EXEC_OBJECT_ASYNC;
1847 }
1848
1844 if (entry->flags & EXEC_OBJECT_ASYNC) 1849 if (entry->flags & EXEC_OBJECT_ASYNC)
1845 goto skip_flushes; 1850 goto skip_flushes;
1846 1851
1847 if (unlikely(obj->cache_dirty && !obj->cache_coherent))
1848 i915_gem_clflush_object(obj, 0);
1849
1850 err = i915_gem_request_await_object 1852 err = i915_gem_request_await_object
1851 (eb->request, obj, entry->flags & EXEC_OBJECT_WRITE); 1853 (eb->request, obj, entry->flags & EXEC_OBJECT_WRITE);
1852 if (err) 1854 if (err)
@@ -2209,7 +2211,7 @@ i915_gem_do_execbuffer(struct drm_device *dev,
2209 goto err_unlock; 2211 goto err_unlock;
2210 2212
2211 err = eb_relocate(&eb); 2213 err = eb_relocate(&eb);
2212 if (err) 2214 if (err) {
2213 /* 2215 /*
2214 * If the user expects the execobject.offset and 2216 * If the user expects the execobject.offset and
2215 * reloc.presumed_offset to be an exact match, 2217 * reloc.presumed_offset to be an exact match,
@@ -2218,8 +2220,8 @@ i915_gem_do_execbuffer(struct drm_device *dev,
2218 * relocation. 2220 * relocation.
2219 */ 2221 */
2220 args->flags &= ~__EXEC_HAS_RELOC; 2222 args->flags &= ~__EXEC_HAS_RELOC;
2221 if (err < 0)
2222 goto err_vma; 2223 goto err_vma;
2224 }
2223 2225
2224 if (unlikely(eb.batch->exec_entry->flags & EXEC_OBJECT_WRITE)) { 2226 if (unlikely(eb.batch->exec_entry->flags & EXEC_OBJECT_WRITE)) {
2225 DRM_DEBUG("Attempting to use self-modifying batch buffer\n"); 2227 DRM_DEBUG("Attempting to use self-modifying batch buffer\n");
diff --git a/drivers/gpu/drm/i915/i915_vma.h b/drivers/gpu/drm/i915/i915_vma.h
index 4a673fc1a432..20cf272c97b1 100644
--- a/drivers/gpu/drm/i915/i915_vma.h
+++ b/drivers/gpu/drm/i915/i915_vma.h
@@ -284,12 +284,12 @@ static inline void __i915_vma_pin(struct i915_vma *vma)
284 284
285static inline void __i915_vma_unpin(struct i915_vma *vma) 285static inline void __i915_vma_unpin(struct i915_vma *vma)
286{ 286{
287 GEM_BUG_ON(!i915_vma_is_pinned(vma));
288 vma->flags--; 287 vma->flags--;
289} 288}
290 289
291static inline void i915_vma_unpin(struct i915_vma *vma) 290static inline void i915_vma_unpin(struct i915_vma *vma)
292{ 291{
292 GEM_BUG_ON(!i915_vma_is_pinned(vma));
293 GEM_BUG_ON(!drm_mm_node_allocated(&vma->node)); 293 GEM_BUG_ON(!drm_mm_node_allocated(&vma->node));
294 __i915_vma_unpin(vma); 294 __i915_vma_unpin(vma);
295} 295}
diff --git a/drivers/gpu/drm/i915/intel_ddi.c b/drivers/gpu/drm/i915/intel_ddi.c
index 80e96f1f49d2..9edeaaef77ad 100644
--- a/drivers/gpu/drm/i915/intel_ddi.c
+++ b/drivers/gpu/drm/i915/intel_ddi.c
@@ -1896,8 +1896,8 @@ static void cnl_ddi_vswing_sequence(struct intel_encoder *encoder, u32 level)
1896 val = I915_READ(CNL_PORT_TX_DW4_LN(port, ln)); 1896 val = I915_READ(CNL_PORT_TX_DW4_LN(port, ln));
1897 val &= ~LOADGEN_SELECT; 1897 val &= ~LOADGEN_SELECT;
1898 1898
1899 if (((rate < 600000) && (width == 4) && (ln >= 1)) || 1899 if ((rate <= 600000 && width == 4 && ln >= 1) ||
1900 ((rate < 600000) && (width < 4) && ((ln == 1) || (ln == 2)))) { 1900 (rate <= 600000 && width < 4 && (ln == 1 || ln == 2))) {
1901 val |= LOADGEN_SELECT; 1901 val |= LOADGEN_SELECT;
1902 } 1902 }
1903 I915_WRITE(CNL_PORT_TX_DW4_LN(port, ln), val); 1903 I915_WRITE(CNL_PORT_TX_DW4_LN(port, ln), val);
diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
index dec9e58545a1..9471c88d449e 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -3427,26 +3427,6 @@ static void intel_complete_page_flips(struct drm_i915_private *dev_priv)
3427 intel_finish_page_flip_cs(dev_priv, crtc->pipe); 3427 intel_finish_page_flip_cs(dev_priv, crtc->pipe);
3428} 3428}
3429 3429
3430static void intel_update_primary_planes(struct drm_device *dev)
3431{
3432 struct drm_crtc *crtc;
3433
3434 for_each_crtc(dev, crtc) {
3435 struct intel_plane *plane = to_intel_plane(crtc->primary);
3436 struct intel_plane_state *plane_state =
3437 to_intel_plane_state(plane->base.state);
3438
3439 if (plane_state->base.visible) {
3440 trace_intel_update_plane(&plane->base,
3441 to_intel_crtc(crtc));
3442
3443 plane->update_plane(plane,
3444 to_intel_crtc_state(crtc->state),
3445 plane_state);
3446 }
3447 }
3448}
3449
3450static int 3430static int
3451__intel_display_resume(struct drm_device *dev, 3431__intel_display_resume(struct drm_device *dev,
3452 struct drm_atomic_state *state, 3432 struct drm_atomic_state *state,
@@ -3499,6 +3479,12 @@ void intel_prepare_reset(struct drm_i915_private *dev_priv)
3499 struct drm_atomic_state *state; 3479 struct drm_atomic_state *state;
3500 int ret; 3480 int ret;
3501 3481
3482
3483 /* reset doesn't touch the display */
3484 if (!i915.force_reset_modeset_test &&
3485 !gpu_reset_clobbers_display(dev_priv))
3486 return;
3487
3502 /* 3488 /*
3503 * Need mode_config.mutex so that we don't 3489 * Need mode_config.mutex so that we don't
3504 * trample ongoing ->detect() and whatnot. 3490 * trample ongoing ->detect() and whatnot.
@@ -3512,12 +3498,6 @@ void intel_prepare_reset(struct drm_i915_private *dev_priv)
3512 3498
3513 drm_modeset_backoff(ctx); 3499 drm_modeset_backoff(ctx);
3514 } 3500 }
3515
3516 /* reset doesn't touch the display, but flips might get nuked anyway, */
3517 if (!i915.force_reset_modeset_test &&
3518 !gpu_reset_clobbers_display(dev_priv))
3519 return;
3520
3521 /* 3501 /*
3522 * Disabling the crtcs gracefully seems nicer. Also the 3502 * Disabling the crtcs gracefully seems nicer. Also the
3523 * g33 docs say we should at least disable all the planes. 3503 * g33 docs say we should at least disable all the planes.
@@ -3547,6 +3527,14 @@ void intel_finish_reset(struct drm_i915_private *dev_priv)
3547 struct drm_atomic_state *state = dev_priv->modeset_restore_state; 3527 struct drm_atomic_state *state = dev_priv->modeset_restore_state;
3548 int ret; 3528 int ret;
3549 3529
3530 /* reset doesn't touch the display */
3531 if (!i915.force_reset_modeset_test &&
3532 !gpu_reset_clobbers_display(dev_priv))
3533 return;
3534
3535 if (!state)
3536 goto unlock;
3537
3550 /* 3538 /*
3551 * Flips in the rings will be nuked by the reset, 3539 * Flips in the rings will be nuked by the reset,
3552 * so complete all pending flips so that user space 3540 * so complete all pending flips so that user space
@@ -3558,22 +3546,10 @@ void intel_finish_reset(struct drm_i915_private *dev_priv)
3558 3546
3559 /* reset doesn't touch the display */ 3547 /* reset doesn't touch the display */
3560 if (!gpu_reset_clobbers_display(dev_priv)) { 3548 if (!gpu_reset_clobbers_display(dev_priv)) {
3561 if (!state) { 3549 /* for testing only restore the display */
3562 /* 3550 ret = __intel_display_resume(dev, state, ctx);
3563 * Flips in the rings have been nuked by the reset,
3564 * so update the base address of all primary
3565 * planes to the the last fb to make sure we're
3566 * showing the correct fb after a reset.
3567 *
3568 * FIXME: Atomic will make this obsolete since we won't schedule
3569 * CS-based flips (which might get lost in gpu resets) any more.
3570 */
3571 intel_update_primary_planes(dev);
3572 } else {
3573 ret = __intel_display_resume(dev, state, ctx);
3574 if (ret) 3551 if (ret)
3575 DRM_ERROR("Restoring old state failed with %i\n", ret); 3552 DRM_ERROR("Restoring old state failed with %i\n", ret);
3576 }
3577 } else { 3553 } else {
3578 /* 3554 /*
3579 * The display has been reset as well, 3555 * The display has been reset as well,
@@ -3597,8 +3573,8 @@ void intel_finish_reset(struct drm_i915_private *dev_priv)
3597 intel_hpd_init(dev_priv); 3573 intel_hpd_init(dev_priv);
3598 } 3574 }
3599 3575
3600 if (state) 3576 drm_atomic_state_put(state);
3601 drm_atomic_state_put(state); 3577unlock:
3602 drm_modeset_drop_locks(ctx); 3578 drm_modeset_drop_locks(ctx);
3603 drm_modeset_acquire_fini(ctx); 3579 drm_modeset_acquire_fini(ctx);
3604 mutex_unlock(&dev->mode_config.mutex); 3580 mutex_unlock(&dev->mode_config.mutex);
@@ -9117,6 +9093,13 @@ static bool haswell_get_pipe_config(struct intel_crtc *crtc,
9117 u64 power_domain_mask; 9093 u64 power_domain_mask;
9118 bool active; 9094 bool active;
9119 9095
9096 if (INTEL_GEN(dev_priv) >= 9) {
9097 intel_crtc_init_scalers(crtc, pipe_config);
9098
9099 pipe_config->scaler_state.scaler_id = -1;
9100 pipe_config->scaler_state.scaler_users &= ~(1 << SKL_CRTC_INDEX);
9101 }
9102
9120 power_domain = POWER_DOMAIN_PIPE(crtc->pipe); 9103 power_domain = POWER_DOMAIN_PIPE(crtc->pipe);
9121 if (!intel_display_power_get_if_enabled(dev_priv, power_domain)) 9104 if (!intel_display_power_get_if_enabled(dev_priv, power_domain))
9122 return false; 9105 return false;
@@ -9145,13 +9128,6 @@ static bool haswell_get_pipe_config(struct intel_crtc *crtc,
9145 pipe_config->gamma_mode = 9128 pipe_config->gamma_mode =
9146 I915_READ(GAMMA_MODE(crtc->pipe)) & GAMMA_MODE_MODE_MASK; 9129 I915_READ(GAMMA_MODE(crtc->pipe)) & GAMMA_MODE_MODE_MASK;
9147 9130
9148 if (INTEL_GEN(dev_priv) >= 9) {
9149 intel_crtc_init_scalers(crtc, pipe_config);
9150
9151 pipe_config->scaler_state.scaler_id = -1;
9152 pipe_config->scaler_state.scaler_users &= ~(1 << SKL_CRTC_INDEX);
9153 }
9154
9155 power_domain = POWER_DOMAIN_PIPE_PANEL_FITTER(crtc->pipe); 9131 power_domain = POWER_DOMAIN_PIPE_PANEL_FITTER(crtc->pipe);
9156 if (intel_display_power_get_if_enabled(dev_priv, power_domain)) { 9132 if (intel_display_power_get_if_enabled(dev_priv, power_domain)) {
9157 power_domain_mask |= BIT_ULL(power_domain); 9133 power_domain_mask |= BIT_ULL(power_domain);
@@ -9540,7 +9516,16 @@ static void i9xx_update_cursor(struct intel_plane *plane,
9540 * On some platforms writing CURCNTR first will also 9516 * On some platforms writing CURCNTR first will also
9541 * cause CURPOS to be armed by the CURBASE write. 9517 * cause CURPOS to be armed by the CURBASE write.
9542 * Without the CURCNTR write the CURPOS write would 9518 * Without the CURCNTR write the CURPOS write would
9543 * arm itself. 9519 * arm itself. Thus we always start the full update
9520 * with a CURCNTR write.
9521 *
9522 * On other platforms CURPOS always requires the
9523 * CURBASE write to arm the update. Additonally
9524 * a write to any of the cursor register will cancel
9525 * an already armed cursor update. Thus leaving out
9526 * the CURBASE write after CURPOS could lead to a
9527 * cursor that doesn't appear to move, or even change
9528 * shape. Thus we always write CURBASE.
9544 * 9529 *
9545 * CURCNTR and CUR_FBC_CTL are always 9530 * CURCNTR and CUR_FBC_CTL are always
9546 * armed by the CURBASE write only. 9531 * armed by the CURBASE write only.
@@ -9559,6 +9544,7 @@ static void i9xx_update_cursor(struct intel_plane *plane,
9559 plane->cursor.cntl = cntl; 9544 plane->cursor.cntl = cntl;
9560 } else { 9545 } else {
9561 I915_WRITE_FW(CURPOS(pipe), pos); 9546 I915_WRITE_FW(CURPOS(pipe), pos);
9547 I915_WRITE_FW(CURBASE(pipe), base);
9562 } 9548 }
9563 9549
9564 POSTING_READ_FW(CURBASE(pipe)); 9550 POSTING_READ_FW(CURBASE(pipe));
diff --git a/drivers/gpu/drm/i915/intel_gvt.c b/drivers/gpu/drm/i915/intel_gvt.c
index 52d5b82790d9..c17ed0e62b67 100644
--- a/drivers/gpu/drm/i915/intel_gvt.c
+++ b/drivers/gpu/drm/i915/intel_gvt.c
@@ -45,7 +45,7 @@ static bool is_supported_device(struct drm_i915_private *dev_priv)
45 return true; 45 return true;
46 if (IS_SKYLAKE(dev_priv)) 46 if (IS_SKYLAKE(dev_priv))
47 return true; 47 return true;
48 if (IS_KABYLAKE(dev_priv) && INTEL_DEVID(dev_priv) == 0x591D) 48 if (IS_KABYLAKE(dev_priv))
49 return true; 49 return true;
50 return false; 50 return false;
51} 51}
diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
index 48ea0fca1f72..40b224b44d1b 100644
--- a/drivers/gpu/drm/i915/intel_pm.c
+++ b/drivers/gpu/drm/i915/intel_pm.c
@@ -4463,8 +4463,8 @@ static int skl_compute_plane_wm(const struct drm_i915_private *dev_priv,
4463 if ((cpp * cstate->base.adjusted_mode.crtc_htotal / 512 < 1) && 4463 if ((cpp * cstate->base.adjusted_mode.crtc_htotal / 512 < 1) &&
4464 (plane_bytes_per_line / 512 < 1)) 4464 (plane_bytes_per_line / 512 < 1))
4465 selected_result = method2; 4465 selected_result = method2;
4466 else if ((ddb_allocation && ddb_allocation / 4466 else if (ddb_allocation >=
4467 fixed_16_16_to_u32_round_up(plane_blocks_per_line)) >= 1) 4467 fixed_16_16_to_u32_round_up(plane_blocks_per_line))
4468 selected_result = min_fixed_16_16(method1, method2); 4468 selected_result = min_fixed_16_16(method1, method2);
4469 else if (latency >= linetime_us) 4469 else if (latency >= linetime_us)
4470 selected_result = min_fixed_16_16(method1, method2); 4470 selected_result = min_fixed_16_16(method1, method2);
diff --git a/drivers/gpu/drm/i915/selftests/mock_gem_device.c b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
index 627e2aa09766..8cdec455cf7d 100644
--- a/drivers/gpu/drm/i915/selftests/mock_gem_device.c
+++ b/drivers/gpu/drm/i915/selftests/mock_gem_device.c
@@ -206,7 +206,7 @@ struct drm_i915_private *mock_gem_device(void)
206 mkwrite_device_info(i915)->ring_mask = BIT(0); 206 mkwrite_device_info(i915)->ring_mask = BIT(0);
207 i915->engine[RCS] = mock_engine(i915, "mock"); 207 i915->engine[RCS] = mock_engine(i915, "mock");
208 if (!i915->engine[RCS]) 208 if (!i915->engine[RCS])
209 goto err_dependencies; 209 goto err_priorities;
210 210
211 i915->kernel_context = mock_context(i915, NULL); 211 i915->kernel_context = mock_context(i915, NULL);
212 if (!i915->kernel_context) 212 if (!i915->kernel_context)
diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
index 147b22163f9f..dab78c660dd6 100644
--- a/drivers/gpu/drm/nouveau/nouveau_connector.c
+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
@@ -1158,8 +1158,6 @@ nouveau_connector_aux_xfer(struct drm_dp_aux *obj, struct drm_dp_aux_msg *msg)
1158 return -ENODEV; 1158 return -ENODEV;
1159 if (WARN_ON(msg->size > 16)) 1159 if (WARN_ON(msg->size > 16))
1160 return -E2BIG; 1160 return -E2BIG;
1161 if (msg->size == 0)
1162 return msg->size;
1163 1161
1164 ret = nvkm_i2c_aux_acquire(aux); 1162 ret = nvkm_i2c_aux_acquire(aux);
1165 if (ret) 1163 if (ret)
diff --git a/drivers/gpu/drm/nouveau/nouveau_display.c b/drivers/gpu/drm/nouveau/nouveau_display.c
index 8d1df5678eaa..f362c9fa8b3b 100644
--- a/drivers/gpu/drm/nouveau/nouveau_display.c
+++ b/drivers/gpu/drm/nouveau/nouveau_display.c
@@ -409,7 +409,6 @@ nouveau_display_fini(struct drm_device *dev, bool suspend)
409 struct nouveau_display *disp = nouveau_display(dev); 409 struct nouveau_display *disp = nouveau_display(dev);
410 struct nouveau_drm *drm = nouveau_drm(dev); 410 struct nouveau_drm *drm = nouveau_drm(dev);
411 struct drm_connector *connector; 411 struct drm_connector *connector;
412 struct drm_crtc *crtc;
413 412
414 if (!suspend) { 413 if (!suspend) {
415 if (drm_drv_uses_atomic_modeset(dev)) 414 if (drm_drv_uses_atomic_modeset(dev))
@@ -418,10 +417,6 @@ nouveau_display_fini(struct drm_device *dev, bool suspend)
418 drm_crtc_force_disable_all(dev); 417 drm_crtc_force_disable_all(dev);
419 } 418 }
420 419
421 /* Make sure that drm and hw vblank irqs get properly disabled. */
422 drm_for_each_crtc(crtc, dev)
423 drm_crtc_vblank_off(crtc);
424
425 /* disable flip completion events */ 420 /* disable flip completion events */
426 nvif_notify_put(&drm->flip); 421 nvif_notify_put(&drm->flip);
427 422
diff --git a/drivers/gpu/drm/nouveau/nv50_display.c b/drivers/gpu/drm/nouveau/nv50_display.c
index e3132a2ce34d..2bc0dc985214 100644
--- a/drivers/gpu/drm/nouveau/nv50_display.c
+++ b/drivers/gpu/drm/nouveau/nv50_display.c
@@ -3674,15 +3674,24 @@ nv50_sor_create(struct drm_connector *connector, struct dcb_output *dcbe)
3674 drm_mode_connector_attach_encoder(connector, encoder); 3674 drm_mode_connector_attach_encoder(connector, encoder);
3675 3675
3676 if (dcbe->type == DCB_OUTPUT_DP) { 3676 if (dcbe->type == DCB_OUTPUT_DP) {
3677 struct nv50_disp *disp = nv50_disp(encoder->dev);
3677 struct nvkm_i2c_aux *aux = 3678 struct nvkm_i2c_aux *aux =
3678 nvkm_i2c_aux_find(i2c, dcbe->i2c_index); 3679 nvkm_i2c_aux_find(i2c, dcbe->i2c_index);
3679 if (aux) { 3680 if (aux) {
3680 nv_encoder->i2c = &nv_connector->aux.ddc; 3681 if (disp->disp->oclass < GF110_DISP) {
3682 /* HW has no support for address-only
3683 * transactions, so we're required to
3684 * use custom I2C-over-AUX code.
3685 */
3686 nv_encoder->i2c = &aux->i2c;
3687 } else {
3688 nv_encoder->i2c = &nv_connector->aux.ddc;
3689 }
3681 nv_encoder->aux = aux; 3690 nv_encoder->aux = aux;
3682 } 3691 }
3683 3692
3684 /*TODO: Use DP Info Table to check for support. */ 3693 /*TODO: Use DP Info Table to check for support. */
3685 if (nv50_disp(encoder->dev)->disp->oclass >= GF110_DISP) { 3694 if (disp->disp->oclass >= GF110_DISP) {
3686 ret = nv50_mstm_new(nv_encoder, &nv_connector->aux, 16, 3695 ret = nv50_mstm_new(nv_encoder, &nv_connector->aux, 16,
3687 nv_connector->base.base.id, 3696 nv_connector->base.base.id,
3688 &nv_encoder->dp.mstm); 3697 &nv_encoder->dp.mstm);
@@ -3931,6 +3940,8 @@ nv50_disp_atomic_commit_tail(struct drm_atomic_state *state)
3931 3940
3932 NV_ATOMIC(drm, "%s: clr %04x (set %04x)\n", crtc->name, 3941 NV_ATOMIC(drm, "%s: clr %04x (set %04x)\n", crtc->name,
3933 asyh->clr.mask, asyh->set.mask); 3942 asyh->clr.mask, asyh->set.mask);
3943 if (crtc_state->active && !asyh->state.active)
3944 drm_crtc_vblank_off(crtc);
3934 3945
3935 if (asyh->clr.mask) { 3946 if (asyh->clr.mask) {
3936 nv50_head_flush_clr(head, asyh, atom->flush_disable); 3947 nv50_head_flush_clr(head, asyh, atom->flush_disable);
@@ -4016,11 +4027,13 @@ nv50_disp_atomic_commit_tail(struct drm_atomic_state *state)
4016 nv50_head_flush_set(head, asyh); 4027 nv50_head_flush_set(head, asyh);
4017 interlock_core = 1; 4028 interlock_core = 1;
4018 } 4029 }
4019 }
4020 4030
4021 for_each_crtc_in_state(state, crtc, crtc_state, i) { 4031 if (asyh->state.active) {
4022 if (crtc->state->event) 4032 if (!crtc_state->active)
4023 drm_crtc_vblank_get(crtc); 4033 drm_crtc_vblank_on(crtc);
4034 if (asyh->state.event)
4035 drm_crtc_vblank_get(crtc);
4036 }
4024 } 4037 }
4025 4038
4026 /* Update plane(s). */ 4039 /* Update plane(s). */
@@ -4067,12 +4080,14 @@ nv50_disp_atomic_commit_tail(struct drm_atomic_state *state)
4067 if (crtc->state->event) { 4080 if (crtc->state->event) {
4068 unsigned long flags; 4081 unsigned long flags;
4069 /* Get correct count/ts if racing with vblank irq */ 4082 /* Get correct count/ts if racing with vblank irq */
4070 drm_accurate_vblank_count(crtc); 4083 if (crtc->state->active)
4084 drm_accurate_vblank_count(crtc);
4071 spin_lock_irqsave(&crtc->dev->event_lock, flags); 4085 spin_lock_irqsave(&crtc->dev->event_lock, flags);
4072 drm_crtc_send_vblank_event(crtc, crtc->state->event); 4086 drm_crtc_send_vblank_event(crtc, crtc->state->event);
4073 spin_unlock_irqrestore(&crtc->dev->event_lock, flags); 4087 spin_unlock_irqrestore(&crtc->dev->event_lock, flags);
4074 crtc->state->event = NULL; 4088 crtc->state->event = NULL;
4075 drm_crtc_vblank_put(crtc); 4089 if (crtc->state->active)
4090 drm_crtc_vblank_put(crtc);
4076 } 4091 }
4077 } 4092 }
4078 4093
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h b/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h
index a24312fb0228..a1e8bf48b778 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/ior.h
@@ -22,6 +22,7 @@ struct nvkm_ior {
22 unsigned proto_evo:4; 22 unsigned proto_evo:4;
23 enum nvkm_ior_proto { 23 enum nvkm_ior_proto {
24 CRT, 24 CRT,
25 TV,
25 TMDS, 26 TMDS,
26 LVDS, 27 LVDS,
27 DP, 28 DP,
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h b/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h
index 19c635663399..6ea19466f436 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/nv50.h
@@ -22,7 +22,7 @@ struct nv50_disp {
22 u8 type[3]; 22 u8 type[3];
23 } pior; 23 } pior;
24 24
25 struct nv50_disp_chan *chan[17]; 25 struct nv50_disp_chan *chan[21];
26}; 26};
27 27
28void nv50_disp_super_1(struct nv50_disp *); 28void nv50_disp_super_1(struct nv50_disp *);
diff --git a/drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c b/drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c
index 85aff85394ac..be9e7f8c3b23 100644
--- a/drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c
+++ b/drivers/gpu/drm/nouveau/nvkm/engine/disp/outp.c
@@ -62,6 +62,7 @@ nvkm_outp_xlat(struct nvkm_outp *outp, enum nvkm_ior_type *type)
62 case 0: 62 case 0:
63 switch (outp->info.type) { 63 switch (outp->info.type) {
64 case DCB_OUTPUT_ANALOG: *type = DAC; return CRT; 64 case DCB_OUTPUT_ANALOG: *type = DAC; return CRT;
65 case DCB_OUTPUT_TV : *type = DAC; return TV;
65 case DCB_OUTPUT_TMDS : *type = SOR; return TMDS; 66 case DCB_OUTPUT_TMDS : *type = SOR; return TMDS;
66 case DCB_OUTPUT_LVDS : *type = SOR; return LVDS; 67 case DCB_OUTPUT_LVDS : *type = SOR; return LVDS;
67 case DCB_OUTPUT_DP : *type = SOR; return DP; 68 case DCB_OUTPUT_DP : *type = SOR; return DP;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.c b/drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.c
index c794b2c2d21e..6d8f21290aa2 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/bar/gf100.c
@@ -129,7 +129,7 @@ gf100_bar_init(struct nvkm_bar *base)
129 129
130 if (bar->bar[0].mem) { 130 if (bar->bar[0].mem) {
131 addr = nvkm_memory_addr(bar->bar[0].mem) >> 12; 131 addr = nvkm_memory_addr(bar->bar[0].mem) >> 12;
132 nvkm_wr32(device, 0x001714, 0xc0000000 | addr); 132 nvkm_wr32(device, 0x001714, 0x80000000 | addr);
133 } 133 }
134 134
135 return 0; 135 return 0;
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/Kbuild b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/Kbuild
index 48f01e40b8fc..b768e66a472b 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/Kbuild
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/Kbuild
@@ -25,6 +25,7 @@ nvkm-y += nvkm/subdev/i2c/bit.o
25 25
26nvkm-y += nvkm/subdev/i2c/aux.o 26nvkm-y += nvkm/subdev/i2c/aux.o
27nvkm-y += nvkm/subdev/i2c/auxg94.o 27nvkm-y += nvkm/subdev/i2c/auxg94.o
28nvkm-y += nvkm/subdev/i2c/auxgf119.o
28nvkm-y += nvkm/subdev/i2c/auxgm200.o 29nvkm-y += nvkm/subdev/i2c/auxgm200.o
29 30
30nvkm-y += nvkm/subdev/i2c/anx9805.o 31nvkm-y += nvkm/subdev/i2c/anx9805.o
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.c
index d172e42dd228..4c1f547da463 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.c
@@ -117,6 +117,10 @@ int
117nvkm_i2c_aux_xfer(struct nvkm_i2c_aux *aux, bool retry, u8 type, 117nvkm_i2c_aux_xfer(struct nvkm_i2c_aux *aux, bool retry, u8 type,
118 u32 addr, u8 *data, u8 *size) 118 u32 addr, u8 *data, u8 *size)
119{ 119{
120 if (!*size && !aux->func->address_only) {
121 AUX_ERR(aux, "address-only transaction dropped");
122 return -ENOSYS;
123 }
120 return aux->func->xfer(aux, retry, type, addr, data, size); 124 return aux->func->xfer(aux, retry, type, addr, data, size);
121} 125}
122 126
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.h b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.h
index 27a4a39c87f0..9587ab456d9e 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.h
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/aux.h
@@ -3,6 +3,7 @@
3#include "pad.h" 3#include "pad.h"
4 4
5struct nvkm_i2c_aux_func { 5struct nvkm_i2c_aux_func {
6 bool address_only;
6 int (*xfer)(struct nvkm_i2c_aux *, bool retry, u8 type, 7 int (*xfer)(struct nvkm_i2c_aux *, bool retry, u8 type,
7 u32 addr, u8 *data, u8 *size); 8 u32 addr, u8 *data, u8 *size);
8 int (*lnk_ctl)(struct nvkm_i2c_aux *, int link_nr, int link_bw, 9 int (*lnk_ctl)(struct nvkm_i2c_aux *, int link_nr, int link_bw,
@@ -17,7 +18,12 @@ void nvkm_i2c_aux_del(struct nvkm_i2c_aux **);
17int nvkm_i2c_aux_xfer(struct nvkm_i2c_aux *, bool retry, u8 type, 18int nvkm_i2c_aux_xfer(struct nvkm_i2c_aux *, bool retry, u8 type,
18 u32 addr, u8 *data, u8 *size); 19 u32 addr, u8 *data, u8 *size);
19 20
21int g94_i2c_aux_new_(const struct nvkm_i2c_aux_func *, struct nvkm_i2c_pad *,
22 int, u8, struct nvkm_i2c_aux **);
23
20int g94_i2c_aux_new(struct nvkm_i2c_pad *, int, u8, struct nvkm_i2c_aux **); 24int g94_i2c_aux_new(struct nvkm_i2c_pad *, int, u8, struct nvkm_i2c_aux **);
25int g94_i2c_aux_xfer(struct nvkm_i2c_aux *, bool, u8, u32, u8 *, u8 *);
26int gf119_i2c_aux_new(struct nvkm_i2c_pad *, int, u8, struct nvkm_i2c_aux **);
21int gm200_i2c_aux_new(struct nvkm_i2c_pad *, int, u8, struct nvkm_i2c_aux **); 27int gm200_i2c_aux_new(struct nvkm_i2c_pad *, int, u8, struct nvkm_i2c_aux **);
22 28
23#define AUX_MSG(b,l,f,a...) do { \ 29#define AUX_MSG(b,l,f,a...) do { \
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxg94.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxg94.c
index ab8cb196c34e..c8ab1b5741a3 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxg94.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxg94.c
@@ -72,7 +72,7 @@ g94_i2c_aux_init(struct g94_i2c_aux *aux)
72 return 0; 72 return 0;
73} 73}
74 74
75static int 75int
76g94_i2c_aux_xfer(struct nvkm_i2c_aux *obj, bool retry, 76g94_i2c_aux_xfer(struct nvkm_i2c_aux *obj, bool retry,
77 u8 type, u32 addr, u8 *data, u8 *size) 77 u8 type, u32 addr, u8 *data, u8 *size)
78{ 78{
@@ -105,9 +105,9 @@ g94_i2c_aux_xfer(struct nvkm_i2c_aux *obj, bool retry,
105 } 105 }
106 106
107 ctrl = nvkm_rd32(device, 0x00e4e4 + base); 107 ctrl = nvkm_rd32(device, 0x00e4e4 + base);
108 ctrl &= ~0x0001f0ff; 108 ctrl &= ~0x0001f1ff;
109 ctrl |= type << 12; 109 ctrl |= type << 12;
110 ctrl |= *size - 1; 110 ctrl |= (*size ? (*size - 1) : 0x00000100);
111 nvkm_wr32(device, 0x00e4e0 + base, addr); 111 nvkm_wr32(device, 0x00e4e0 + base, addr);
112 112
113 /* (maybe) retry transaction a number of times on failure... */ 113 /* (maybe) retry transaction a number of times on failure... */
@@ -160,14 +160,10 @@ out:
160 return ret < 0 ? ret : (stat & 0x000f0000) >> 16; 160 return ret < 0 ? ret : (stat & 0x000f0000) >> 16;
161} 161}
162 162
163static const struct nvkm_i2c_aux_func
164g94_i2c_aux_func = {
165 .xfer = g94_i2c_aux_xfer,
166};
167
168int 163int
169g94_i2c_aux_new(struct nvkm_i2c_pad *pad, int index, u8 drive, 164g94_i2c_aux_new_(const struct nvkm_i2c_aux_func *func,
170 struct nvkm_i2c_aux **paux) 165 struct nvkm_i2c_pad *pad, int index, u8 drive,
166 struct nvkm_i2c_aux **paux)
171{ 167{
172 struct g94_i2c_aux *aux; 168 struct g94_i2c_aux *aux;
173 169
@@ -175,8 +171,20 @@ g94_i2c_aux_new(struct nvkm_i2c_pad *pad, int index, u8 drive,
175 return -ENOMEM; 171 return -ENOMEM;
176 *paux = &aux->base; 172 *paux = &aux->base;
177 173
178 nvkm_i2c_aux_ctor(&g94_i2c_aux_func, pad, index, &aux->base); 174 nvkm_i2c_aux_ctor(func, pad, index, &aux->base);
179 aux->ch = drive; 175 aux->ch = drive;
180 aux->base.intr = 1 << aux->ch; 176 aux->base.intr = 1 << aux->ch;
181 return 0; 177 return 0;
182} 178}
179
180static const struct nvkm_i2c_aux_func
181g94_i2c_aux = {
182 .xfer = g94_i2c_aux_xfer,
183};
184
185int
186g94_i2c_aux_new(struct nvkm_i2c_pad *pad, int index, u8 drive,
187 struct nvkm_i2c_aux **paux)
188{
189 return g94_i2c_aux_new_(&g94_i2c_aux, pad, index, drive, paux);
190}
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgf119.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgf119.c
new file mode 100644
index 000000000000..dab40cd8fe3a
--- /dev/null
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgf119.c
@@ -0,0 +1,35 @@
1/*
2 * Copyright 2017 Red Hat Inc.
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
17 * THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
18 * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
19 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
20 * OTHER DEALINGS IN THE SOFTWARE.
21 */
22#include "aux.h"
23
24static const struct nvkm_i2c_aux_func
25gf119_i2c_aux = {
26 .address_only = true,
27 .xfer = g94_i2c_aux_xfer,
28};
29
30int
31gf119_i2c_aux_new(struct nvkm_i2c_pad *pad, int index, u8 drive,
32 struct nvkm_i2c_aux **paux)
33{
34 return g94_i2c_aux_new_(&gf119_i2c_aux, pad, index, drive, paux);
35}
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgm200.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgm200.c
index ee091fa79628..7ef60895f43a 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgm200.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/auxgm200.c
@@ -105,9 +105,9 @@ gm200_i2c_aux_xfer(struct nvkm_i2c_aux *obj, bool retry,
105 } 105 }
106 106
107 ctrl = nvkm_rd32(device, 0x00d954 + base); 107 ctrl = nvkm_rd32(device, 0x00d954 + base);
108 ctrl &= ~0x0001f0ff; 108 ctrl &= ~0x0001f1ff;
109 ctrl |= type << 12; 109 ctrl |= type << 12;
110 ctrl |= *size - 1; 110 ctrl |= (*size ? (*size - 1) : 0x00000100);
111 nvkm_wr32(device, 0x00d950 + base, addr); 111 nvkm_wr32(device, 0x00d950 + base, addr);
112 112
113 /* (maybe) retry transaction a number of times on failure... */ 113 /* (maybe) retry transaction a number of times on failure... */
@@ -162,6 +162,7 @@ out:
162 162
163static const struct nvkm_i2c_aux_func 163static const struct nvkm_i2c_aux_func
164gm200_i2c_aux_func = { 164gm200_i2c_aux_func = {
165 .address_only = true,
165 .xfer = gm200_i2c_aux_xfer, 166 .xfer = gm200_i2c_aux_xfer,
166}; 167};
167 168
diff --git a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padgf119.c b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padgf119.c
index d53212f1aa52..3bc4d0310076 100644
--- a/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padgf119.c
+++ b/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/padgf119.c
@@ -28,7 +28,7 @@
28static const struct nvkm_i2c_pad_func 28static const struct nvkm_i2c_pad_func
29gf119_i2c_pad_s_func = { 29gf119_i2c_pad_s_func = {
30 .bus_new_4 = gf119_i2c_bus_new, 30 .bus_new_4 = gf119_i2c_bus_new,
31 .aux_new_6 = g94_i2c_aux_new, 31 .aux_new_6 = gf119_i2c_aux_new,
32 .mode = g94_i2c_pad_mode, 32 .mode = g94_i2c_pad_mode,
33}; 33};
34 34
@@ -41,7 +41,7 @@ gf119_i2c_pad_s_new(struct nvkm_i2c *i2c, int id, struct nvkm_i2c_pad **ppad)
41static const struct nvkm_i2c_pad_func 41static const struct nvkm_i2c_pad_func
42gf119_i2c_pad_x_func = { 42gf119_i2c_pad_x_func = {
43 .bus_new_4 = gf119_i2c_bus_new, 43 .bus_new_4 = gf119_i2c_bus_new,
44 .aux_new_6 = g94_i2c_aux_new, 44 .aux_new_6 = gf119_i2c_aux_new,
45}; 45};
46 46
47int 47int
diff --git a/drivers/gpu/drm/rockchip/Kconfig b/drivers/gpu/drm/rockchip/Kconfig
index 50c41c0a50ef..dcc539ba85d6 100644
--- a/drivers/gpu/drm/rockchip/Kconfig
+++ b/drivers/gpu/drm/rockchip/Kconfig
@@ -5,6 +5,10 @@ config DRM_ROCKCHIP
5 select DRM_KMS_HELPER 5 select DRM_KMS_HELPER
6 select DRM_PANEL 6 select DRM_PANEL
7 select VIDEOMODE_HELPERS 7 select VIDEOMODE_HELPERS
8 select DRM_ANALOGIX_DP if ROCKCHIP_ANALOGIX_DP
9 select DRM_DW_HDMI if ROCKCHIP_DW_HDMI
10 select DRM_MIPI_DSI if ROCKCHIP_DW_MIPI_DSI
11 select SND_SOC_HDMI_CODEC if ROCKCHIP_CDN_DP && SND_SOC
8 help 12 help
9 Choose this option if you have a Rockchip soc chipset. 13 Choose this option if you have a Rockchip soc chipset.
10 This driver provides kernel mode setting and buffer 14 This driver provides kernel mode setting and buffer
@@ -12,10 +16,10 @@ config DRM_ROCKCHIP
12 2D or 3D acceleration; acceleration is performed by other 16 2D or 3D acceleration; acceleration is performed by other
13 IP found on the SoC. 17 IP found on the SoC.
14 18
19if DRM_ROCKCHIP
20
15config ROCKCHIP_ANALOGIX_DP 21config ROCKCHIP_ANALOGIX_DP
16 bool "Rockchip specific extensions for Analogix DP driver" 22 bool "Rockchip specific extensions for Analogix DP driver"
17 depends on DRM_ROCKCHIP
18 select DRM_ANALOGIX_DP
19 help 23 help
20 This selects support for Rockchip SoC specific extensions 24 This selects support for Rockchip SoC specific extensions
21 for the Analogix Core DP driver. If you want to enable DP 25 for the Analogix Core DP driver. If you want to enable DP
@@ -23,9 +27,7 @@ config ROCKCHIP_ANALOGIX_DP
23 27
24config ROCKCHIP_CDN_DP 28config ROCKCHIP_CDN_DP
25 bool "Rockchip cdn DP" 29 bool "Rockchip cdn DP"
26 depends on DRM_ROCKCHIP 30 depends on EXTCON=y || (EXTCON=m && DRM_ROCKCHIP=m)
27 depends on EXTCON
28 select SND_SOC_HDMI_CODEC if SND_SOC
29 help 31 help
30 This selects support for Rockchip SoC specific extensions 32 This selects support for Rockchip SoC specific extensions
31 for the cdn DP driver. If you want to enable Dp on 33 for the cdn DP driver. If you want to enable Dp on
@@ -34,8 +36,6 @@ config ROCKCHIP_CDN_DP
34 36
35config ROCKCHIP_DW_HDMI 37config ROCKCHIP_DW_HDMI
36 bool "Rockchip specific extensions for Synopsys DW HDMI" 38 bool "Rockchip specific extensions for Synopsys DW HDMI"
37 depends on DRM_ROCKCHIP
38 select DRM_DW_HDMI
39 help 39 help
40 This selects support for Rockchip SoC specific extensions 40 This selects support for Rockchip SoC specific extensions
41 for the Synopsys DesignWare HDMI driver. If you want to 41 for the Synopsys DesignWare HDMI driver. If you want to
@@ -44,8 +44,6 @@ config ROCKCHIP_DW_HDMI
44 44
45config ROCKCHIP_DW_MIPI_DSI 45config ROCKCHIP_DW_MIPI_DSI
46 bool "Rockchip specific extensions for Synopsys DW MIPI DSI" 46 bool "Rockchip specific extensions for Synopsys DW MIPI DSI"
47 depends on DRM_ROCKCHIP
48 select DRM_MIPI_DSI
49 help 47 help
50 This selects support for Rockchip SoC specific extensions 48 This selects support for Rockchip SoC specific extensions
51 for the Synopsys DesignWare HDMI driver. If you want to 49 for the Synopsys DesignWare HDMI driver. If you want to
@@ -54,8 +52,9 @@ config ROCKCHIP_DW_MIPI_DSI
54 52
55config ROCKCHIP_INNO_HDMI 53config ROCKCHIP_INNO_HDMI
56 bool "Rockchip specific extensions for Innosilicon HDMI" 54 bool "Rockchip specific extensions for Innosilicon HDMI"
57 depends on DRM_ROCKCHIP
58 help 55 help
59 This selects support for Rockchip SoC specific extensions 56 This selects support for Rockchip SoC specific extensions
60 for the Innosilicon HDMI driver. If you want to enable 57 for the Innosilicon HDMI driver. If you want to enable
61 HDMI on RK3036 based SoC, you should select this option. 58 HDMI on RK3036 based SoC, you should select this option.
59
60endif
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
index 35bf781e418e..c7056322211c 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_buffer.c
@@ -30,49 +30,49 @@
30#include <drm/ttm/ttm_placement.h> 30#include <drm/ttm/ttm_placement.h>
31#include <drm/ttm/ttm_page_alloc.h> 31#include <drm/ttm/ttm_page_alloc.h>
32 32
33static struct ttm_place vram_placement_flags = { 33static const struct ttm_place vram_placement_flags = {
34 .fpfn = 0, 34 .fpfn = 0,
35 .lpfn = 0, 35 .lpfn = 0,
36 .flags = TTM_PL_FLAG_VRAM | TTM_PL_FLAG_CACHED 36 .flags = TTM_PL_FLAG_VRAM | TTM_PL_FLAG_CACHED
37}; 37};
38 38
39static struct ttm_place vram_ne_placement_flags = { 39static const struct ttm_place vram_ne_placement_flags = {
40 .fpfn = 0, 40 .fpfn = 0,
41 .lpfn = 0, 41 .lpfn = 0,
42 .flags = TTM_PL_FLAG_VRAM | TTM_PL_FLAG_CACHED | TTM_PL_FLAG_NO_EVICT 42 .flags = TTM_PL_FLAG_VRAM | TTM_PL_FLAG_CACHED | TTM_PL_FLAG_NO_EVICT
43}; 43};
44 44
45static struct ttm_place sys_placement_flags = { 45static const struct ttm_place sys_placement_flags = {
46 .fpfn = 0, 46 .fpfn = 0,
47 .lpfn = 0, 47 .lpfn = 0,
48 .flags = TTM_PL_FLAG_SYSTEM | TTM_PL_FLAG_CACHED 48 .flags = TTM_PL_FLAG_SYSTEM | TTM_PL_FLAG_CACHED
49}; 49};
50 50
51static struct ttm_place sys_ne_placement_flags = { 51static const struct ttm_place sys_ne_placement_flags = {
52 .fpfn = 0, 52 .fpfn = 0,
53 .lpfn = 0, 53 .lpfn = 0,
54 .flags = TTM_PL_FLAG_SYSTEM | TTM_PL_FLAG_CACHED | TTM_PL_FLAG_NO_EVICT 54 .flags = TTM_PL_FLAG_SYSTEM | TTM_PL_FLAG_CACHED | TTM_PL_FLAG_NO_EVICT
55}; 55};
56 56
57static struct ttm_place gmr_placement_flags = { 57static const struct ttm_place gmr_placement_flags = {
58 .fpfn = 0, 58 .fpfn = 0,
59 .lpfn = 0, 59 .lpfn = 0,
60 .flags = VMW_PL_FLAG_GMR | TTM_PL_FLAG_CACHED 60 .flags = VMW_PL_FLAG_GMR | TTM_PL_FLAG_CACHED
61}; 61};
62 62
63static struct ttm_place gmr_ne_placement_flags = { 63static const struct ttm_place gmr_ne_placement_flags = {
64 .fpfn = 0, 64 .fpfn = 0,
65 .lpfn = 0, 65 .lpfn = 0,
66 .flags = VMW_PL_FLAG_GMR | TTM_PL_FLAG_CACHED | TTM_PL_FLAG_NO_EVICT 66 .flags = VMW_PL_FLAG_GMR | TTM_PL_FLAG_CACHED | TTM_PL_FLAG_NO_EVICT
67}; 67};
68 68
69static struct ttm_place mob_placement_flags = { 69static const struct ttm_place mob_placement_flags = {
70 .fpfn = 0, 70 .fpfn = 0,
71 .lpfn = 0, 71 .lpfn = 0,
72 .flags = VMW_PL_FLAG_MOB | TTM_PL_FLAG_CACHED 72 .flags = VMW_PL_FLAG_MOB | TTM_PL_FLAG_CACHED
73}; 73};
74 74
75static struct ttm_place mob_ne_placement_flags = { 75static const struct ttm_place mob_ne_placement_flags = {
76 .fpfn = 0, 76 .fpfn = 0,
77 .lpfn = 0, 77 .lpfn = 0,
78 .flags = VMW_PL_FLAG_MOB | TTM_PL_FLAG_CACHED | TTM_PL_FLAG_NO_EVICT 78 .flags = VMW_PL_FLAG_MOB | TTM_PL_FLAG_CACHED | TTM_PL_FLAG_NO_EVICT
@@ -85,7 +85,7 @@ struct ttm_placement vmw_vram_placement = {
85 .busy_placement = &vram_placement_flags 85 .busy_placement = &vram_placement_flags
86}; 86};
87 87
88static struct ttm_place vram_gmr_placement_flags[] = { 88static const struct ttm_place vram_gmr_placement_flags[] = {
89 { 89 {
90 .fpfn = 0, 90 .fpfn = 0,
91 .lpfn = 0, 91 .lpfn = 0,
@@ -97,7 +97,7 @@ static struct ttm_place vram_gmr_placement_flags[] = {
97 } 97 }
98}; 98};
99 99
100static struct ttm_place gmr_vram_placement_flags[] = { 100static const struct ttm_place gmr_vram_placement_flags[] = {
101 { 101 {
102 .fpfn = 0, 102 .fpfn = 0,
103 .lpfn = 0, 103 .lpfn = 0,
@@ -116,7 +116,7 @@ struct ttm_placement vmw_vram_gmr_placement = {
116 .busy_placement = &gmr_placement_flags 116 .busy_placement = &gmr_placement_flags
117}; 117};
118 118
119static struct ttm_place vram_gmr_ne_placement_flags[] = { 119static const struct ttm_place vram_gmr_ne_placement_flags[] = {
120 { 120 {
121 .fpfn = 0, 121 .fpfn = 0,
122 .lpfn = 0, 122 .lpfn = 0,
@@ -165,7 +165,7 @@ struct ttm_placement vmw_sys_ne_placement = {
165 .busy_placement = &sys_ne_placement_flags 165 .busy_placement = &sys_ne_placement_flags
166}; 166};
167 167
168static struct ttm_place evictable_placement_flags[] = { 168static const struct ttm_place evictable_placement_flags[] = {
169 { 169 {
170 .fpfn = 0, 170 .fpfn = 0,
171 .lpfn = 0, 171 .lpfn = 0,
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c
index 99a7f4ab7d97..86178796de6c 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf.c
@@ -779,8 +779,8 @@ static int vmw_cmdbuf_space_pool(struct vmw_cmdbuf_man *man,
779 if (ret) 779 if (ret)
780 return ret; 780 return ret;
781 781
782 header->cb_header = dma_pool_alloc(man->headers, GFP_KERNEL, 782 header->cb_header = dma_pool_zalloc(man->headers, GFP_KERNEL,
783 &header->handle); 783 &header->handle);
784 if (!header->cb_header) { 784 if (!header->cb_header) {
785 ret = -ENOMEM; 785 ret = -ENOMEM;
786 goto out_no_cb_header; 786 goto out_no_cb_header;
@@ -790,7 +790,6 @@ static int vmw_cmdbuf_space_pool(struct vmw_cmdbuf_man *man,
790 cb_hdr = header->cb_header; 790 cb_hdr = header->cb_header;
791 offset = header->node.start << PAGE_SHIFT; 791 offset = header->node.start << PAGE_SHIFT;
792 header->cmd = man->map + offset; 792 header->cmd = man->map + offset;
793 memset(cb_hdr, 0, sizeof(*cb_hdr));
794 if (man->using_mob) { 793 if (man->using_mob) {
795 cb_hdr->flags = SVGA_CB_FLAG_MOB; 794 cb_hdr->flags = SVGA_CB_FLAG_MOB;
796 cb_hdr->ptr.mob.mobid = man->cmd_space->mem.start; 795 cb_hdr->ptr.mob.mobid = man->cmd_space->mem.start;
@@ -827,8 +826,8 @@ static int vmw_cmdbuf_space_inline(struct vmw_cmdbuf_man *man,
827 if (WARN_ON_ONCE(size > VMW_CMDBUF_INLINE_SIZE)) 826 if (WARN_ON_ONCE(size > VMW_CMDBUF_INLINE_SIZE))
828 return -ENOMEM; 827 return -ENOMEM;
829 828
830 dheader = dma_pool_alloc(man->dheaders, GFP_KERNEL, 829 dheader = dma_pool_zalloc(man->dheaders, GFP_KERNEL,
831 &header->handle); 830 &header->handle);
832 if (!dheader) 831 if (!dheader)
833 return -ENOMEM; 832 return -ENOMEM;
834 833
@@ -837,7 +836,6 @@ static int vmw_cmdbuf_space_inline(struct vmw_cmdbuf_man *man,
837 cb_hdr = &dheader->cb_header; 836 cb_hdr = &dheader->cb_header;
838 header->cb_header = cb_hdr; 837 header->cb_header = cb_hdr;
839 header->cmd = dheader->cmd; 838 header->cmd = dheader->cmd;
840 memset(dheader, 0, sizeof(*dheader));
841 cb_hdr->status = SVGA_CB_STATUS_NONE; 839 cb_hdr->status = SVGA_CB_STATUS_NONE;
842 cb_hdr->flags = SVGA_CB_FLAG_NONE; 840 cb_hdr->flags = SVGA_CB_FLAG_NONE;
843 cb_hdr->ptr.pa = (u64)header->handle + 841 cb_hdr->ptr.pa = (u64)header->handle +
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c b/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c
index 1f013d45c9e9..36c7b6c839c0 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_cmdbuf_res.c
@@ -205,7 +205,7 @@ int vmw_cmdbuf_res_add(struct vmw_cmdbuf_res_manager *man,
205 int ret; 205 int ret;
206 206
207 cres = kzalloc(sizeof(*cres), GFP_KERNEL); 207 cres = kzalloc(sizeof(*cres), GFP_KERNEL);
208 if (unlikely(cres == NULL)) 208 if (unlikely(!cres))
209 return -ENOMEM; 209 return -ENOMEM;
210 210
211 cres->hash.key = user_key | (res_type << 24); 211 cres->hash.key = user_key | (res_type << 24);
@@ -291,7 +291,7 @@ vmw_cmdbuf_res_man_create(struct vmw_private *dev_priv)
291 int ret; 291 int ret;
292 292
293 man = kzalloc(sizeof(*man), GFP_KERNEL); 293 man = kzalloc(sizeof(*man), GFP_KERNEL);
294 if (man == NULL) 294 if (!man)
295 return ERR_PTR(-ENOMEM); 295 return ERR_PTR(-ENOMEM);
296 296
297 man->dev_priv = dev_priv; 297 man->dev_priv = dev_priv;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_context.c b/drivers/gpu/drm/vmwgfx/vmwgfx_context.c
index bcc6d4136c87..4212b3e673bc 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_context.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_context.c
@@ -210,8 +210,8 @@ static int vmw_gb_context_init(struct vmw_private *dev_priv,
210 for (i = 0; i < SVGA_COTABLE_DX10_MAX; ++i) { 210 for (i = 0; i < SVGA_COTABLE_DX10_MAX; ++i) {
211 uctx->cotables[i] = vmw_cotable_alloc(dev_priv, 211 uctx->cotables[i] = vmw_cotable_alloc(dev_priv,
212 &uctx->res, i); 212 &uctx->res, i);
213 if (unlikely(uctx->cotables[i] == NULL)) { 213 if (unlikely(IS_ERR(uctx->cotables[i]))) {
214 ret = -ENOMEM; 214 ret = PTR_ERR(uctx->cotables[i]);
215 goto out_cotables; 215 goto out_cotables;
216 } 216 }
217 } 217 }
@@ -777,7 +777,7 @@ static int vmw_context_define(struct drm_device *dev, void *data,
777 } 777 }
778 778
779 ctx = kzalloc(sizeof(*ctx), GFP_KERNEL); 779 ctx = kzalloc(sizeof(*ctx), GFP_KERNEL);
780 if (unlikely(ctx == NULL)) { 780 if (unlikely(!ctx)) {
781 ttm_mem_global_free(vmw_mem_glob(dev_priv), 781 ttm_mem_global_free(vmw_mem_glob(dev_priv),
782 vmw_user_context_size); 782 vmw_user_context_size);
783 ret = -ENOMEM; 783 ret = -ENOMEM;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c b/drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c
index 6c026d75c180..d87861bbe971 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_cotable.c
@@ -584,7 +584,7 @@ struct vmw_resource *vmw_cotable_alloc(struct vmw_private *dev_priv,
584 return ERR_PTR(ret); 584 return ERR_PTR(ret);
585 585
586 vcotbl = kzalloc(sizeof(*vcotbl), GFP_KERNEL); 586 vcotbl = kzalloc(sizeof(*vcotbl), GFP_KERNEL);
587 if (unlikely(vcotbl == NULL)) { 587 if (unlikely(!vcotbl)) {
588 ret = -ENOMEM; 588 ret = -ENOMEM;
589 goto out_no_alloc; 589 goto out_no_alloc;
590 } 590 }
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
index 4a641555b960..4436d53ae16c 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c
@@ -227,7 +227,7 @@ static const struct drm_ioctl_desc vmw_ioctls[] = {
227 DRM_AUTH | DRM_RENDER_ALLOW), 227 DRM_AUTH | DRM_RENDER_ALLOW),
228}; 228};
229 229
230static struct pci_device_id vmw_pci_id_list[] = { 230static const struct pci_device_id vmw_pci_id_list[] = {
231 {0x15ad, 0x0405, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VMWGFX_CHIP_SVGAII}, 231 {0x15ad, 0x0405, PCI_ANY_ID, PCI_ANY_ID, 0, 0, VMWGFX_CHIP_SVGAII},
232 {0, 0, 0} 232 {0, 0, 0}
233}; 233};
@@ -630,7 +630,7 @@ static int vmw_driver_load(struct drm_device *dev, unsigned long chipset)
630 char host_log[100] = {0}; 630 char host_log[100] = {0};
631 631
632 dev_priv = kzalloc(sizeof(*dev_priv), GFP_KERNEL); 632 dev_priv = kzalloc(sizeof(*dev_priv), GFP_KERNEL);
633 if (unlikely(dev_priv == NULL)) { 633 if (unlikely(!dev_priv)) {
634 DRM_ERROR("Failed allocating a device private struct.\n"); 634 DRM_ERROR("Failed allocating a device private struct.\n");
635 return -ENOMEM; 635 return -ENOMEM;
636 } 636 }
@@ -1035,7 +1035,7 @@ static int vmw_driver_open(struct drm_device *dev, struct drm_file *file_priv)
1035 int ret = -ENOMEM; 1035 int ret = -ENOMEM;
1036 1036
1037 vmw_fp = kzalloc(sizeof(*vmw_fp), GFP_KERNEL); 1037 vmw_fp = kzalloc(sizeof(*vmw_fp), GFP_KERNEL);
1038 if (unlikely(vmw_fp == NULL)) 1038 if (unlikely(!vmw_fp))
1039 return ret; 1039 return ret;
1040 1040
1041 vmw_fp->tfile = ttm_object_file_init(dev_priv->tdev, 10); 1041 vmw_fp->tfile = ttm_object_file_init(dev_priv->tdev, 10);
@@ -1196,7 +1196,7 @@ static int vmw_master_create(struct drm_device *dev,
1196 struct vmw_master *vmaster; 1196 struct vmw_master *vmaster;
1197 1197
1198 vmaster = kzalloc(sizeof(*vmaster), GFP_KERNEL); 1198 vmaster = kzalloc(sizeof(*vmaster), GFP_KERNEL);
1199 if (unlikely(vmaster == NULL)) 1199 if (unlikely(!vmaster))
1200 return -ENOMEM; 1200 return -ENOMEM;
1201 1201
1202 vmw_master_init(vmaster); 1202 vmw_master_init(vmaster);
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
index c7b53d987f06..2cfb3c93f42a 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_execbuf.c
@@ -264,7 +264,7 @@ static int vmw_resource_val_add(struct vmw_sw_context *sw_context,
264 } 264 }
265 265
266 node = kzalloc(sizeof(*node), GFP_KERNEL); 266 node = kzalloc(sizeof(*node), GFP_KERNEL);
267 if (unlikely(node == NULL)) { 267 if (unlikely(!node)) {
268 DRM_ERROR("Failed to allocate a resource validation " 268 DRM_ERROR("Failed to allocate a resource validation "
269 "entry.\n"); 269 "entry.\n");
270 return -ENOMEM; 270 return -ENOMEM;
@@ -452,7 +452,7 @@ static int vmw_resource_relocation_add(struct list_head *list,
452 struct vmw_resource_relocation *rel; 452 struct vmw_resource_relocation *rel;
453 453
454 rel = kmalloc(sizeof(*rel), GFP_KERNEL); 454 rel = kmalloc(sizeof(*rel), GFP_KERNEL);
455 if (unlikely(rel == NULL)) { 455 if (unlikely(!rel)) {
456 DRM_ERROR("Failed to allocate a resource relocation.\n"); 456 DRM_ERROR("Failed to allocate a resource relocation.\n");
457 return -ENOMEM; 457 return -ENOMEM;
458 } 458 }
@@ -519,7 +519,7 @@ static int vmw_cmd_invalid(struct vmw_private *dev_priv,
519 struct vmw_sw_context *sw_context, 519 struct vmw_sw_context *sw_context,
520 SVGA3dCmdHeader *header) 520 SVGA3dCmdHeader *header)
521{ 521{
522 return capable(CAP_SYS_ADMIN) ? : -EINVAL; 522 return -EINVAL;
523} 523}
524 524
525static int vmw_cmd_ok(struct vmw_private *dev_priv, 525static int vmw_cmd_ok(struct vmw_private *dev_priv,
@@ -2584,7 +2584,7 @@ static int vmw_cmd_dx_set_vertex_buffers(struct vmw_private *dev_priv,
2584 2584
2585/** 2585/**
2586 * vmw_cmd_dx_ia_set_vertex_buffers - Validate an 2586 * vmw_cmd_dx_ia_set_vertex_buffers - Validate an
2587 * SVGA_3D_CMD_DX_IA_SET_VERTEX_BUFFERS command. 2587 * SVGA_3D_CMD_DX_IA_SET_INDEX_BUFFER command.
2588 * 2588 *
2589 * @dev_priv: Pointer to a device private struct. 2589 * @dev_priv: Pointer to a device private struct.
2590 * @sw_context: The software context being used for this batch. 2590 * @sw_context: The software context being used for this batch.
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c b/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
index 6b2708b4eafe..b8bc5bc7de7e 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fence.c
@@ -284,7 +284,7 @@ struct vmw_fence_manager *vmw_fence_manager_init(struct vmw_private *dev_priv)
284{ 284{
285 struct vmw_fence_manager *fman = kzalloc(sizeof(*fman), GFP_KERNEL); 285 struct vmw_fence_manager *fman = kzalloc(sizeof(*fman), GFP_KERNEL);
286 286
287 if (unlikely(fman == NULL)) 287 if (unlikely(!fman))
288 return NULL; 288 return NULL;
289 289
290 fman->dev_priv = dev_priv; 290 fman->dev_priv = dev_priv;
@@ -541,7 +541,7 @@ int vmw_fence_create(struct vmw_fence_manager *fman,
541 int ret; 541 int ret;
542 542
543 fence = kzalloc(sizeof(*fence), GFP_KERNEL); 543 fence = kzalloc(sizeof(*fence), GFP_KERNEL);
544 if (unlikely(fence == NULL)) 544 if (unlikely(!fence))
545 return -ENOMEM; 545 return -ENOMEM;
546 546
547 ret = vmw_fence_obj_init(fman, fence, seqno, 547 ret = vmw_fence_obj_init(fman, fence, seqno,
@@ -606,7 +606,7 @@ int vmw_user_fence_create(struct drm_file *file_priv,
606 return ret; 606 return ret;
607 607
608 ufence = kzalloc(sizeof(*ufence), GFP_KERNEL); 608 ufence = kzalloc(sizeof(*ufence), GFP_KERNEL);
609 if (unlikely(ufence == NULL)) { 609 if (unlikely(!ufence)) {
610 ret = -ENOMEM; 610 ret = -ENOMEM;
611 goto out_no_object; 611 goto out_no_object;
612 } 612 }
@@ -966,7 +966,7 @@ int vmw_event_fence_action_queue(struct drm_file *file_priv,
966 struct vmw_fence_manager *fman = fman_from_fence(fence); 966 struct vmw_fence_manager *fman = fman_from_fence(fence);
967 967
968 eaction = kzalloc(sizeof(*eaction), GFP_KERNEL); 968 eaction = kzalloc(sizeof(*eaction), GFP_KERNEL);
969 if (unlikely(eaction == NULL)) 969 if (unlikely(!eaction))
970 return -ENOMEM; 970 return -ENOMEM;
971 971
972 eaction->event = event; 972 eaction->event = event;
@@ -1002,7 +1002,7 @@ static int vmw_event_fence_action_create(struct drm_file *file_priv,
1002 int ret; 1002 int ret;
1003 1003
1004 event = kzalloc(sizeof(*event), GFP_KERNEL); 1004 event = kzalloc(sizeof(*event), GFP_KERNEL);
1005 if (unlikely(event == NULL)) { 1005 if (unlikely(!event)) {
1006 DRM_ERROR("Failed to allocate an event.\n"); 1006 DRM_ERROR("Failed to allocate an event.\n");
1007 ret = -ENOMEM; 1007 ret = -ENOMEM;
1008 goto out_no_space; 1008 goto out_no_space;
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c b/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
index c1900f4390a4..d2b03d4a3c86 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
@@ -121,7 +121,7 @@ static int vmw_gmrid_man_init(struct ttm_mem_type_manager *man,
121 struct vmwgfx_gmrid_man *gman = 121 struct vmwgfx_gmrid_man *gman =
122 kzalloc(sizeof(*gman), GFP_KERNEL); 122 kzalloc(sizeof(*gman), GFP_KERNEL);
123 123
124 if (unlikely(gman == NULL)) 124 if (unlikely(!gman))
125 return -ENOMEM; 125 return -ENOMEM;
126 126
127 spin_lock_init(&gman->lock); 127 spin_lock_init(&gman->lock);
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
index 3d94ea67a825..61e06f0e8cd3 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
@@ -384,6 +384,12 @@ vmw_du_cursor_plane_atomic_update(struct drm_plane *plane,
384 384
385 hotspot_x = du->hotspot_x; 385 hotspot_x = du->hotspot_x;
386 hotspot_y = du->hotspot_y; 386 hotspot_y = du->hotspot_y;
387
388 if (plane->fb) {
389 hotspot_x += plane->fb->hot_x;
390 hotspot_y += plane->fb->hot_y;
391 }
392
387 du->cursor_surface = vps->surf; 393 du->cursor_surface = vps->surf;
388 du->cursor_dmabuf = vps->dmabuf; 394 du->cursor_dmabuf = vps->dmabuf;
389 395
@@ -411,6 +417,9 @@ vmw_du_cursor_plane_atomic_update(struct drm_plane *plane,
411 vmw_cursor_update_position(dev_priv, true, 417 vmw_cursor_update_position(dev_priv, true,
412 du->cursor_x + hotspot_x, 418 du->cursor_x + hotspot_x,
413 du->cursor_y + hotspot_y); 419 du->cursor_y + hotspot_y);
420
421 du->core_hotspot_x = hotspot_x - du->hotspot_x;
422 du->core_hotspot_y = hotspot_y - du->hotspot_y;
414 } else { 423 } else {
415 DRM_ERROR("Failed to update cursor image\n"); 424 DRM_ERROR("Failed to update cursor image\n");
416 } 425 }
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c b/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c
index 941bcfd131ff..b17f08fc50d3 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_mob.c
@@ -320,14 +320,14 @@ int vmw_otables_setup(struct vmw_private *dev_priv)
320 320
321 if (dev_priv->has_dx) { 321 if (dev_priv->has_dx) {
322 *otables = kmemdup(dx_tables, sizeof(dx_tables), GFP_KERNEL); 322 *otables = kmemdup(dx_tables, sizeof(dx_tables), GFP_KERNEL);
323 if (*otables == NULL) 323 if (!(*otables))
324 return -ENOMEM; 324 return -ENOMEM;
325 325
326 dev_priv->otable_batch.num_otables = ARRAY_SIZE(dx_tables); 326 dev_priv->otable_batch.num_otables = ARRAY_SIZE(dx_tables);
327 } else { 327 } else {
328 *otables = kmemdup(pre_dx_tables, sizeof(pre_dx_tables), 328 *otables = kmemdup(pre_dx_tables, sizeof(pre_dx_tables),
329 GFP_KERNEL); 329 GFP_KERNEL);
330 if (*otables == NULL) 330 if (!(*otables))
331 return -ENOMEM; 331 return -ENOMEM;
332 332
333 dev_priv->otable_batch.num_otables = ARRAY_SIZE(pre_dx_tables); 333 dev_priv->otable_batch.num_otables = ARRAY_SIZE(pre_dx_tables);
@@ -407,7 +407,7 @@ struct vmw_mob *vmw_mob_create(unsigned long data_pages)
407{ 407{
408 struct vmw_mob *mob = kzalloc(sizeof(*mob), GFP_KERNEL); 408 struct vmw_mob *mob = kzalloc(sizeof(*mob), GFP_KERNEL);
409 409
410 if (unlikely(mob == NULL)) 410 if (unlikely(!mob))
411 return NULL; 411 return NULL;
412 412
413 mob->num_pages = vmw_mob_calculate_pt_pages(data_pages); 413 mob->num_pages = vmw_mob_calculate_pt_pages(data_pages);
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c b/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c
index 6063c9636d4a..97000996b8dc 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_msg.c
@@ -244,7 +244,7 @@ static int vmw_recv_msg(struct rpc_channel *channel, void **msg,
244 244
245 reply_len = ebx; 245 reply_len = ebx;
246 reply = kzalloc(reply_len + 1, GFP_KERNEL); 246 reply = kzalloc(reply_len + 1, GFP_KERNEL);
247 if (reply == NULL) { 247 if (!reply) {
248 DRM_ERROR("Cannot allocate memory for reply\n"); 248 DRM_ERROR("Cannot allocate memory for reply\n");
249 return -ENOMEM; 249 return -ENOMEM;
250 } 250 }
@@ -340,7 +340,7 @@ int vmw_host_get_guestinfo(const char *guest_info_param,
340 340
341 msg_len = strlen(guest_info_param) + strlen("info-get ") + 1; 341 msg_len = strlen(guest_info_param) + strlen("info-get ") + 1;
342 msg = kzalloc(msg_len, GFP_KERNEL); 342 msg = kzalloc(msg_len, GFP_KERNEL);
343 if (msg == NULL) { 343 if (!msg) {
344 DRM_ERROR("Cannot allocate memory to get %s", guest_info_param); 344 DRM_ERROR("Cannot allocate memory to get %s", guest_info_param);
345 return -ENOMEM; 345 return -ENOMEM;
346 } 346 }
@@ -400,7 +400,7 @@ int vmw_host_log(const char *log)
400 400
401 msg_len = strlen(log) + strlen("log ") + 1; 401 msg_len = strlen(log) + strlen("log ") + 1;
402 msg = kzalloc(msg_len, GFP_KERNEL); 402 msg = kzalloc(msg_len, GFP_KERNEL);
403 if (msg == NULL) { 403 if (!msg) {
404 DRM_ERROR("Cannot allocate memory for log message\n"); 404 DRM_ERROR("Cannot allocate memory for log message\n");
405 return -ENOMEM; 405 return -ENOMEM;
406 } 406 }
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
index 7d591f653dfa..a96f90f017d1 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c
@@ -446,7 +446,7 @@ int vmw_user_dmabuf_alloc(struct vmw_private *dev_priv,
446 int ret; 446 int ret;
447 447
448 user_bo = kzalloc(sizeof(*user_bo), GFP_KERNEL); 448 user_bo = kzalloc(sizeof(*user_bo), GFP_KERNEL);
449 if (unlikely(user_bo == NULL)) { 449 if (unlikely(!user_bo)) {
450 DRM_ERROR("Failed to allocate a buffer.\n"); 450 DRM_ERROR("Failed to allocate a buffer.\n");
451 return -ENOMEM; 451 return -ENOMEM;
452 } 452 }
@@ -836,7 +836,7 @@ static int vmw_resource_buf_alloc(struct vmw_resource *res,
836 } 836 }
837 837
838 backup = kzalloc(sizeof(*backup), GFP_KERNEL); 838 backup = kzalloc(sizeof(*backup), GFP_KERNEL);
839 if (unlikely(backup == NULL)) 839 if (unlikely(!backup))
840 return -ENOMEM; 840 return -ENOMEM;
841 841
842 ret = vmw_dmabuf_init(res->dev_priv, backup, res->backup_size, 842 ret = vmw_dmabuf_init(res->dev_priv, backup, res->backup_size,
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c b/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c
index 68f135c5b0d8..9b832f136813 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_shader.c
@@ -751,7 +751,7 @@ static int vmw_user_shader_alloc(struct vmw_private *dev_priv,
751 } 751 }
752 752
753 ushader = kzalloc(sizeof(*ushader), GFP_KERNEL); 753 ushader = kzalloc(sizeof(*ushader), GFP_KERNEL);
754 if (unlikely(ushader == NULL)) { 754 if (unlikely(!ushader)) {
755 ttm_mem_global_free(vmw_mem_glob(dev_priv), 755 ttm_mem_global_free(vmw_mem_glob(dev_priv),
756 vmw_user_shader_size); 756 vmw_user_shader_size);
757 ret = -ENOMEM; 757 ret = -ENOMEM;
@@ -821,7 +821,7 @@ static struct vmw_resource *vmw_shader_alloc(struct vmw_private *dev_priv,
821 } 821 }
822 822
823 shader = kzalloc(sizeof(*shader), GFP_KERNEL); 823 shader = kzalloc(sizeof(*shader), GFP_KERNEL);
824 if (unlikely(shader == NULL)) { 824 if (unlikely(!shader)) {
825 ttm_mem_global_free(vmw_mem_glob(dev_priv), 825 ttm_mem_global_free(vmw_mem_glob(dev_priv),
826 vmw_shader_size); 826 vmw_shader_size);
827 ret = -ENOMEM; 827 ret = -ENOMEM;
@@ -981,7 +981,7 @@ int vmw_compat_shader_add(struct vmw_private *dev_priv,
981 981
982 /* Allocate and pin a DMA buffer */ 982 /* Allocate and pin a DMA buffer */
983 buf = kzalloc(sizeof(*buf), GFP_KERNEL); 983 buf = kzalloc(sizeof(*buf), GFP_KERNEL);
984 if (unlikely(buf == NULL)) 984 if (unlikely(!buf))
985 return -ENOMEM; 985 return -ENOMEM;
986 986
987 ret = vmw_dmabuf_init(dev_priv, buf, size, &vmw_sys_ne_placement, 987 ret = vmw_dmabuf_init(dev_priv, buf, size, &vmw_sys_ne_placement,
diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
index 50be1f034f9e..5284e8d2f7ba 100644
--- a/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_stdu.c
@@ -1640,8 +1640,8 @@ int vmw_kms_stdu_init_display(struct vmw_private *dev_priv)
1640 * something arbitrarily large and we will reject any layout 1640 * something arbitrarily large and we will reject any layout
1641 * that doesn't fit prim_bb_mem later 1641 * that doesn't fit prim_bb_mem later
1642 */ 1642 */
1643 dev->mode_config.max_width = 16384; 1643 dev->mode_config.max_width = 8192;
1644 dev->mode_config.max_height = 16384; 1644 dev->mode_config.max_height = 8192;
1645 } 1645 }
1646 1646
1647 vmw_kms_create_implicit_placement_property(dev_priv, false); 1647 vmw_kms_create_implicit_placement_property(dev_priv, false);
diff --git a/drivers/gpu/host1x/dev.c b/drivers/gpu/host1x/dev.c
index 2c58a390123a..778272514164 100644
--- a/drivers/gpu/host1x/dev.c
+++ b/drivers/gpu/host1x/dev.c
@@ -186,8 +186,13 @@ static int host1x_probe(struct platform_device *pdev)
186 return -ENOMEM; 186 return -ENOMEM;
187 187
188 err = iommu_attach_device(host->domain, &pdev->dev); 188 err = iommu_attach_device(host->domain, &pdev->dev);
189 if (err) 189 if (err == -ENODEV) {
190 iommu_domain_free(host->domain);
191 host->domain = NULL;
192 goto skip_iommu;
193 } else if (err) {
190 goto fail_free_domain; 194 goto fail_free_domain;
195 }
191 196
192 geometry = &host->domain->geometry; 197 geometry = &host->domain->geometry;
193 198
@@ -198,6 +203,7 @@ static int host1x_probe(struct platform_device *pdev)
198 host->iova_end = geometry->aperture_end; 203 host->iova_end = geometry->aperture_end;
199 } 204 }
200 205
206skip_iommu:
201 err = host1x_channel_list_init(&host->channel_list, 207 err = host1x_channel_list_init(&host->channel_list,
202 host->info->nb_channels); 208 host->info->nb_channels);
203 if (err) { 209 if (err) {
diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
index 6fd01a692197..9017dcc14502 100644
--- a/drivers/hid/hid-core.c
+++ b/drivers/hid/hid-core.c
@@ -2216,6 +2216,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
2216#if IS_ENABLED(CONFIG_HID_ORTEK) 2216#if IS_ENABLED(CONFIG_HID_ORTEK)
2217 { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_PKB1700) }, 2217 { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_PKB1700) },
2218 { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_WKB2000) }, 2218 { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_WKB2000) },
2219 { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_IHOME_IMAC_A210S) },
2219 { HID_USB_DEVICE(USB_VENDOR_ID_SKYCABLE, USB_DEVICE_ID_SKYCABLE_WIRELESS_PRESENTER) }, 2220 { HID_USB_DEVICE(USB_VENDOR_ID_SKYCABLE, USB_DEVICE_ID_SKYCABLE_WIRELESS_PRESENTER) },
2220#endif 2221#endif
2221#if IS_ENABLED(CONFIG_HID_PANTHERLORD) 2222#if IS_ENABLED(CONFIG_HID_PANTHERLORD)
diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
index 3d911bfd91cf..c9ba4c6db74c 100644
--- a/drivers/hid/hid-ids.h
+++ b/drivers/hid/hid-ids.h
@@ -824,6 +824,7 @@
824#define USB_VENDOR_ID_ORTEK 0x05a4 824#define USB_VENDOR_ID_ORTEK 0x05a4
825#define USB_DEVICE_ID_ORTEK_PKB1700 0x1700 825#define USB_DEVICE_ID_ORTEK_PKB1700 0x1700
826#define USB_DEVICE_ID_ORTEK_WKB2000 0x2000 826#define USB_DEVICE_ID_ORTEK_WKB2000 0x2000
827#define USB_DEVICE_ID_ORTEK_IHOME_IMAC_A210S 0x8003
827 828
828#define USB_VENDOR_ID_PLANTRONICS 0x047f 829#define USB_VENDOR_ID_PLANTRONICS 0x047f
829 830
diff --git a/drivers/hid/hid-ortek.c b/drivers/hid/hid-ortek.c
index 6620f15fec22..8783a064cdcf 100644
--- a/drivers/hid/hid-ortek.c
+++ b/drivers/hid/hid-ortek.c
@@ -5,6 +5,7 @@
5 * 5 *
6 * Ortek PKB-1700 6 * Ortek PKB-1700
7 * Ortek WKB-2000 7 * Ortek WKB-2000
8 * iHome IMAC-A210S
8 * Skycable wireless presenter 9 * Skycable wireless presenter
9 * 10 *
10 * Copyright (c) 2010 Johnathon Harris <jmharris@gmail.com> 11 * Copyright (c) 2010 Johnathon Harris <jmharris@gmail.com>
@@ -28,10 +29,10 @@ static __u8 *ortek_report_fixup(struct hid_device *hdev, __u8 *rdesc,
28 unsigned int *rsize) 29 unsigned int *rsize)
29{ 30{
30 if (*rsize >= 56 && rdesc[54] == 0x25 && rdesc[55] == 0x01) { 31 if (*rsize >= 56 && rdesc[54] == 0x25 && rdesc[55] == 0x01) {
31 hid_info(hdev, "Fixing up logical minimum in report descriptor (Ortek)\n"); 32 hid_info(hdev, "Fixing up logical maximum in report descriptor (Ortek)\n");
32 rdesc[55] = 0x92; 33 rdesc[55] = 0x92;
33 } else if (*rsize >= 54 && rdesc[52] == 0x25 && rdesc[53] == 0x01) { 34 } else if (*rsize >= 54 && rdesc[52] == 0x25 && rdesc[53] == 0x01) {
34 hid_info(hdev, "Fixing up logical minimum in report descriptor (Skycable)\n"); 35 hid_info(hdev, "Fixing up logical maximum in report descriptor (Skycable)\n");
35 rdesc[53] = 0x65; 36 rdesc[53] = 0x65;
36 } 37 }
37 return rdesc; 38 return rdesc;
@@ -40,6 +41,7 @@ static __u8 *ortek_report_fixup(struct hid_device *hdev, __u8 *rdesc,
40static const struct hid_device_id ortek_devices[] = { 41static const struct hid_device_id ortek_devices[] = {
41 { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_PKB1700) }, 42 { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_PKB1700) },
42 { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_WKB2000) }, 43 { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_WKB2000) },
44 { HID_USB_DEVICE(USB_VENDOR_ID_ORTEK, USB_DEVICE_ID_ORTEK_IHOME_IMAC_A210S) },
43 { HID_USB_DEVICE(USB_VENDOR_ID_SKYCABLE, USB_DEVICE_ID_SKYCABLE_WIRELESS_PRESENTER) }, 45 { HID_USB_DEVICE(USB_VENDOR_ID_SKYCABLE, USB_DEVICE_ID_SKYCABLE_WIRELESS_PRESENTER) },
44 { } 46 { }
45}; 47};
diff --git a/drivers/hid/usbhid/hid-core.c b/drivers/hid/usbhid/hid-core.c
index 76013eb5cb7f..c008847e0b20 100644
--- a/drivers/hid/usbhid/hid-core.c
+++ b/drivers/hid/usbhid/hid-core.c
@@ -680,18 +680,21 @@ static int usbhid_open(struct hid_device *hid)
680 struct usbhid_device *usbhid = hid->driver_data; 680 struct usbhid_device *usbhid = hid->driver_data;
681 int res; 681 int res;
682 682
683 set_bit(HID_OPENED, &usbhid->iofl);
684
683 if (hid->quirks & HID_QUIRK_ALWAYS_POLL) 685 if (hid->quirks & HID_QUIRK_ALWAYS_POLL)
684 return 0; 686 return 0;
685 687
686 res = usb_autopm_get_interface(usbhid->intf); 688 res = usb_autopm_get_interface(usbhid->intf);
687 /* the device must be awake to reliably request remote wakeup */ 689 /* the device must be awake to reliably request remote wakeup */
688 if (res < 0) 690 if (res < 0) {
691 clear_bit(HID_OPENED, &usbhid->iofl);
689 return -EIO; 692 return -EIO;
693 }
690 694
691 usbhid->intf->needs_remote_wakeup = 1; 695 usbhid->intf->needs_remote_wakeup = 1;
692 696
693 set_bit(HID_RESUME_RUNNING, &usbhid->iofl); 697 set_bit(HID_RESUME_RUNNING, &usbhid->iofl);
694 set_bit(HID_OPENED, &usbhid->iofl);
695 set_bit(HID_IN_POLLING, &usbhid->iofl); 698 set_bit(HID_IN_POLLING, &usbhid->iofl);
696 699
697 res = hid_start_in(hid); 700 res = hid_start_in(hid);
@@ -727,19 +730,20 @@ static void usbhid_close(struct hid_device *hid)
727{ 730{
728 struct usbhid_device *usbhid = hid->driver_data; 731 struct usbhid_device *usbhid = hid->driver_data;
729 732
730 if (hid->quirks & HID_QUIRK_ALWAYS_POLL)
731 return;
732
733 /* 733 /*
734 * Make sure we don't restart data acquisition due to 734 * Make sure we don't restart data acquisition due to
735 * a resumption we no longer care about by avoiding racing 735 * a resumption we no longer care about by avoiding racing
736 * with hid_start_in(). 736 * with hid_start_in().
737 */ 737 */
738 spin_lock_irq(&usbhid->lock); 738 spin_lock_irq(&usbhid->lock);
739 clear_bit(HID_IN_POLLING, &usbhid->iofl);
740 clear_bit(HID_OPENED, &usbhid->iofl); 739 clear_bit(HID_OPENED, &usbhid->iofl);
740 if (!(hid->quirks & HID_QUIRK_ALWAYS_POLL))
741 clear_bit(HID_IN_POLLING, &usbhid->iofl);
741 spin_unlock_irq(&usbhid->lock); 742 spin_unlock_irq(&usbhid->lock);
742 743
744 if (hid->quirks & HID_QUIRK_ALWAYS_POLL)
745 return;
746
743 hid_cancel_delayed_stuff(usbhid); 747 hid_cancel_delayed_stuff(usbhid);
744 usb_kill_urb(usbhid->urbin); 748 usb_kill_urb(usbhid->urbin);
745 usbhid->intf->needs_remote_wakeup = 0; 749 usbhid->intf->needs_remote_wakeup = 0;
diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
index 1006b230b236..65fa29591d21 100644
--- a/drivers/i2c/busses/Kconfig
+++ b/drivers/i2c/busses/Kconfig
@@ -983,7 +983,7 @@ config I2C_UNIPHIER_F
983 983
984config I2C_VERSATILE 984config I2C_VERSATILE
985 tristate "ARM Versatile/Realview I2C bus support" 985 tristate "ARM Versatile/Realview I2C bus support"
986 depends on ARCH_VERSATILE || ARCH_REALVIEW || ARCH_VEXPRESS || COMPILE_TEST 986 depends on ARCH_MPS2 || ARCH_VERSATILE || ARCH_REALVIEW || ARCH_VEXPRESS || COMPILE_TEST
987 select I2C_ALGOBIT 987 select I2C_ALGOBIT
988 help 988 help
989 Say yes if you want to support the I2C serial bus on ARMs Versatile 989 Say yes if you want to support the I2C serial bus on ARMs Versatile
diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c
index 2ea6d0d25a01..143a8fd582b4 100644
--- a/drivers/i2c/busses/i2c-designware-platdrv.c
+++ b/drivers/i2c/busses/i2c-designware-platdrv.c
@@ -298,6 +298,9 @@ static int dw_i2c_plat_probe(struct platform_device *pdev)
298 } 298 }
299 299
300 acpi_speed = i2c_acpi_find_bus_speed(&pdev->dev); 300 acpi_speed = i2c_acpi_find_bus_speed(&pdev->dev);
301 /* Some broken DSTDs use 1MiHz instead of 1MHz */
302 if (acpi_speed == 1048576)
303 acpi_speed = 1000000;
301 /* 304 /*
302 * Find bus speed from the "clock-frequency" device property, ACPI 305 * Find bus speed from the "clock-frequency" device property, ACPI
303 * or by using fast mode if neither is set. 306 * or by using fast mode if neither is set.
@@ -319,7 +322,8 @@ static int dw_i2c_plat_probe(struct platform_device *pdev)
319 if (dev->clk_freq != 100000 && dev->clk_freq != 400000 322 if (dev->clk_freq != 100000 && dev->clk_freq != 400000
320 && dev->clk_freq != 1000000 && dev->clk_freq != 3400000) { 323 && dev->clk_freq != 1000000 && dev->clk_freq != 3400000) {
321 dev_err(&pdev->dev, 324 dev_err(&pdev->dev,
322 "Only 100kHz, 400kHz, 1MHz and 3.4MHz supported"); 325 "%d Hz is unsupported, only 100kHz, 400kHz, 1MHz and 3.4MHz are supported\n",
326 dev->clk_freq);
323 ret = -EINVAL; 327 ret = -EINVAL;
324 goto exit_reset; 328 goto exit_reset;
325 } 329 }
diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c
index 4842ec3a5451..a9126b3cda61 100644
--- a/drivers/i2c/i2c-core-acpi.c
+++ b/drivers/i2c/i2c-core-acpi.c
@@ -230,6 +230,16 @@ void i2c_acpi_register_devices(struct i2c_adapter *adap)
230 dev_warn(&adap->dev, "failed to enumerate I2C slaves\n"); 230 dev_warn(&adap->dev, "failed to enumerate I2C slaves\n");
231} 231}
232 232
233const struct acpi_device_id *
234i2c_acpi_match_device(const struct acpi_device_id *matches,
235 struct i2c_client *client)
236{
237 if (!(client && matches))
238 return NULL;
239
240 return acpi_match_device(matches, &client->dev);
241}
242
233static acpi_status i2c_acpi_lookup_speed(acpi_handle handle, u32 level, 243static acpi_status i2c_acpi_lookup_speed(acpi_handle handle, u32 level,
234 void *data, void **return_value) 244 void *data, void **return_value)
235{ 245{
@@ -289,7 +299,7 @@ u32 i2c_acpi_find_bus_speed(struct device *dev)
289} 299}
290EXPORT_SYMBOL_GPL(i2c_acpi_find_bus_speed); 300EXPORT_SYMBOL_GPL(i2c_acpi_find_bus_speed);
291 301
292static int i2c_acpi_match_adapter(struct device *dev, void *data) 302static int i2c_acpi_find_match_adapter(struct device *dev, void *data)
293{ 303{
294 struct i2c_adapter *adapter = i2c_verify_adapter(dev); 304 struct i2c_adapter *adapter = i2c_verify_adapter(dev);
295 305
@@ -299,7 +309,7 @@ static int i2c_acpi_match_adapter(struct device *dev, void *data)
299 return ACPI_HANDLE(dev) == (acpi_handle)data; 309 return ACPI_HANDLE(dev) == (acpi_handle)data;
300} 310}
301 311
302static int i2c_acpi_match_device(struct device *dev, void *data) 312static int i2c_acpi_find_match_device(struct device *dev, void *data)
303{ 313{
304 return ACPI_COMPANION(dev) == data; 314 return ACPI_COMPANION(dev) == data;
305} 315}
@@ -309,7 +319,7 @@ static struct i2c_adapter *i2c_acpi_find_adapter_by_handle(acpi_handle handle)
309 struct device *dev; 319 struct device *dev;
310 320
311 dev = bus_find_device(&i2c_bus_type, NULL, handle, 321 dev = bus_find_device(&i2c_bus_type, NULL, handle,
312 i2c_acpi_match_adapter); 322 i2c_acpi_find_match_adapter);
313 return dev ? i2c_verify_adapter(dev) : NULL; 323 return dev ? i2c_verify_adapter(dev) : NULL;
314} 324}
315 325
@@ -317,7 +327,8 @@ static struct i2c_client *i2c_acpi_find_client_by_adev(struct acpi_device *adev)
317{ 327{
318 struct device *dev; 328 struct device *dev;
319 329
320 dev = bus_find_device(&i2c_bus_type, NULL, adev, i2c_acpi_match_device); 330 dev = bus_find_device(&i2c_bus_type, NULL, adev,
331 i2c_acpi_find_match_device);
321 return dev ? i2c_verify_client(dev) : NULL; 332 return dev ? i2c_verify_client(dev) : NULL;
322} 333}
323 334
diff --git a/drivers/i2c/i2c-core-base.c b/drivers/i2c/i2c-core-base.c
index c89dac7fd2e7..12822a4b8f8f 100644
--- a/drivers/i2c/i2c-core-base.c
+++ b/drivers/i2c/i2c-core-base.c
@@ -357,6 +357,7 @@ static int i2c_device_probe(struct device *dev)
357 * Tree match table entry is supplied for the probing device. 357 * Tree match table entry is supplied for the probing device.
358 */ 358 */
359 if (!driver->id_table && 359 if (!driver->id_table &&
360 !i2c_acpi_match_device(dev->driver->acpi_match_table, client) &&
360 !i2c_of_match_device(dev->driver->of_match_table, client)) 361 !i2c_of_match_device(dev->driver->of_match_table, client))
361 return -ENODEV; 362 return -ENODEV;
362 363
diff --git a/drivers/i2c/i2c-core.h b/drivers/i2c/i2c-core.h
index 3b63f5e5b89c..3d3d9bf02101 100644
--- a/drivers/i2c/i2c-core.h
+++ b/drivers/i2c/i2c-core.h
@@ -31,9 +31,18 @@ int i2c_check_addr_validity(unsigned addr, unsigned short flags);
31int i2c_check_7bit_addr_validity_strict(unsigned short addr); 31int i2c_check_7bit_addr_validity_strict(unsigned short addr);
32 32
33#ifdef CONFIG_ACPI 33#ifdef CONFIG_ACPI
34const struct acpi_device_id *
35i2c_acpi_match_device(const struct acpi_device_id *matches,
36 struct i2c_client *client);
34void i2c_acpi_register_devices(struct i2c_adapter *adap); 37void i2c_acpi_register_devices(struct i2c_adapter *adap);
35#else /* CONFIG_ACPI */ 38#else /* CONFIG_ACPI */
36static inline void i2c_acpi_register_devices(struct i2c_adapter *adap) { } 39static inline void i2c_acpi_register_devices(struct i2c_adapter *adap) { }
40static inline const struct acpi_device_id *
41i2c_acpi_match_device(const struct acpi_device_id *matches,
42 struct i2c_client *client)
43{
44 return NULL;
45}
37#endif /* CONFIG_ACPI */ 46#endif /* CONFIG_ACPI */
38extern struct notifier_block i2c_acpi_notifier; 47extern struct notifier_block i2c_acpi_notifier;
39 48
diff --git a/drivers/i2c/muxes/Kconfig b/drivers/i2c/muxes/Kconfig
index 2c64d0e0740f..17121329bb79 100644
--- a/drivers/i2c/muxes/Kconfig
+++ b/drivers/i2c/muxes/Kconfig
@@ -83,7 +83,7 @@ config I2C_MUX_PINCTRL
83 different sets of pins at run-time. 83 different sets of pins at run-time.
84 84
85 This driver can also be built as a module. If so, the module will be 85 This driver can also be built as a module. If so, the module will be
86 called pinctrl-i2cmux. 86 called i2c-mux-pinctrl.
87 87
88config I2C_MUX_REG 88config I2C_MUX_REG
89 tristate "Register-based I2C multiplexer" 89 tristate "Register-based I2C multiplexer"
diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c
index 01236cef7bfb..437522ca97b4 100644
--- a/drivers/infiniband/core/addr.c
+++ b/drivers/infiniband/core/addr.c
@@ -61,6 +61,7 @@ struct addr_req {
61 void (*callback)(int status, struct sockaddr *src_addr, 61 void (*callback)(int status, struct sockaddr *src_addr,
62 struct rdma_dev_addr *addr, void *context); 62 struct rdma_dev_addr *addr, void *context);
63 unsigned long timeout; 63 unsigned long timeout;
64 struct delayed_work work;
64 int status; 65 int status;
65 u32 seq; 66 u32 seq;
66}; 67};
@@ -295,7 +296,7 @@ int rdma_translate_ip(const struct sockaddr *addr,
295} 296}
296EXPORT_SYMBOL(rdma_translate_ip); 297EXPORT_SYMBOL(rdma_translate_ip);
297 298
298static void set_timeout(unsigned long time) 299static void set_timeout(struct delayed_work *delayed_work, unsigned long time)
299{ 300{
300 unsigned long delay; 301 unsigned long delay;
301 302
@@ -303,7 +304,7 @@ static void set_timeout(unsigned long time)
303 if ((long)delay < 0) 304 if ((long)delay < 0)
304 delay = 0; 305 delay = 0;
305 306
306 mod_delayed_work(addr_wq, &work, delay); 307 mod_delayed_work(addr_wq, delayed_work, delay);
307} 308}
308 309
309static void queue_req(struct addr_req *req) 310static void queue_req(struct addr_req *req)
@@ -318,8 +319,7 @@ static void queue_req(struct addr_req *req)
318 319
319 list_add(&req->list, &temp_req->list); 320 list_add(&req->list, &temp_req->list);
320 321
321 if (req_list.next == &req->list) 322 set_timeout(&req->work, req->timeout);
322 set_timeout(req->timeout);
323 mutex_unlock(&lock); 323 mutex_unlock(&lock);
324} 324}
325 325
@@ -574,6 +574,37 @@ static int addr_resolve(struct sockaddr *src_in,
574 return ret; 574 return ret;
575} 575}
576 576
577static void process_one_req(struct work_struct *_work)
578{
579 struct addr_req *req;
580 struct sockaddr *src_in, *dst_in;
581
582 mutex_lock(&lock);
583 req = container_of(_work, struct addr_req, work.work);
584
585 if (req->status == -ENODATA) {
586 src_in = (struct sockaddr *)&req->src_addr;
587 dst_in = (struct sockaddr *)&req->dst_addr;
588 req->status = addr_resolve(src_in, dst_in, req->addr,
589 true, req->seq);
590 if (req->status && time_after_eq(jiffies, req->timeout)) {
591 req->status = -ETIMEDOUT;
592 } else if (req->status == -ENODATA) {
593 /* requeue the work for retrying again */
594 set_timeout(&req->work, req->timeout);
595 mutex_unlock(&lock);
596 return;
597 }
598 }
599 list_del(&req->list);
600 mutex_unlock(&lock);
601
602 req->callback(req->status, (struct sockaddr *)&req->src_addr,
603 req->addr, req->context);
604 put_client(req->client);
605 kfree(req);
606}
607
577static void process_req(struct work_struct *work) 608static void process_req(struct work_struct *work)
578{ 609{
579 struct addr_req *req, *temp_req; 610 struct addr_req *req, *temp_req;
@@ -591,20 +622,23 @@ static void process_req(struct work_struct *work)
591 true, req->seq); 622 true, req->seq);
592 if (req->status && time_after_eq(jiffies, req->timeout)) 623 if (req->status && time_after_eq(jiffies, req->timeout))
593 req->status = -ETIMEDOUT; 624 req->status = -ETIMEDOUT;
594 else if (req->status == -ENODATA) 625 else if (req->status == -ENODATA) {
626 set_timeout(&req->work, req->timeout);
595 continue; 627 continue;
628 }
596 } 629 }
597 list_move_tail(&req->list, &done_list); 630 list_move_tail(&req->list, &done_list);
598 } 631 }
599 632
600 if (!list_empty(&req_list)) {
601 req = list_entry(req_list.next, struct addr_req, list);
602 set_timeout(req->timeout);
603 }
604 mutex_unlock(&lock); 633 mutex_unlock(&lock);
605 634
606 list_for_each_entry_safe(req, temp_req, &done_list, list) { 635 list_for_each_entry_safe(req, temp_req, &done_list, list) {
607 list_del(&req->list); 636 list_del(&req->list);
637 /* It is safe to cancel other work items from this work item
638 * because at a time there can be only one work item running
639 * with this single threaded work queue.
640 */
641 cancel_delayed_work(&req->work);
608 req->callback(req->status, (struct sockaddr *) &req->src_addr, 642 req->callback(req->status, (struct sockaddr *) &req->src_addr,
609 req->addr, req->context); 643 req->addr, req->context);
610 put_client(req->client); 644 put_client(req->client);
@@ -647,6 +681,7 @@ int rdma_resolve_ip(struct rdma_addr_client *client,
647 req->context = context; 681 req->context = context;
648 req->client = client; 682 req->client = client;
649 atomic_inc(&client->refcount); 683 atomic_inc(&client->refcount);
684 INIT_DELAYED_WORK(&req->work, process_one_req);
650 req->seq = (u32)atomic_inc_return(&ib_nl_addr_request_seq); 685 req->seq = (u32)atomic_inc_return(&ib_nl_addr_request_seq);
651 686
652 req->status = addr_resolve(src_in, dst_in, addr, true, req->seq); 687 req->status = addr_resolve(src_in, dst_in, addr, true, req->seq);
@@ -701,7 +736,7 @@ void rdma_addr_cancel(struct rdma_dev_addr *addr)
701 req->status = -ECANCELED; 736 req->status = -ECANCELED;
702 req->timeout = jiffies; 737 req->timeout = jiffies;
703 list_move(&req->list, &req_list); 738 list_move(&req->list, &req_list);
704 set_timeout(req->timeout); 739 set_timeout(&req->work, req->timeout);
705 break; 740 break;
706 } 741 }
707 } 742 }
@@ -807,9 +842,8 @@ static int netevent_callback(struct notifier_block *self, unsigned long event,
807 if (event == NETEVENT_NEIGH_UPDATE) { 842 if (event == NETEVENT_NEIGH_UPDATE) {
808 struct neighbour *neigh = ctx; 843 struct neighbour *neigh = ctx;
809 844
810 if (neigh->nud_state & NUD_VALID) { 845 if (neigh->nud_state & NUD_VALID)
811 set_timeout(jiffies); 846 set_timeout(&work, jiffies);
812 }
813 } 847 }
814 return 0; 848 return 0;
815} 849}
@@ -820,7 +854,7 @@ static struct notifier_block nb = {
820 854
821int addr_init(void) 855int addr_init(void)
822{ 856{
823 addr_wq = alloc_workqueue("ib_addr", WQ_MEM_RECLAIM, 0); 857 addr_wq = alloc_ordered_workqueue("ib_addr", WQ_MEM_RECLAIM);
824 if (!addr_wq) 858 if (!addr_wq)
825 return -ENOMEM; 859 return -ENOMEM;
826 860
diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
index 2c98533a0203..c551d2b275fd 100644
--- a/drivers/infiniband/core/uverbs_cmd.c
+++ b/drivers/infiniband/core/uverbs_cmd.c
@@ -1153,7 +1153,7 @@ ssize_t ib_uverbs_resize_cq(struct ib_uverbs_file *file,
1153 int out_len) 1153 int out_len)
1154{ 1154{
1155 struct ib_uverbs_resize_cq cmd; 1155 struct ib_uverbs_resize_cq cmd;
1156 struct ib_uverbs_resize_cq_resp resp; 1156 struct ib_uverbs_resize_cq_resp resp = {};
1157 struct ib_udata udata; 1157 struct ib_udata udata;
1158 struct ib_cq *cq; 1158 struct ib_cq *cq;
1159 int ret = -EINVAL; 1159 int ret = -EINVAL;
diff --git a/drivers/infiniband/core/uverbs_main.c b/drivers/infiniband/core/uverbs_main.c
index 3d2609608f58..c023e2c81b8f 100644
--- a/drivers/infiniband/core/uverbs_main.c
+++ b/drivers/infiniband/core/uverbs_main.c
@@ -250,6 +250,7 @@ void ib_uverbs_release_file(struct kref *ref)
250 if (atomic_dec_and_test(&file->device->refcount)) 250 if (atomic_dec_and_test(&file->device->refcount))
251 ib_uverbs_comp_dev(file->device); 251 ib_uverbs_comp_dev(file->device);
252 252
253 kobject_put(&file->device->kobj);
253 kfree(file); 254 kfree(file);
254} 255}
255 256
@@ -917,7 +918,6 @@ err:
917static int ib_uverbs_close(struct inode *inode, struct file *filp) 918static int ib_uverbs_close(struct inode *inode, struct file *filp)
918{ 919{
919 struct ib_uverbs_file *file = filp->private_data; 920 struct ib_uverbs_file *file = filp->private_data;
920 struct ib_uverbs_device *dev = file->device;
921 921
922 mutex_lock(&file->cleanup_mutex); 922 mutex_lock(&file->cleanup_mutex);
923 if (file->ucontext) { 923 if (file->ucontext) {
@@ -939,7 +939,6 @@ static int ib_uverbs_close(struct inode *inode, struct file *filp)
939 ib_uverbs_release_async_event_file); 939 ib_uverbs_release_async_event_file);
940 940
941 kref_put(&file->ref, ib_uverbs_release_file); 941 kref_put(&file->ref, ib_uverbs_release_file);
942 kobject_put(&dev->kobj);
943 942
944 return 0; 943 return 0;
945} 944}
diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c
index fb98ed67d5bc..7f8fe443df46 100644
--- a/drivers/infiniband/core/verbs.c
+++ b/drivers/infiniband/core/verbs.c
@@ -895,7 +895,6 @@ static const struct {
895} qp_state_table[IB_QPS_ERR + 1][IB_QPS_ERR + 1] = { 895} qp_state_table[IB_QPS_ERR + 1][IB_QPS_ERR + 1] = {
896 [IB_QPS_RESET] = { 896 [IB_QPS_RESET] = {
897 [IB_QPS_RESET] = { .valid = 1 }, 897 [IB_QPS_RESET] = { .valid = 1 },
898 [IB_QPS_ERR] = { .valid = 1 },
899 [IB_QPS_INIT] = { 898 [IB_QPS_INIT] = {
900 .valid = 1, 899 .valid = 1,
901 .req_param = { 900 .req_param = {
diff --git a/drivers/infiniband/hw/hns/hns_roce_hw_v1.c b/drivers/infiniband/hw/hns/hns_roce_hw_v1.c
index 23fad6d96944..2540b65e242c 100644
--- a/drivers/infiniband/hw/hns/hns_roce_hw_v1.c
+++ b/drivers/infiniband/hw/hns/hns_roce_hw_v1.c
@@ -733,7 +733,7 @@ static int hns_roce_v1_rsv_lp_qp(struct hns_roce_dev *hr_dev)
733 continue; 733 continue;
734 734
735 free_mr->mr_free_qp[i] = hns_roce_v1_create_lp_qp(hr_dev, pd); 735 free_mr->mr_free_qp[i] = hns_roce_v1_create_lp_qp(hr_dev, pd);
736 if (IS_ERR(free_mr->mr_free_qp[i])) { 736 if (!free_mr->mr_free_qp[i]) {
737 dev_err(dev, "Create loop qp failed!\n"); 737 dev_err(dev, "Create loop qp failed!\n");
738 goto create_lp_qp_failed; 738 goto create_lp_qp_failed;
739 } 739 }
diff --git a/drivers/infiniband/hw/mlx5/odp.c b/drivers/infiniband/hw/mlx5/odp.c
index ae0746754008..3d701c7a4c91 100644
--- a/drivers/infiniband/hw/mlx5/odp.c
+++ b/drivers/infiniband/hw/mlx5/odp.c
@@ -939,7 +939,7 @@ static int mlx5_ib_mr_initiator_pfault_handler(
939 939
940 if (qp->ibqp.qp_type != IB_QPT_RC) { 940 if (qp->ibqp.qp_type != IB_QPT_RC) {
941 av = *wqe; 941 av = *wqe;
942 if (av->dqp_dct & be32_to_cpu(MLX5_WQE_AV_EXT)) 942 if (av->dqp_dct & cpu_to_be32(MLX5_EXTENDED_UD_AV))
943 *wqe += sizeof(struct mlx5_av); 943 *wqe += sizeof(struct mlx5_av);
944 else 944 else
945 *wqe += sizeof(struct mlx5_base_av); 945 *wqe += sizeof(struct mlx5_base_av);
diff --git a/drivers/infiniband/ulp/ipoib/ipoib.h b/drivers/infiniband/ulp/ipoib/ipoib.h
index ff50a7bd66d8..7ac25059c40f 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib.h
+++ b/drivers/infiniband/ulp/ipoib/ipoib.h
@@ -336,6 +336,7 @@ struct ipoib_dev_priv {
336 unsigned long flags; 336 unsigned long flags;
337 337
338 struct rw_semaphore vlan_rwsem; 338 struct rw_semaphore vlan_rwsem;
339 struct mutex mcast_mutex;
339 340
340 struct rb_root path_tree; 341 struct rb_root path_tree;
341 struct list_head path_list; 342 struct list_head path_list;
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_cm.c b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
index f87d104837dc..d69410c2ed97 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_cm.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_cm.c
@@ -511,7 +511,6 @@ static int ipoib_cm_rx_handler(struct ib_cm_id *cm_id,
511 case IB_CM_REQ_RECEIVED: 511 case IB_CM_REQ_RECEIVED:
512 return ipoib_cm_req_handler(cm_id, event); 512 return ipoib_cm_req_handler(cm_id, event);
513 case IB_CM_DREQ_RECEIVED: 513 case IB_CM_DREQ_RECEIVED:
514 p = cm_id->context;
515 ib_send_cm_drep(cm_id, NULL, 0); 514 ib_send_cm_drep(cm_id, NULL, 0);
516 /* Fall through */ 515 /* Fall through */
517 case IB_CM_REJ_RECEIVED: 516 case IB_CM_REJ_RECEIVED:
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c b/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c
index 7871379342f4..184a22f48027 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_ethtool.c
@@ -52,7 +52,8 @@ static const struct ipoib_stats ipoib_gstrings_stats[] = {
52 IPOIB_NETDEV_STAT(tx_bytes), 52 IPOIB_NETDEV_STAT(tx_bytes),
53 IPOIB_NETDEV_STAT(tx_errors), 53 IPOIB_NETDEV_STAT(tx_errors),
54 IPOIB_NETDEV_STAT(rx_dropped), 54 IPOIB_NETDEV_STAT(rx_dropped),
55 IPOIB_NETDEV_STAT(tx_dropped) 55 IPOIB_NETDEV_STAT(tx_dropped),
56 IPOIB_NETDEV_STAT(multicast),
56}; 57};
57 58
58#define IPOIB_GLOBAL_STATS_LEN ARRAY_SIZE(ipoib_gstrings_stats) 59#define IPOIB_GLOBAL_STATS_LEN ARRAY_SIZE(ipoib_gstrings_stats)
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_ib.c b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
index 57a9655e844d..2e075377242e 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_ib.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_ib.c
@@ -256,6 +256,8 @@ static void ipoib_ib_handle_rx_wc(struct net_device *dev, struct ib_wc *wc)
256 256
257 ++dev->stats.rx_packets; 257 ++dev->stats.rx_packets;
258 dev->stats.rx_bytes += skb->len; 258 dev->stats.rx_bytes += skb->len;
259 if (skb->pkt_type == PACKET_MULTICAST)
260 dev->stats.multicast++;
259 261
260 skb->dev = dev; 262 skb->dev = dev;
261 if ((dev->features & NETIF_F_RXCSUM) && 263 if ((dev->features & NETIF_F_RXCSUM) &&
@@ -709,6 +711,27 @@ static int recvs_pending(struct net_device *dev)
709 return pending; 711 return pending;
710} 712}
711 713
714static void check_qp_movement_and_print(struct ipoib_dev_priv *priv,
715 struct ib_qp *qp,
716 enum ib_qp_state new_state)
717{
718 struct ib_qp_attr qp_attr;
719 struct ib_qp_init_attr query_init_attr;
720 int ret;
721
722 ret = ib_query_qp(qp, &qp_attr, IB_QP_STATE, &query_init_attr);
723 if (ret) {
724 ipoib_warn(priv, "%s: Failed to query QP\n", __func__);
725 return;
726 }
727 /* print according to the new-state and the previous state.*/
728 if (new_state == IB_QPS_ERR && qp_attr.qp_state == IB_QPS_RESET)
729 ipoib_dbg(priv, "Failed modify QP, IB_QPS_RESET to IB_QPS_ERR, acceptable\n");
730 else
731 ipoib_warn(priv, "Failed to modify QP to state: %d from state: %d\n",
732 new_state, qp_attr.qp_state);
733}
734
712int ipoib_ib_dev_stop_default(struct net_device *dev) 735int ipoib_ib_dev_stop_default(struct net_device *dev)
713{ 736{
714 struct ipoib_dev_priv *priv = ipoib_priv(dev); 737 struct ipoib_dev_priv *priv = ipoib_priv(dev);
@@ -728,7 +751,7 @@ int ipoib_ib_dev_stop_default(struct net_device *dev)
728 */ 751 */
729 qp_attr.qp_state = IB_QPS_ERR; 752 qp_attr.qp_state = IB_QPS_ERR;
730 if (ib_modify_qp(priv->qp, &qp_attr, IB_QP_STATE)) 753 if (ib_modify_qp(priv->qp, &qp_attr, IB_QP_STATE))
731 ipoib_warn(priv, "Failed to modify QP to ERROR state\n"); 754 check_qp_movement_and_print(priv, priv->qp, IB_QPS_ERR);
732 755
733 /* Wait for all sends and receives to complete */ 756 /* Wait for all sends and receives to complete */
734 begin = jiffies; 757 begin = jiffies;
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
index 4ce315c92b48..6c77df34869d 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
@@ -1560,6 +1560,7 @@ static void ipoib_flush_neighs(struct ipoib_dev_priv *priv)
1560 int i, wait_flushed = 0; 1560 int i, wait_flushed = 0;
1561 1561
1562 init_completion(&priv->ntbl.flushed); 1562 init_completion(&priv->ntbl.flushed);
1563 set_bit(IPOIB_NEIGH_TBL_FLUSH, &priv->flags);
1563 1564
1564 spin_lock_irqsave(&priv->lock, flags); 1565 spin_lock_irqsave(&priv->lock, flags);
1565 1566
@@ -1604,7 +1605,6 @@ static void ipoib_neigh_hash_uninit(struct net_device *dev)
1604 1605
1605 ipoib_dbg(priv, "ipoib_neigh_hash_uninit\n"); 1606 ipoib_dbg(priv, "ipoib_neigh_hash_uninit\n");
1606 init_completion(&priv->ntbl.deleted); 1607 init_completion(&priv->ntbl.deleted);
1607 set_bit(IPOIB_NEIGH_TBL_FLUSH, &priv->flags);
1608 1608
1609 /* Stop GC if called at init fail need to cancel work */ 1609 /* Stop GC if called at init fail need to cancel work */
1610 stopped = test_and_set_bit(IPOIB_STOP_NEIGH_GC, &priv->flags); 1610 stopped = test_and_set_bit(IPOIB_STOP_NEIGH_GC, &priv->flags);
@@ -1847,6 +1847,7 @@ static const struct net_device_ops ipoib_netdev_ops_vf = {
1847 .ndo_tx_timeout = ipoib_timeout, 1847 .ndo_tx_timeout = ipoib_timeout,
1848 .ndo_set_rx_mode = ipoib_set_mcast_list, 1848 .ndo_set_rx_mode = ipoib_set_mcast_list,
1849 .ndo_get_iflink = ipoib_get_iflink, 1849 .ndo_get_iflink = ipoib_get_iflink,
1850 .ndo_get_stats64 = ipoib_get_stats,
1850}; 1851};
1851 1852
1852void ipoib_setup_common(struct net_device *dev) 1853void ipoib_setup_common(struct net_device *dev)
@@ -1877,6 +1878,7 @@ static void ipoib_build_priv(struct net_device *dev)
1877 priv->dev = dev; 1878 priv->dev = dev;
1878 spin_lock_init(&priv->lock); 1879 spin_lock_init(&priv->lock);
1879 init_rwsem(&priv->vlan_rwsem); 1880 init_rwsem(&priv->vlan_rwsem);
1881 mutex_init(&priv->mcast_mutex);
1880 1882
1881 INIT_LIST_HEAD(&priv->path_list); 1883 INIT_LIST_HEAD(&priv->path_list);
1882 INIT_LIST_HEAD(&priv->child_intfs); 1884 INIT_LIST_HEAD(&priv->child_intfs);
@@ -2173,14 +2175,14 @@ static struct net_device *ipoib_add_port(const char *format,
2173 priv->dev->dev_id = port - 1; 2175 priv->dev->dev_id = port - 1;
2174 2176
2175 result = ib_query_port(hca, port, &attr); 2177 result = ib_query_port(hca, port, &attr);
2176 if (!result) 2178 if (result) {
2177 priv->max_ib_mtu = ib_mtu_enum_to_int(attr.max_mtu);
2178 else {
2179 printk(KERN_WARNING "%s: ib_query_port %d failed\n", 2179 printk(KERN_WARNING "%s: ib_query_port %d failed\n",
2180 hca->name, port); 2180 hca->name, port);
2181 goto device_init_failed; 2181 goto device_init_failed;
2182 } 2182 }
2183 2183
2184 priv->max_ib_mtu = ib_mtu_enum_to_int(attr.max_mtu);
2185
2184 /* MTU will be reset when mcast join happens */ 2186 /* MTU will be reset when mcast join happens */
2185 priv->dev->mtu = IPOIB_UD_MTU(priv->max_ib_mtu); 2187 priv->dev->mtu = IPOIB_UD_MTU(priv->max_ib_mtu);
2186 priv->mcast_mtu = priv->admin_mtu = priv->dev->mtu; 2188 priv->mcast_mtu = priv->admin_mtu = priv->dev->mtu;
@@ -2211,12 +2213,14 @@ static struct net_device *ipoib_add_port(const char *format,
2211 printk(KERN_WARNING "%s: ib_query_gid port %d failed (ret = %d)\n", 2213 printk(KERN_WARNING "%s: ib_query_gid port %d failed (ret = %d)\n",
2212 hca->name, port, result); 2214 hca->name, port, result);
2213 goto device_init_failed; 2215 goto device_init_failed;
2214 } else 2216 }
2215 memcpy(priv->dev->dev_addr + 4, priv->local_gid.raw, sizeof (union ib_gid)); 2217
2218 memcpy(priv->dev->dev_addr + 4, priv->local_gid.raw,
2219 sizeof(union ib_gid));
2216 set_bit(IPOIB_FLAG_DEV_ADDR_SET, &priv->flags); 2220 set_bit(IPOIB_FLAG_DEV_ADDR_SET, &priv->flags);
2217 2221
2218 result = ipoib_dev_init(priv->dev, hca, port); 2222 result = ipoib_dev_init(priv->dev, hca, port);
2219 if (result < 0) { 2223 if (result) {
2220 printk(KERN_WARNING "%s: failed to initialize port %d (ret = %d)\n", 2224 printk(KERN_WARNING "%s: failed to initialize port %d (ret = %d)\n",
2221 hca->name, port, result); 2225 hca->name, port, result);
2222 goto device_init_failed; 2226 goto device_init_failed;
@@ -2365,6 +2369,7 @@ static int __init ipoib_init_module(void)
2365 ipoib_sendq_size = max3(ipoib_sendq_size, 2 * MAX_SEND_CQE, IPOIB_MIN_QUEUE_SIZE); 2369 ipoib_sendq_size = max3(ipoib_sendq_size, 2 * MAX_SEND_CQE, IPOIB_MIN_QUEUE_SIZE);
2366#ifdef CONFIG_INFINIBAND_IPOIB_CM 2370#ifdef CONFIG_INFINIBAND_IPOIB_CM
2367 ipoib_max_conn_qp = min(ipoib_max_conn_qp, IPOIB_CM_MAX_CONN_QP); 2371 ipoib_max_conn_qp = min(ipoib_max_conn_qp, IPOIB_CM_MAX_CONN_QP);
2372 ipoib_max_conn_qp = max(ipoib_max_conn_qp, 0);
2368#endif 2373#endif
2369 2374
2370 /* 2375 /*
diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
index 057f58e6afca..93e149efc1f5 100644
--- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
@@ -684,15 +684,10 @@ void ipoib_mcast_start_thread(struct net_device *dev)
684int ipoib_mcast_stop_thread(struct net_device *dev) 684int ipoib_mcast_stop_thread(struct net_device *dev)
685{ 685{
686 struct ipoib_dev_priv *priv = ipoib_priv(dev); 686 struct ipoib_dev_priv *priv = ipoib_priv(dev);
687 unsigned long flags;
688 687
689 ipoib_dbg_mcast(priv, "stopping multicast thread\n"); 688 ipoib_dbg_mcast(priv, "stopping multicast thread\n");
690 689
691 spin_lock_irqsave(&priv->lock, flags); 690 cancel_delayed_work_sync(&priv->mcast_task);
692 cancel_delayed_work(&priv->mcast_task);
693 spin_unlock_irqrestore(&priv->lock, flags);
694
695 flush_workqueue(priv->wq);
696 691
697 return 0; 692 return 0;
698} 693}
@@ -748,6 +743,14 @@ void ipoib_mcast_remove_list(struct list_head *remove_list)
748{ 743{
749 struct ipoib_mcast *mcast, *tmcast; 744 struct ipoib_mcast *mcast, *tmcast;
750 745
746 /*
747 * make sure the in-flight joins have finished before we attempt
748 * to leave
749 */
750 list_for_each_entry_safe(mcast, tmcast, remove_list, list)
751 if (test_bit(IPOIB_MCAST_FLAG_BUSY, &mcast->flags))
752 wait_for_completion(&mcast->done);
753
751 list_for_each_entry_safe(mcast, tmcast, remove_list, list) { 754 list_for_each_entry_safe(mcast, tmcast, remove_list, list) {
752 ipoib_mcast_leave(mcast->dev, mcast); 755 ipoib_mcast_leave(mcast->dev, mcast);
753 ipoib_mcast_free(mcast); 756 ipoib_mcast_free(mcast);
@@ -838,6 +841,7 @@ void ipoib_mcast_dev_flush(struct net_device *dev)
838 struct ipoib_mcast *mcast, *tmcast; 841 struct ipoib_mcast *mcast, *tmcast;
839 unsigned long flags; 842 unsigned long flags;
840 843
844 mutex_lock(&priv->mcast_mutex);
841 ipoib_dbg_mcast(priv, "flushing multicast list\n"); 845 ipoib_dbg_mcast(priv, "flushing multicast list\n");
842 846
843 spin_lock_irqsave(&priv->lock, flags); 847 spin_lock_irqsave(&priv->lock, flags);
@@ -856,15 +860,8 @@ void ipoib_mcast_dev_flush(struct net_device *dev)
856 860
857 spin_unlock_irqrestore(&priv->lock, flags); 861 spin_unlock_irqrestore(&priv->lock, flags);
858 862
859 /*
860 * make sure the in-flight joins have finished before we attempt
861 * to leave
862 */
863 list_for_each_entry_safe(mcast, tmcast, &remove_list, list)
864 if (test_bit(IPOIB_MCAST_FLAG_BUSY, &mcast->flags))
865 wait_for_completion(&mcast->done);
866
867 ipoib_mcast_remove_list(&remove_list); 863 ipoib_mcast_remove_list(&remove_list);
864 mutex_unlock(&priv->mcast_mutex);
868} 865}
869 866
870static int ipoib_mcast_addr_is_valid(const u8 *addr, const u8 *broadcast) 867static int ipoib_mcast_addr_is_valid(const u8 *addr, const u8 *broadcast)
@@ -982,14 +979,6 @@ void ipoib_mcast_restart_task(struct work_struct *work)
982 netif_addr_unlock(dev); 979 netif_addr_unlock(dev);
983 local_irq_restore(flags); 980 local_irq_restore(flags);
984 981
985 /*
986 * make sure the in-flight joins have finished before we attempt
987 * to leave
988 */
989 list_for_each_entry_safe(mcast, tmcast, &remove_list, list)
990 if (test_bit(IPOIB_MCAST_FLAG_BUSY, &mcast->flags))
991 wait_for_completion(&mcast->done);
992
993 ipoib_mcast_remove_list(&remove_list); 982 ipoib_mcast_remove_list(&remove_list);
994 983
995 /* 984 /*
diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
index 688e77576e5a..354cbd6392cd 100644
--- a/drivers/iommu/amd_iommu.c
+++ b/drivers/iommu/amd_iommu.c
@@ -4452,6 +4452,7 @@ static int amd_ir_set_vcpu_affinity(struct irq_data *data, void *vcpu_info)
4452 /* Setting */ 4452 /* Setting */
4453 irte->hi.fields.ga_root_ptr = (pi_data->base >> 12); 4453 irte->hi.fields.ga_root_ptr = (pi_data->base >> 12);
4454 irte->hi.fields.vector = vcpu_pi_info->vector; 4454 irte->hi.fields.vector = vcpu_pi_info->vector;
4455 irte->lo.fields_vapic.ga_log_intr = 1;
4455 irte->lo.fields_vapic.guest_mode = 1; 4456 irte->lo.fields_vapic.guest_mode = 1;
4456 irte->lo.fields_vapic.ga_tag = pi_data->ga_tag; 4457 irte->lo.fields_vapic.ga_tag = pi_data->ga_tag;
4457 4458
diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c
index 5cc597b383c7..372303700566 100644
--- a/drivers/iommu/amd_iommu_init.c
+++ b/drivers/iommu/amd_iommu_init.c
@@ -2440,11 +2440,11 @@ static int __init state_next(void)
2440 break; 2440 break;
2441 case IOMMU_ACPI_FINISHED: 2441 case IOMMU_ACPI_FINISHED:
2442 early_enable_iommus(); 2442 early_enable_iommus();
2443 register_syscore_ops(&amd_iommu_syscore_ops);
2444 x86_platform.iommu_shutdown = disable_iommus; 2443 x86_platform.iommu_shutdown = disable_iommus;
2445 init_state = IOMMU_ENABLED; 2444 init_state = IOMMU_ENABLED;
2446 break; 2445 break;
2447 case IOMMU_ENABLED: 2446 case IOMMU_ENABLED:
2447 register_syscore_ops(&amd_iommu_syscore_ops);
2448 ret = amd_iommu_init_pci(); 2448 ret = amd_iommu_init_pci();
2449 init_state = ret ? IOMMU_INIT_ERROR : IOMMU_PCI_INIT; 2449 init_state = ret ? IOMMU_INIT_ERROR : IOMMU_PCI_INIT;
2450 enable_iommus_v2(); 2450 enable_iommus_v2();
diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
index bc89b4d6c043..b97188acc4f1 100644
--- a/drivers/iommu/arm-smmu.c
+++ b/drivers/iommu/arm-smmu.c
@@ -400,6 +400,8 @@ struct arm_smmu_device {
400 400
401 u32 cavium_id_base; /* Specific to Cavium */ 401 u32 cavium_id_base; /* Specific to Cavium */
402 402
403 spinlock_t global_sync_lock;
404
403 /* IOMMU core code handle */ 405 /* IOMMU core code handle */
404 struct iommu_device iommu; 406 struct iommu_device iommu;
405}; 407};
@@ -436,7 +438,7 @@ struct arm_smmu_domain {
436 struct arm_smmu_cfg cfg; 438 struct arm_smmu_cfg cfg;
437 enum arm_smmu_domain_stage stage; 439 enum arm_smmu_domain_stage stage;
438 struct mutex init_mutex; /* Protects smmu pointer */ 440 struct mutex init_mutex; /* Protects smmu pointer */
439 spinlock_t cb_lock; /* Serialises ATS1* ops */ 441 spinlock_t cb_lock; /* Serialises ATS1* ops and TLB syncs */
440 struct iommu_domain domain; 442 struct iommu_domain domain;
441}; 443};
442 444
@@ -602,9 +604,12 @@ static void __arm_smmu_tlb_sync(struct arm_smmu_device *smmu,
602static void arm_smmu_tlb_sync_global(struct arm_smmu_device *smmu) 604static void arm_smmu_tlb_sync_global(struct arm_smmu_device *smmu)
603{ 605{
604 void __iomem *base = ARM_SMMU_GR0(smmu); 606 void __iomem *base = ARM_SMMU_GR0(smmu);
607 unsigned long flags;
605 608
609 spin_lock_irqsave(&smmu->global_sync_lock, flags);
606 __arm_smmu_tlb_sync(smmu, base + ARM_SMMU_GR0_sTLBGSYNC, 610 __arm_smmu_tlb_sync(smmu, base + ARM_SMMU_GR0_sTLBGSYNC,
607 base + ARM_SMMU_GR0_sTLBGSTATUS); 611 base + ARM_SMMU_GR0_sTLBGSTATUS);
612 spin_unlock_irqrestore(&smmu->global_sync_lock, flags);
608} 613}
609 614
610static void arm_smmu_tlb_sync_context(void *cookie) 615static void arm_smmu_tlb_sync_context(void *cookie)
@@ -612,9 +617,12 @@ static void arm_smmu_tlb_sync_context(void *cookie)
612 struct arm_smmu_domain *smmu_domain = cookie; 617 struct arm_smmu_domain *smmu_domain = cookie;
613 struct arm_smmu_device *smmu = smmu_domain->smmu; 618 struct arm_smmu_device *smmu = smmu_domain->smmu;
614 void __iomem *base = ARM_SMMU_CB(smmu, smmu_domain->cfg.cbndx); 619 void __iomem *base = ARM_SMMU_CB(smmu, smmu_domain->cfg.cbndx);
620 unsigned long flags;
615 621
622 spin_lock_irqsave(&smmu_domain->cb_lock, flags);
616 __arm_smmu_tlb_sync(smmu, base + ARM_SMMU_CB_TLBSYNC, 623 __arm_smmu_tlb_sync(smmu, base + ARM_SMMU_CB_TLBSYNC,
617 base + ARM_SMMU_CB_TLBSTATUS); 624 base + ARM_SMMU_CB_TLBSTATUS);
625 spin_unlock_irqrestore(&smmu_domain->cb_lock, flags);
618} 626}
619 627
620static void arm_smmu_tlb_sync_vmid(void *cookie) 628static void arm_smmu_tlb_sync_vmid(void *cookie)
@@ -1511,7 +1519,6 @@ static int arm_smmu_add_device(struct device *dev)
1511 1519
1512 if (using_legacy_binding) { 1520 if (using_legacy_binding) {
1513 ret = arm_smmu_register_legacy_master(dev, &smmu); 1521 ret = arm_smmu_register_legacy_master(dev, &smmu);
1514 fwspec = dev->iommu_fwspec;
1515 if (ret) 1522 if (ret)
1516 goto out_free; 1523 goto out_free;
1517 } else if (fwspec && fwspec->ops == &arm_smmu_ops) { 1524 } else if (fwspec && fwspec->ops == &arm_smmu_ops) {
@@ -1550,15 +1557,15 @@ static int arm_smmu_add_device(struct device *dev)
1550 1557
1551 ret = arm_smmu_master_alloc_smes(dev); 1558 ret = arm_smmu_master_alloc_smes(dev);
1552 if (ret) 1559 if (ret)
1553 goto out_free; 1560 goto out_cfg_free;
1554 1561
1555 iommu_device_link(&smmu->iommu, dev); 1562 iommu_device_link(&smmu->iommu, dev);
1556 1563
1557 return 0; 1564 return 0;
1558 1565
1566out_cfg_free:
1567 kfree(cfg);
1559out_free: 1568out_free:
1560 if (fwspec)
1561 kfree(fwspec->iommu_priv);
1562 iommu_fwspec_free(dev); 1569 iommu_fwspec_free(dev);
1563 return ret; 1570 return ret;
1564} 1571}
@@ -1925,6 +1932,7 @@ static int arm_smmu_device_cfg_probe(struct arm_smmu_device *smmu)
1925 1932
1926 smmu->num_mapping_groups = size; 1933 smmu->num_mapping_groups = size;
1927 mutex_init(&smmu->stream_map_mutex); 1934 mutex_init(&smmu->stream_map_mutex);
1935 spin_lock_init(&smmu->global_sync_lock);
1928 1936
1929 if (smmu->version < ARM_SMMU_V2 || !(id & ID0_PTFS_NO_AARCH32)) { 1937 if (smmu->version < ARM_SMMU_V2 || !(id & ID0_PTFS_NO_AARCH32)) {
1930 smmu->features |= ARM_SMMU_FEAT_FMT_AARCH32_L; 1938 smmu->features |= ARM_SMMU_FEAT_FMT_AARCH32_L;
diff --git a/drivers/iommu/io-pgtable-arm-v7s.c b/drivers/iommu/io-pgtable-arm-v7s.c
index af330f513653..d665d0dc16e8 100644
--- a/drivers/iommu/io-pgtable-arm-v7s.c
+++ b/drivers/iommu/io-pgtable-arm-v7s.c
@@ -479,6 +479,9 @@ static int arm_v7s_map(struct io_pgtable_ops *ops, unsigned long iova,
479 if (!(prot & (IOMMU_READ | IOMMU_WRITE))) 479 if (!(prot & (IOMMU_READ | IOMMU_WRITE)))
480 return 0; 480 return 0;
481 481
482 if (WARN_ON(upper_32_bits(iova) || upper_32_bits(paddr)))
483 return -ERANGE;
484
482 ret = __arm_v7s_map(data, iova, paddr, size, prot, 1, data->pgd); 485 ret = __arm_v7s_map(data, iova, paddr, size, prot, 1, data->pgd);
483 /* 486 /*
484 * Synchronise all PTE updates for the new mapping before there's 487 * Synchronise all PTE updates for the new mapping before there's
@@ -659,6 +662,9 @@ static int arm_v7s_unmap(struct io_pgtable_ops *ops, unsigned long iova,
659 struct arm_v7s_io_pgtable *data = io_pgtable_ops_to_data(ops); 662 struct arm_v7s_io_pgtable *data = io_pgtable_ops_to_data(ops);
660 size_t unmapped; 663 size_t unmapped;
661 664
665 if (WARN_ON(upper_32_bits(iova)))
666 return 0;
667
662 unmapped = __arm_v7s_unmap(data, iova, size, 1, data->pgd); 668 unmapped = __arm_v7s_unmap(data, iova, size, 1, data->pgd);
663 if (unmapped) 669 if (unmapped)
664 io_pgtable_tlb_sync(&data->iop); 670 io_pgtable_tlb_sync(&data->iop);
diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c
index b182039862c5..e8018a308868 100644
--- a/drivers/iommu/io-pgtable-arm.c
+++ b/drivers/iommu/io-pgtable-arm.c
@@ -452,6 +452,10 @@ static int arm_lpae_map(struct io_pgtable_ops *ops, unsigned long iova,
452 if (!(iommu_prot & (IOMMU_READ | IOMMU_WRITE))) 452 if (!(iommu_prot & (IOMMU_READ | IOMMU_WRITE)))
453 return 0; 453 return 0;
454 454
455 if (WARN_ON(iova >= (1ULL << data->iop.cfg.ias) ||
456 paddr >= (1ULL << data->iop.cfg.oas)))
457 return -ERANGE;
458
455 prot = arm_lpae_prot_to_pte(data, iommu_prot); 459 prot = arm_lpae_prot_to_pte(data, iommu_prot);
456 ret = __arm_lpae_map(data, iova, paddr, size, prot, lvl, ptep); 460 ret = __arm_lpae_map(data, iova, paddr, size, prot, lvl, ptep);
457 /* 461 /*
@@ -610,6 +614,9 @@ static int arm_lpae_unmap(struct io_pgtable_ops *ops, unsigned long iova,
610 arm_lpae_iopte *ptep = data->pgd; 614 arm_lpae_iopte *ptep = data->pgd;
611 int lvl = ARM_LPAE_START_LVL(data); 615 int lvl = ARM_LPAE_START_LVL(data);
612 616
617 if (WARN_ON(iova >= (1ULL << data->iop.cfg.ias)))
618 return 0;
619
613 unmapped = __arm_lpae_unmap(data, iova, size, lvl, ptep); 620 unmapped = __arm_lpae_unmap(data, iova, size, lvl, ptep);
614 if (unmapped) 621 if (unmapped)
615 io_pgtable_tlb_sync(&data->iop); 622 io_pgtable_tlb_sync(&data->iop);
diff --git a/drivers/iommu/io-pgtable.h b/drivers/iommu/io-pgtable.h
index 524263a7ae6f..a3e667077b14 100644
--- a/drivers/iommu/io-pgtable.h
+++ b/drivers/iommu/io-pgtable.h
@@ -158,14 +158,12 @@ void free_io_pgtable_ops(struct io_pgtable_ops *ops);
158 * @fmt: The page table format. 158 * @fmt: The page table format.
159 * @cookie: An opaque token provided by the IOMMU driver and passed back to 159 * @cookie: An opaque token provided by the IOMMU driver and passed back to
160 * any callback routines. 160 * any callback routines.
161 * @tlb_sync_pending: Private flag for optimising out redundant syncs.
162 * @cfg: A copy of the page table configuration. 161 * @cfg: A copy of the page table configuration.
163 * @ops: The page table operations in use for this set of page tables. 162 * @ops: The page table operations in use for this set of page tables.
164 */ 163 */
165struct io_pgtable { 164struct io_pgtable {
166 enum io_pgtable_fmt fmt; 165 enum io_pgtable_fmt fmt;
167 void *cookie; 166 void *cookie;
168 bool tlb_sync_pending;
169 struct io_pgtable_cfg cfg; 167 struct io_pgtable_cfg cfg;
170 struct io_pgtable_ops ops; 168 struct io_pgtable_ops ops;
171}; 169};
@@ -175,22 +173,17 @@ struct io_pgtable {
175static inline void io_pgtable_tlb_flush_all(struct io_pgtable *iop) 173static inline void io_pgtable_tlb_flush_all(struct io_pgtable *iop)
176{ 174{
177 iop->cfg.tlb->tlb_flush_all(iop->cookie); 175 iop->cfg.tlb->tlb_flush_all(iop->cookie);
178 iop->tlb_sync_pending = true;
179} 176}
180 177
181static inline void io_pgtable_tlb_add_flush(struct io_pgtable *iop, 178static inline void io_pgtable_tlb_add_flush(struct io_pgtable *iop,
182 unsigned long iova, size_t size, size_t granule, bool leaf) 179 unsigned long iova, size_t size, size_t granule, bool leaf)
183{ 180{
184 iop->cfg.tlb->tlb_add_flush(iova, size, granule, leaf, iop->cookie); 181 iop->cfg.tlb->tlb_add_flush(iova, size, granule, leaf, iop->cookie);
185 iop->tlb_sync_pending = true;
186} 182}
187 183
188static inline void io_pgtable_tlb_sync(struct io_pgtable *iop) 184static inline void io_pgtable_tlb_sync(struct io_pgtable *iop)
189{ 185{
190 if (iop->tlb_sync_pending) { 186 iop->cfg.tlb->tlb_sync(iop->cookie);
191 iop->cfg.tlb->tlb_sync(iop->cookie);
192 iop->tlb_sync_pending = false;
193 }
194} 187}
195 188
196/** 189/**
diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c
index 5d14cd15198d..91c6d367ab35 100644
--- a/drivers/iommu/mtk_iommu.c
+++ b/drivers/iommu/mtk_iommu.c
@@ -129,6 +129,7 @@ static void mtk_iommu_tlb_add_flush_nosync(unsigned long iova, size_t size,
129 writel_relaxed(iova, data->base + REG_MMU_INVLD_START_A); 129 writel_relaxed(iova, data->base + REG_MMU_INVLD_START_A);
130 writel_relaxed(iova + size - 1, data->base + REG_MMU_INVLD_END_A); 130 writel_relaxed(iova + size - 1, data->base + REG_MMU_INVLD_END_A);
131 writel_relaxed(F_MMU_INV_RANGE, data->base + REG_MMU_INVALIDATE); 131 writel_relaxed(F_MMU_INV_RANGE, data->base + REG_MMU_INVALIDATE);
132 data->tlb_flush_active = true;
132} 133}
133 134
134static void mtk_iommu_tlb_sync(void *cookie) 135static void mtk_iommu_tlb_sync(void *cookie)
@@ -137,6 +138,10 @@ static void mtk_iommu_tlb_sync(void *cookie)
137 int ret; 138 int ret;
138 u32 tmp; 139 u32 tmp;
139 140
141 /* Avoid timing out if there's nothing to wait for */
142 if (!data->tlb_flush_active)
143 return;
144
140 ret = readl_poll_timeout_atomic(data->base + REG_MMU_CPE_DONE, tmp, 145 ret = readl_poll_timeout_atomic(data->base + REG_MMU_CPE_DONE, tmp,
141 tmp != 0, 10, 100000); 146 tmp != 0, 10, 100000);
142 if (ret) { 147 if (ret) {
@@ -146,6 +151,7 @@ static void mtk_iommu_tlb_sync(void *cookie)
146 } 151 }
147 /* Clear the CPE status */ 152 /* Clear the CPE status */
148 writel_relaxed(0, data->base + REG_MMU_CPE_DONE); 153 writel_relaxed(0, data->base + REG_MMU_CPE_DONE);
154 data->tlb_flush_active = false;
149} 155}
150 156
151static const struct iommu_gather_ops mtk_iommu_gather_ops = { 157static const struct iommu_gather_ops mtk_iommu_gather_ops = {
diff --git a/drivers/iommu/mtk_iommu.h b/drivers/iommu/mtk_iommu.h
index 2a28eadeea0e..c06cc91b5d9a 100644
--- a/drivers/iommu/mtk_iommu.h
+++ b/drivers/iommu/mtk_iommu.h
@@ -47,6 +47,7 @@ struct mtk_iommu_data {
47 struct iommu_group *m4u_group; 47 struct iommu_group *m4u_group;
48 struct mtk_smi_iommu smi_imu; /* SMI larb iommu info */ 48 struct mtk_smi_iommu smi_imu; /* SMI larb iommu info */
49 bool enable_4GB; 49 bool enable_4GB;
50 bool tlb_flush_active;
50 51
51 struct iommu_device iommu; 52 struct iommu_device iommu;
52}; 53};
diff --git a/drivers/isdn/hysdn/hysdn_proclog.c b/drivers/isdn/hysdn/hysdn_proclog.c
index 7b5fd8fb1761..aaca0b3d662e 100644
--- a/drivers/isdn/hysdn/hysdn_proclog.c
+++ b/drivers/isdn/hysdn/hysdn_proclog.c
@@ -44,7 +44,6 @@ struct procdata {
44 char log_name[15]; /* log filename */ 44 char log_name[15]; /* log filename */
45 struct log_data *log_head, *log_tail; /* head and tail for queue */ 45 struct log_data *log_head, *log_tail; /* head and tail for queue */
46 int if_used; /* open count for interface */ 46 int if_used; /* open count for interface */
47 int volatile del_lock; /* lock for delete operations */
48 unsigned char logtmp[LOG_MAX_LINELEN]; 47 unsigned char logtmp[LOG_MAX_LINELEN];
49 wait_queue_head_t rd_queue; 48 wait_queue_head_t rd_queue;
50}; 49};
@@ -102,7 +101,6 @@ put_log_buffer(hysdn_card *card, char *cp)
102{ 101{
103 struct log_data *ib; 102 struct log_data *ib;
104 struct procdata *pd = card->proclog; 103 struct procdata *pd = card->proclog;
105 int i;
106 unsigned long flags; 104 unsigned long flags;
107 105
108 if (!pd) 106 if (!pd)
@@ -126,21 +124,21 @@ put_log_buffer(hysdn_card *card, char *cp)
126 else 124 else
127 pd->log_tail->next = ib; /* follows existing messages */ 125 pd->log_tail->next = ib; /* follows existing messages */
128 pd->log_tail = ib; /* new tail */ 126 pd->log_tail = ib; /* new tail */
129 i = pd->del_lock++; /* get lock state */
130 spin_unlock_irqrestore(&card->hysdn_lock, flags);
131 127
132 /* delete old entrys */ 128 /* delete old entrys */
133 if (!i) 129 while (pd->log_head->next) {
134 while (pd->log_head->next) { 130 if ((pd->log_head->usage_cnt <= 0) &&
135 if ((pd->log_head->usage_cnt <= 0) && 131 (pd->log_head->next->usage_cnt <= 0)) {
136 (pd->log_head->next->usage_cnt <= 0)) { 132 ib = pd->log_head;
137 ib = pd->log_head; 133 pd->log_head = pd->log_head->next;
138 pd->log_head = pd->log_head->next; 134 kfree(ib);
139 kfree(ib); 135 } else {
140 } else 136 break;
141 break; 137 }
142 } /* pd->log_head->next */ 138 } /* pd->log_head->next */
143 pd->del_lock--; /* release lock level */ 139
140 spin_unlock_irqrestore(&card->hysdn_lock, flags);
141
144 wake_up_interruptible(&(pd->rd_queue)); /* announce new entry */ 142 wake_up_interruptible(&(pd->rd_queue)); /* announce new entry */
145} /* put_log_buffer */ 143} /* put_log_buffer */
146 144
diff --git a/drivers/isdn/i4l/isdn_common.c b/drivers/isdn/i4l/isdn_common.c
index 89b09c51ab7c..38a5bb764c7b 100644
--- a/drivers/isdn/i4l/isdn_common.c
+++ b/drivers/isdn/i4l/isdn_common.c
@@ -1376,6 +1376,7 @@ isdn_ioctl(struct file *file, uint cmd, ulong arg)
1376 if (arg) { 1376 if (arg) {
1377 if (copy_from_user(bname, argp, sizeof(bname) - 1)) 1377 if (copy_from_user(bname, argp, sizeof(bname) - 1))
1378 return -EFAULT; 1378 return -EFAULT;
1379 bname[sizeof(bname)-1] = 0;
1379 } else 1380 } else
1380 return -EINVAL; 1381 return -EINVAL;
1381 ret = mutex_lock_interruptible(&dev->mtx); 1382 ret = mutex_lock_interruptible(&dev->mtx);
diff --git a/drivers/isdn/i4l/isdn_net.c b/drivers/isdn/i4l/isdn_net.c
index c151c6daa67e..f63a110b7bcb 100644
--- a/drivers/isdn/i4l/isdn_net.c
+++ b/drivers/isdn/i4l/isdn_net.c
@@ -2611,10 +2611,9 @@ isdn_net_newslave(char *parm)
2611 char newname[10]; 2611 char newname[10];
2612 2612
2613 if (p) { 2613 if (p) {
2614 /* Slave-Name MUST not be empty */ 2614 /* Slave-Name MUST not be empty or overflow 'newname' */
2615 if (!strlen(p + 1)) 2615 if (strscpy(newname, p + 1, sizeof(newname)) <= 0)
2616 return NULL; 2616 return NULL;
2617 strcpy(newname, p + 1);
2618 *p = 0; 2617 *p = 0;
2619 /* Master must already exist */ 2618 /* Master must already exist */
2620 if (!(n = isdn_net_findif(parm))) 2619 if (!(n = isdn_net_findif(parm)))
diff --git a/drivers/lightnvm/pblk-rb.c b/drivers/lightnvm/pblk-rb.c
index 5ecc154f6831..9bc32578a766 100644
--- a/drivers/lightnvm/pblk-rb.c
+++ b/drivers/lightnvm/pblk-rb.c
@@ -657,7 +657,7 @@ try:
657 * be directed to disk. 657 * be directed to disk.
658 */ 658 */
659int pblk_rb_copy_to_bio(struct pblk_rb *rb, struct bio *bio, sector_t lba, 659int pblk_rb_copy_to_bio(struct pblk_rb *rb, struct bio *bio, sector_t lba,
660 struct ppa_addr ppa, int bio_iter) 660 struct ppa_addr ppa, int bio_iter, bool advanced_bio)
661{ 661{
662 struct pblk *pblk = container_of(rb, struct pblk, rwb); 662 struct pblk *pblk = container_of(rb, struct pblk, rwb);
663 struct pblk_rb_entry *entry; 663 struct pblk_rb_entry *entry;
@@ -694,7 +694,7 @@ int pblk_rb_copy_to_bio(struct pblk_rb *rb, struct bio *bio, sector_t lba,
694 * filled with data from the cache). If part of the data resides on the 694 * filled with data from the cache). If part of the data resides on the
695 * media, we will read later on 695 * media, we will read later on
696 */ 696 */
697 if (unlikely(!bio->bi_iter.bi_idx)) 697 if (unlikely(!advanced_bio))
698 bio_advance(bio, bio_iter * PBLK_EXPOSED_PAGE_SIZE); 698 bio_advance(bio, bio_iter * PBLK_EXPOSED_PAGE_SIZE);
699 699
700 data = bio_data(bio); 700 data = bio_data(bio);
diff --git a/drivers/lightnvm/pblk-read.c b/drivers/lightnvm/pblk-read.c
index 4e5c48f3de62..d682e89e6493 100644
--- a/drivers/lightnvm/pblk-read.c
+++ b/drivers/lightnvm/pblk-read.c
@@ -26,7 +26,7 @@
26 */ 26 */
27static int pblk_read_from_cache(struct pblk *pblk, struct bio *bio, 27static int pblk_read_from_cache(struct pblk *pblk, struct bio *bio,
28 sector_t lba, struct ppa_addr ppa, 28 sector_t lba, struct ppa_addr ppa,
29 int bio_iter) 29 int bio_iter, bool advanced_bio)
30{ 30{
31#ifdef CONFIG_NVM_DEBUG 31#ifdef CONFIG_NVM_DEBUG
32 /* Callers must ensure that the ppa points to a cache address */ 32 /* Callers must ensure that the ppa points to a cache address */
@@ -34,7 +34,8 @@ static int pblk_read_from_cache(struct pblk *pblk, struct bio *bio,
34 BUG_ON(!pblk_addr_in_cache(ppa)); 34 BUG_ON(!pblk_addr_in_cache(ppa));
35#endif 35#endif
36 36
37 return pblk_rb_copy_to_bio(&pblk->rwb, bio, lba, ppa, bio_iter); 37 return pblk_rb_copy_to_bio(&pblk->rwb, bio, lba, ppa,
38 bio_iter, advanced_bio);
38} 39}
39 40
40static void pblk_read_ppalist_rq(struct pblk *pblk, struct nvm_rq *rqd, 41static void pblk_read_ppalist_rq(struct pblk *pblk, struct nvm_rq *rqd,
@@ -44,7 +45,7 @@ static void pblk_read_ppalist_rq(struct pblk *pblk, struct nvm_rq *rqd,
44 struct ppa_addr ppas[PBLK_MAX_REQ_ADDRS]; 45 struct ppa_addr ppas[PBLK_MAX_REQ_ADDRS];
45 sector_t blba = pblk_get_lba(bio); 46 sector_t blba = pblk_get_lba(bio);
46 int nr_secs = rqd->nr_ppas; 47 int nr_secs = rqd->nr_ppas;
47 int advanced_bio = 0; 48 bool advanced_bio = false;
48 int i, j = 0; 49 int i, j = 0;
49 50
50 /* logic error: lba out-of-bounds. Ignore read request */ 51 /* logic error: lba out-of-bounds. Ignore read request */
@@ -62,19 +63,26 @@ static void pblk_read_ppalist_rq(struct pblk *pblk, struct nvm_rq *rqd,
62retry: 63retry:
63 if (pblk_ppa_empty(p)) { 64 if (pblk_ppa_empty(p)) {
64 WARN_ON(test_and_set_bit(i, read_bitmap)); 65 WARN_ON(test_and_set_bit(i, read_bitmap));
65 continue; 66
67 if (unlikely(!advanced_bio)) {
68 bio_advance(bio, (i) * PBLK_EXPOSED_PAGE_SIZE);
69 advanced_bio = true;
70 }
71
72 goto next;
66 } 73 }
67 74
68 /* Try to read from write buffer. The address is later checked 75 /* Try to read from write buffer. The address is later checked
69 * on the write buffer to prevent retrieving overwritten data. 76 * on the write buffer to prevent retrieving overwritten data.
70 */ 77 */
71 if (pblk_addr_in_cache(p)) { 78 if (pblk_addr_in_cache(p)) {
72 if (!pblk_read_from_cache(pblk, bio, lba, p, i)) { 79 if (!pblk_read_from_cache(pblk, bio, lba, p, i,
80 advanced_bio)) {
73 pblk_lookup_l2p_seq(pblk, &p, lba, 1); 81 pblk_lookup_l2p_seq(pblk, &p, lba, 1);
74 goto retry; 82 goto retry;
75 } 83 }
76 WARN_ON(test_and_set_bit(i, read_bitmap)); 84 WARN_ON(test_and_set_bit(i, read_bitmap));
77 advanced_bio = 1; 85 advanced_bio = true;
78#ifdef CONFIG_NVM_DEBUG 86#ifdef CONFIG_NVM_DEBUG
79 atomic_long_inc(&pblk->cache_reads); 87 atomic_long_inc(&pblk->cache_reads);
80#endif 88#endif
@@ -83,6 +91,7 @@ retry:
83 rqd->ppa_list[j++] = p; 91 rqd->ppa_list[j++] = p;
84 } 92 }
85 93
94next:
86 if (advanced_bio) 95 if (advanced_bio)
87 bio_advance(bio, PBLK_EXPOSED_PAGE_SIZE); 96 bio_advance(bio, PBLK_EXPOSED_PAGE_SIZE);
88 } 97 }
@@ -282,7 +291,7 @@ retry:
282 * write buffer to prevent retrieving overwritten data. 291 * write buffer to prevent retrieving overwritten data.
283 */ 292 */
284 if (pblk_addr_in_cache(ppa)) { 293 if (pblk_addr_in_cache(ppa)) {
285 if (!pblk_read_from_cache(pblk, bio, lba, ppa, 0)) { 294 if (!pblk_read_from_cache(pblk, bio, lba, ppa, 0, 1)) {
286 pblk_lookup_l2p_seq(pblk, &ppa, lba, 1); 295 pblk_lookup_l2p_seq(pblk, &ppa, lba, 1);
287 goto retry; 296 goto retry;
288 } 297 }
diff --git a/drivers/lightnvm/pblk.h b/drivers/lightnvm/pblk.h
index 0c5692cc2f60..67e623bd5c2d 100644
--- a/drivers/lightnvm/pblk.h
+++ b/drivers/lightnvm/pblk.h
@@ -670,7 +670,7 @@ unsigned int pblk_rb_read_to_bio_list(struct pblk_rb *rb, struct bio *bio,
670 struct list_head *list, 670 struct list_head *list,
671 unsigned int max); 671 unsigned int max);
672int pblk_rb_copy_to_bio(struct pblk_rb *rb, struct bio *bio, sector_t lba, 672int pblk_rb_copy_to_bio(struct pblk_rb *rb, struct bio *bio, sector_t lba,
673 struct ppa_addr ppa, int bio_iter); 673 struct ppa_addr ppa, int bio_iter, bool advanced_bio);
674unsigned int pblk_rb_read_commit(struct pblk_rb *rb, unsigned int entries); 674unsigned int pblk_rb_read_commit(struct pblk_rb *rb, unsigned int entries);
675 675
676unsigned int pblk_rb_sync_init(struct pblk_rb *rb, unsigned long *flags); 676unsigned int pblk_rb_sync_init(struct pblk_rb *rb, unsigned long *flags);
diff --git a/drivers/mailbox/pcc.c b/drivers/mailbox/pcc.c
index ac91fd0d62c6..cbca5e51b975 100644
--- a/drivers/mailbox/pcc.c
+++ b/drivers/mailbox/pcc.c
@@ -92,7 +92,7 @@ static struct mbox_controller pcc_mbox_ctrl = {};
92 */ 92 */
93static struct mbox_chan *get_pcc_channel(int id) 93static struct mbox_chan *get_pcc_channel(int id)
94{ 94{
95 if (id < 0 || id > pcc_mbox_ctrl.num_chans) 95 if (id < 0 || id >= pcc_mbox_ctrl.num_chans)
96 return ERR_PTR(-ENOENT); 96 return ERR_PTR(-ENOENT);
97 97
98 return &pcc_mbox_channels[id]; 98 return &pcc_mbox_channels[id];
diff --git a/drivers/md/dm-bufio.c b/drivers/md/dm-bufio.c
index 850ff6c67994..44f4a8ac95bd 100644
--- a/drivers/md/dm-bufio.c
+++ b/drivers/md/dm-bufio.c
@@ -1258,8 +1258,7 @@ EXPORT_SYMBOL_GPL(dm_bufio_write_dirty_buffers_async);
1258 */ 1258 */
1259int dm_bufio_write_dirty_buffers(struct dm_bufio_client *c) 1259int dm_bufio_write_dirty_buffers(struct dm_bufio_client *c)
1260{ 1260{
1261 blk_status_t a; 1261 int a, f;
1262 int f;
1263 unsigned long buffers_processed = 0; 1262 unsigned long buffers_processed = 0;
1264 struct dm_buffer *b, *tmp; 1263 struct dm_buffer *b, *tmp;
1265 1264
diff --git a/drivers/md/dm-integrity.c b/drivers/md/dm-integrity.c
index 1b224aa9cf15..3acce09bba35 100644
--- a/drivers/md/dm-integrity.c
+++ b/drivers/md/dm-integrity.c
@@ -1587,16 +1587,18 @@ retry:
1587 if (likely(ic->mode == 'J')) { 1587 if (likely(ic->mode == 'J')) {
1588 if (dio->write) { 1588 if (dio->write) {
1589 unsigned next_entry, i, pos; 1589 unsigned next_entry, i, pos;
1590 unsigned ws, we; 1590 unsigned ws, we, range_sectors;
1591 1591
1592 dio->range.n_sectors = min(dio->range.n_sectors, ic->free_sectors); 1592 dio->range.n_sectors = min(dio->range.n_sectors,
1593 ic->free_sectors << ic->sb->log2_sectors_per_block);
1593 if (unlikely(!dio->range.n_sectors)) 1594 if (unlikely(!dio->range.n_sectors))
1594 goto sleep; 1595 goto sleep;
1595 ic->free_sectors -= dio->range.n_sectors; 1596 range_sectors = dio->range.n_sectors >> ic->sb->log2_sectors_per_block;
1597 ic->free_sectors -= range_sectors;
1596 journal_section = ic->free_section; 1598 journal_section = ic->free_section;
1597 journal_entry = ic->free_section_entry; 1599 journal_entry = ic->free_section_entry;
1598 1600
1599 next_entry = ic->free_section_entry + dio->range.n_sectors; 1601 next_entry = ic->free_section_entry + range_sectors;
1600 ic->free_section_entry = next_entry % ic->journal_section_entries; 1602 ic->free_section_entry = next_entry % ic->journal_section_entries;
1601 ic->free_section += next_entry / ic->journal_section_entries; 1603 ic->free_section += next_entry / ic->journal_section_entries;
1602 ic->n_uncommitted_sections += next_entry / ic->journal_section_entries; 1604 ic->n_uncommitted_sections += next_entry / ic->journal_section_entries;
@@ -1727,6 +1729,8 @@ static void pad_uncommitted(struct dm_integrity_c *ic)
1727 wraparound_section(ic, &ic->free_section); 1729 wraparound_section(ic, &ic->free_section);
1728 ic->n_uncommitted_sections++; 1730 ic->n_uncommitted_sections++;
1729 } 1731 }
1732 WARN_ON(ic->journal_sections * ic->journal_section_entries !=
1733 (ic->n_uncommitted_sections + ic->n_committed_sections) * ic->journal_section_entries + ic->free_sectors);
1730} 1734}
1731 1735
1732static void integrity_commit(struct work_struct *w) 1736static void integrity_commit(struct work_struct *w)
@@ -1821,6 +1825,9 @@ static void do_journal_write(struct dm_integrity_c *ic, unsigned write_start,
1821{ 1825{
1822 unsigned i, j, n; 1826 unsigned i, j, n;
1823 struct journal_completion comp; 1827 struct journal_completion comp;
1828 struct blk_plug plug;
1829
1830 blk_start_plug(&plug);
1824 1831
1825 comp.ic = ic; 1832 comp.ic = ic;
1826 comp.in_flight = (atomic_t)ATOMIC_INIT(1); 1833 comp.in_flight = (atomic_t)ATOMIC_INIT(1);
@@ -1945,6 +1952,8 @@ skip_io:
1945 1952
1946 dm_bufio_write_dirty_buffers_async(ic->bufio); 1953 dm_bufio_write_dirty_buffers_async(ic->bufio);
1947 1954
1955 blk_finish_plug(&plug);
1956
1948 complete_journal_op(&comp); 1957 complete_journal_op(&comp);
1949 wait_for_completion_io(&comp.comp); 1958 wait_for_completion_io(&comp.comp);
1950 1959
@@ -3019,6 +3028,11 @@ static int dm_integrity_ctr(struct dm_target *ti, unsigned argc, char **argv)
3019 ti->error = "Block size doesn't match the information in superblock"; 3028 ti->error = "Block size doesn't match the information in superblock";
3020 goto bad; 3029 goto bad;
3021 } 3030 }
3031 if (!le32_to_cpu(ic->sb->journal_sections)) {
3032 r = -EINVAL;
3033 ti->error = "Corrupted superblock, journal_sections is 0";
3034 goto bad;
3035 }
3022 /* make sure that ti->max_io_len doesn't overflow */ 3036 /* make sure that ti->max_io_len doesn't overflow */
3023 if (ic->sb->log2_interleave_sectors < MIN_LOG2_INTERLEAVE_SECTORS || 3037 if (ic->sb->log2_interleave_sectors < MIN_LOG2_INTERLEAVE_SECTORS ||
3024 ic->sb->log2_interleave_sectors > MAX_LOG2_INTERLEAVE_SECTORS) { 3038 ic->sb->log2_interleave_sectors > MAX_LOG2_INTERLEAVE_SECTORS) {
diff --git a/drivers/md/dm-raid.c b/drivers/md/dm-raid.c
index 2e10c2f13a34..5bfe285ea9d1 100644
--- a/drivers/md/dm-raid.c
+++ b/drivers/md/dm-raid.c
@@ -208,6 +208,7 @@ struct raid_dev {
208#define RT_FLAG_RS_BITMAP_LOADED 2 208#define RT_FLAG_RS_BITMAP_LOADED 2
209#define RT_FLAG_UPDATE_SBS 3 209#define RT_FLAG_UPDATE_SBS 3
210#define RT_FLAG_RESHAPE_RS 4 210#define RT_FLAG_RESHAPE_RS 4
211#define RT_FLAG_RS_SUSPENDED 5
211 212
212/* Array elements of 64 bit needed for rebuild/failed disk bits */ 213/* Array elements of 64 bit needed for rebuild/failed disk bits */
213#define DISKS_ARRAY_ELEMS ((MAX_RAID_DEVICES + (sizeof(uint64_t) * 8 - 1)) / sizeof(uint64_t) / 8) 214#define DISKS_ARRAY_ELEMS ((MAX_RAID_DEVICES + (sizeof(uint64_t) * 8 - 1)) / sizeof(uint64_t) / 8)
@@ -564,9 +565,10 @@ static const char *raid10_md_layout_to_format(int layout)
564 if (__raid10_near_copies(layout) > 1) 565 if (__raid10_near_copies(layout) > 1)
565 return "near"; 566 return "near";
566 567
567 WARN_ON(__raid10_far_copies(layout) < 2); 568 if (__raid10_far_copies(layout) > 1)
569 return "far";
568 570
569 return "far"; 571 return "unknown";
570} 572}
571 573
572/* Return md raid10 algorithm for @name */ 574/* Return md raid10 algorithm for @name */
@@ -2540,11 +2542,6 @@ static int analyse_superblocks(struct dm_target *ti, struct raid_set *rs)
2540 if (!freshest) 2542 if (!freshest)
2541 return 0; 2543 return 0;
2542 2544
2543 if (validate_raid_redundancy(rs)) {
2544 rs->ti->error = "Insufficient redundancy to activate array";
2545 return -EINVAL;
2546 }
2547
2548 /* 2545 /*
2549 * Validation of the freshest device provides the source of 2546 * Validation of the freshest device provides the source of
2550 * validation for the remaining devices. 2547 * validation for the remaining devices.
@@ -2553,6 +2550,11 @@ static int analyse_superblocks(struct dm_target *ti, struct raid_set *rs)
2553 if (super_validate(rs, freshest)) 2550 if (super_validate(rs, freshest))
2554 return -EINVAL; 2551 return -EINVAL;
2555 2552
2553 if (validate_raid_redundancy(rs)) {
2554 rs->ti->error = "Insufficient redundancy to activate array";
2555 return -EINVAL;
2556 }
2557
2556 rdev_for_each(rdev, mddev) 2558 rdev_for_each(rdev, mddev)
2557 if (!test_bit(Journal, &rdev->flags) && 2559 if (!test_bit(Journal, &rdev->flags) &&
2558 rdev != freshest && 2560 rdev != freshest &&
@@ -3168,6 +3170,7 @@ static int raid_ctr(struct dm_target *ti, unsigned int argc, char **argv)
3168 } 3170 }
3169 3171
3170 mddev_suspend(&rs->md); 3172 mddev_suspend(&rs->md);
3173 set_bit(RT_FLAG_RS_SUSPENDED, &rs->runtime_flags);
3171 3174
3172 /* Try to adjust the raid4/5/6 stripe cache size to the stripe size */ 3175 /* Try to adjust the raid4/5/6 stripe cache size to the stripe size */
3173 if (rs_is_raid456(rs)) { 3176 if (rs_is_raid456(rs)) {
@@ -3625,7 +3628,7 @@ static void raid_postsuspend(struct dm_target *ti)
3625{ 3628{
3626 struct raid_set *rs = ti->private; 3629 struct raid_set *rs = ti->private;
3627 3630
3628 if (!rs->md.suspended) 3631 if (!test_and_set_bit(RT_FLAG_RS_SUSPENDED, &rs->runtime_flags))
3629 mddev_suspend(&rs->md); 3632 mddev_suspend(&rs->md);
3630 3633
3631 rs->md.ro = 1; 3634 rs->md.ro = 1;
@@ -3759,7 +3762,7 @@ static int rs_start_reshape(struct raid_set *rs)
3759 return r; 3762 return r;
3760 3763
3761 /* Need to be resumed to be able to start reshape, recovery is frozen until raid_resume() though */ 3764 /* Need to be resumed to be able to start reshape, recovery is frozen until raid_resume() though */
3762 if (mddev->suspended) 3765 if (test_and_clear_bit(RT_FLAG_RS_SUSPENDED, &rs->runtime_flags))
3763 mddev_resume(mddev); 3766 mddev_resume(mddev);
3764 3767
3765 /* 3768 /*
@@ -3786,8 +3789,8 @@ static int rs_start_reshape(struct raid_set *rs)
3786 } 3789 }
3787 3790
3788 /* Suspend because a resume will happen in raid_resume() */ 3791 /* Suspend because a resume will happen in raid_resume() */
3789 if (!mddev->suspended) 3792 set_bit(RT_FLAG_RS_SUSPENDED, &rs->runtime_flags);
3790 mddev_suspend(mddev); 3793 mddev_suspend(mddev);
3791 3794
3792 /* 3795 /*
3793 * Now reshape got set up, update superblocks to 3796 * Now reshape got set up, update superblocks to
@@ -3883,13 +3886,13 @@ static void raid_resume(struct dm_target *ti)
3883 if (!(rs->ctr_flags & RESUME_STAY_FROZEN_FLAGS)) 3886 if (!(rs->ctr_flags & RESUME_STAY_FROZEN_FLAGS))
3884 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery); 3887 clear_bit(MD_RECOVERY_FROZEN, &mddev->recovery);
3885 3888
3886 if (mddev->suspended) 3889 if (test_and_clear_bit(RT_FLAG_RS_SUSPENDED, &rs->runtime_flags))
3887 mddev_resume(mddev); 3890 mddev_resume(mddev);
3888} 3891}
3889 3892
3890static struct target_type raid_target = { 3893static struct target_type raid_target = {
3891 .name = "raid", 3894 .name = "raid",
3892 .version = {1, 11, 1}, 3895 .version = {1, 12, 1},
3893 .module = THIS_MODULE, 3896 .module = THIS_MODULE,
3894 .ctr = raid_ctr, 3897 .ctr = raid_ctr,
3895 .dtr = raid_dtr, 3898 .dtr = raid_dtr,
diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
index a39bcd9b982a..28a4071cdf85 100644
--- a/drivers/md/dm-table.c
+++ b/drivers/md/dm-table.c
@@ -20,6 +20,7 @@
20#include <linux/atomic.h> 20#include <linux/atomic.h>
21#include <linux/blk-mq.h> 21#include <linux/blk-mq.h>
22#include <linux/mount.h> 22#include <linux/mount.h>
23#include <linux/dax.h>
23 24
24#define DM_MSG_PREFIX "table" 25#define DM_MSG_PREFIX "table"
25 26
@@ -1630,6 +1631,37 @@ static bool dm_table_supports_flush(struct dm_table *t, unsigned long flush)
1630 return false; 1631 return false;
1631} 1632}
1632 1633
1634static int device_dax_write_cache_enabled(struct dm_target *ti,
1635 struct dm_dev *dev, sector_t start,
1636 sector_t len, void *data)
1637{
1638 struct dax_device *dax_dev = dev->dax_dev;
1639
1640 if (!dax_dev)
1641 return false;
1642
1643 if (dax_write_cache_enabled(dax_dev))
1644 return true;
1645 return false;
1646}
1647
1648static int dm_table_supports_dax_write_cache(struct dm_table *t)
1649{
1650 struct dm_target *ti;
1651 unsigned i;
1652
1653 for (i = 0; i < dm_table_get_num_targets(t); i++) {
1654 ti = dm_table_get_target(t, i);
1655
1656 if (ti->type->iterate_devices &&
1657 ti->type->iterate_devices(ti,
1658 device_dax_write_cache_enabled, NULL))
1659 return true;
1660 }
1661
1662 return false;
1663}
1664
1633static int device_is_nonrot(struct dm_target *ti, struct dm_dev *dev, 1665static int device_is_nonrot(struct dm_target *ti, struct dm_dev *dev,
1634 sector_t start, sector_t len, void *data) 1666 sector_t start, sector_t len, void *data)
1635{ 1667{
@@ -1785,6 +1817,9 @@ void dm_table_set_restrictions(struct dm_table *t, struct request_queue *q,
1785 } 1817 }
1786 blk_queue_write_cache(q, wc, fua); 1818 blk_queue_write_cache(q, wc, fua);
1787 1819
1820 if (dm_table_supports_dax_write_cache(t))
1821 dax_write_cache(t->md->dax_dev, true);
1822
1788 /* Ensure that all underlying devices are non-rotational. */ 1823 /* Ensure that all underlying devices are non-rotational. */
1789 if (dm_table_all_devices_attribute(t, device_is_nonrot)) 1824 if (dm_table_all_devices_attribute(t, device_is_nonrot))
1790 queue_flag_set_unlocked(QUEUE_FLAG_NONROT, q); 1825 queue_flag_set_unlocked(QUEUE_FLAG_NONROT, q);
diff --git a/drivers/md/dm-verity-fec.c b/drivers/md/dm-verity-fec.c
index 504ba3fa328b..e13f90832b6b 100644
--- a/drivers/md/dm-verity-fec.c
+++ b/drivers/md/dm-verity-fec.c
@@ -308,19 +308,14 @@ static int fec_alloc_bufs(struct dm_verity *v, struct dm_verity_fec_io *fio)
308{ 308{
309 unsigned n; 309 unsigned n;
310 310
311 if (!fio->rs) { 311 if (!fio->rs)
312 fio->rs = mempool_alloc(v->fec->rs_pool, 0); 312 fio->rs = mempool_alloc(v->fec->rs_pool, GFP_NOIO);
313 if (unlikely(!fio->rs)) {
314 DMERR("failed to allocate RS");
315 return -ENOMEM;
316 }
317 }
318 313
319 fec_for_each_prealloc_buffer(n) { 314 fec_for_each_prealloc_buffer(n) {
320 if (fio->bufs[n]) 315 if (fio->bufs[n])
321 continue; 316 continue;
322 317
323 fio->bufs[n] = mempool_alloc(v->fec->prealloc_pool, GFP_NOIO); 318 fio->bufs[n] = mempool_alloc(v->fec->prealloc_pool, GFP_NOWAIT);
324 if (unlikely(!fio->bufs[n])) { 319 if (unlikely(!fio->bufs[n])) {
325 DMERR("failed to allocate FEC buffer"); 320 DMERR("failed to allocate FEC buffer");
326 return -ENOMEM; 321 return -ENOMEM;
@@ -332,22 +327,16 @@ static int fec_alloc_bufs(struct dm_verity *v, struct dm_verity_fec_io *fio)
332 if (fio->bufs[n]) 327 if (fio->bufs[n])
333 continue; 328 continue;
334 329
335 fio->bufs[n] = mempool_alloc(v->fec->extra_pool, GFP_NOIO); 330 fio->bufs[n] = mempool_alloc(v->fec->extra_pool, GFP_NOWAIT);
336 /* we can manage with even one buffer if necessary */ 331 /* we can manage with even one buffer if necessary */
337 if (unlikely(!fio->bufs[n])) 332 if (unlikely(!fio->bufs[n]))
338 break; 333 break;
339 } 334 }
340 fio->nbufs = n; 335 fio->nbufs = n;
341 336
342 if (!fio->output) { 337 if (!fio->output)
343 fio->output = mempool_alloc(v->fec->output_pool, GFP_NOIO); 338 fio->output = mempool_alloc(v->fec->output_pool, GFP_NOIO);
344 339
345 if (!fio->output) {
346 DMERR("failed to allocate FEC page");
347 return -ENOMEM;
348 }
349 }
350
351 return 0; 340 return 0;
352} 341}
353 342
diff --git a/drivers/md/dm-zoned-metadata.c b/drivers/md/dm-zoned-metadata.c
index 884ff7c170a0..a4fa2ada6883 100644
--- a/drivers/md/dm-zoned-metadata.c
+++ b/drivers/md/dm-zoned-metadata.c
@@ -624,7 +624,7 @@ static int dmz_write_sb(struct dmz_metadata *zmd, unsigned int set)
624 624
625 ret = dmz_rdwr_block(zmd, REQ_OP_WRITE, block, mblk->page); 625 ret = dmz_rdwr_block(zmd, REQ_OP_WRITE, block, mblk->page);
626 if (ret == 0) 626 if (ret == 0)
627 ret = blkdev_issue_flush(zmd->dev->bdev, GFP_KERNEL, NULL); 627 ret = blkdev_issue_flush(zmd->dev->bdev, GFP_NOIO, NULL);
628 628
629 return ret; 629 return ret;
630} 630}
@@ -658,7 +658,7 @@ static int dmz_write_dirty_mblocks(struct dmz_metadata *zmd,
658 658
659 /* Flush drive cache (this will also sync data) */ 659 /* Flush drive cache (this will also sync data) */
660 if (ret == 0) 660 if (ret == 0)
661 ret = blkdev_issue_flush(zmd->dev->bdev, GFP_KERNEL, NULL); 661 ret = blkdev_issue_flush(zmd->dev->bdev, GFP_NOIO, NULL);
662 662
663 return ret; 663 return ret;
664} 664}
@@ -722,7 +722,7 @@ int dmz_flush_metadata(struct dmz_metadata *zmd)
722 722
723 /* If there are no dirty metadata blocks, just flush the device cache */ 723 /* If there are no dirty metadata blocks, just flush the device cache */
724 if (list_empty(&write_list)) { 724 if (list_empty(&write_list)) {
725 ret = blkdev_issue_flush(zmd->dev->bdev, GFP_KERNEL, NULL); 725 ret = blkdev_issue_flush(zmd->dev->bdev, GFP_NOIO, NULL);
726 goto out; 726 goto out;
727 } 727 }
728 728
@@ -927,7 +927,7 @@ static int dmz_recover_mblocks(struct dmz_metadata *zmd, unsigned int dst_set)
927 (zmd->nr_meta_zones << zmd->dev->zone_nr_blocks_shift); 927 (zmd->nr_meta_zones << zmd->dev->zone_nr_blocks_shift);
928 } 928 }
929 929
930 page = alloc_page(GFP_KERNEL); 930 page = alloc_page(GFP_NOIO);
931 if (!page) 931 if (!page)
932 return -ENOMEM; 932 return -ENOMEM;
933 933
@@ -1183,7 +1183,7 @@ static int dmz_update_zone(struct dmz_metadata *zmd, struct dm_zone *zone)
1183 1183
1184 /* Get zone information from disk */ 1184 /* Get zone information from disk */
1185 ret = blkdev_report_zones(zmd->dev->bdev, dmz_start_sect(zmd, zone), 1185 ret = blkdev_report_zones(zmd->dev->bdev, dmz_start_sect(zmd, zone),
1186 &blkz, &nr_blkz, GFP_KERNEL); 1186 &blkz, &nr_blkz, GFP_NOIO);
1187 if (ret) { 1187 if (ret) {
1188 dmz_dev_err(zmd->dev, "Get zone %u report failed", 1188 dmz_dev_err(zmd->dev, "Get zone %u report failed",
1189 dmz_id(zmd, zone)); 1189 dmz_id(zmd, zone));
@@ -1257,7 +1257,7 @@ static int dmz_reset_zone(struct dmz_metadata *zmd, struct dm_zone *zone)
1257 1257
1258 ret = blkdev_reset_zones(dev->bdev, 1258 ret = blkdev_reset_zones(dev->bdev,
1259 dmz_start_sect(zmd, zone), 1259 dmz_start_sect(zmd, zone),
1260 dev->zone_nr_sectors, GFP_KERNEL); 1260 dev->zone_nr_sectors, GFP_NOIO);
1261 if (ret) { 1261 if (ret) {
1262 dmz_dev_err(dev, "Reset zone %u failed %d", 1262 dmz_dev_err(dev, "Reset zone %u failed %d",
1263 dmz_id(zmd, zone), ret); 1263 dmz_id(zmd, zone), ret);
diff --git a/drivers/md/dm-zoned-reclaim.c b/drivers/md/dm-zoned-reclaim.c
index 05c0a126f5c8..44a119e12f1a 100644
--- a/drivers/md/dm-zoned-reclaim.c
+++ b/drivers/md/dm-zoned-reclaim.c
@@ -75,7 +75,7 @@ static int dmz_reclaim_align_wp(struct dmz_reclaim *zrc, struct dm_zone *zone,
75 nr_blocks = block - wp_block; 75 nr_blocks = block - wp_block;
76 ret = blkdev_issue_zeroout(zrc->dev->bdev, 76 ret = blkdev_issue_zeroout(zrc->dev->bdev,
77 dmz_start_sect(zmd, zone) + dmz_blk2sect(wp_block), 77 dmz_start_sect(zmd, zone) + dmz_blk2sect(wp_block),
78 dmz_blk2sect(nr_blocks), GFP_NOFS, false); 78 dmz_blk2sect(nr_blocks), GFP_NOIO, 0);
79 if (ret) { 79 if (ret) {
80 dmz_dev_err(zrc->dev, 80 dmz_dev_err(zrc->dev,
81 "Align zone %u wp %llu to %llu (wp+%u) blocks failed %d", 81 "Align zone %u wp %llu to %llu (wp+%u) blocks failed %d",
diff --git a/drivers/md/dm-zoned-target.c b/drivers/md/dm-zoned-target.c
index 2b538fa817f4..b08bbbd4d902 100644
--- a/drivers/md/dm-zoned-target.c
+++ b/drivers/md/dm-zoned-target.c
@@ -541,7 +541,7 @@ static void dmz_queue_chunk_work(struct dmz_target *dmz, struct bio *bio)
541 int ret; 541 int ret;
542 542
543 /* Create a new chunk work */ 543 /* Create a new chunk work */
544 cw = kmalloc(sizeof(struct dm_chunk_work), GFP_NOFS); 544 cw = kmalloc(sizeof(struct dm_chunk_work), GFP_NOIO);
545 if (!cw) 545 if (!cw)
546 goto out; 546 goto out;
547 547
@@ -588,7 +588,7 @@ static int dmz_map(struct dm_target *ti, struct bio *bio)
588 588
589 bio->bi_bdev = dev->bdev; 589 bio->bi_bdev = dev->bdev;
590 590
591 if (!nr_sectors && (bio_op(bio) != REQ_OP_FLUSH) && (bio_op(bio) != REQ_OP_WRITE)) 591 if (!nr_sectors && bio_op(bio) != REQ_OP_WRITE)
592 return DM_MAPIO_REMAPPED; 592 return DM_MAPIO_REMAPPED;
593 593
594 /* The BIO should be block aligned */ 594 /* The BIO should be block aligned */
@@ -603,7 +603,7 @@ static int dmz_map(struct dm_target *ti, struct bio *bio)
603 bioctx->status = BLK_STS_OK; 603 bioctx->status = BLK_STS_OK;
604 604
605 /* Set the BIO pending in the flush list */ 605 /* Set the BIO pending in the flush list */
606 if (bio_op(bio) == REQ_OP_FLUSH || (!nr_sectors && bio_op(bio) == REQ_OP_WRITE)) { 606 if (!nr_sectors && bio_op(bio) == REQ_OP_WRITE) {
607 spin_lock(&dmz->flush_lock); 607 spin_lock(&dmz->flush_lock);
608 bio_list_add(&dmz->flush_list, bio); 608 bio_list_add(&dmz->flush_list, bio);
609 spin_unlock(&dmz->flush_lock); 609 spin_unlock(&dmz->flush_lock);
@@ -785,7 +785,7 @@ static int dmz_ctr(struct dm_target *ti, unsigned int argc, char **argv)
785 785
786 /* Chunk BIO work */ 786 /* Chunk BIO work */
787 mutex_init(&dmz->chunk_lock); 787 mutex_init(&dmz->chunk_lock);
788 INIT_RADIX_TREE(&dmz->chunk_rxtree, GFP_NOFS); 788 INIT_RADIX_TREE(&dmz->chunk_rxtree, GFP_KERNEL);
789 dmz->chunk_wq = alloc_workqueue("dmz_cwq_%s", WQ_MEM_RECLAIM | WQ_UNBOUND, 789 dmz->chunk_wq = alloc_workqueue("dmz_cwq_%s", WQ_MEM_RECLAIM | WQ_UNBOUND,
790 0, dev->name); 790 0, dev->name);
791 if (!dmz->chunk_wq) { 791 if (!dmz->chunk_wq) {
diff --git a/drivers/md/md.c b/drivers/md/md.c
index 8cdca0296749..c99634612fc4 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -2287,7 +2287,7 @@ static void export_array(struct mddev *mddev)
2287 2287
2288static bool set_in_sync(struct mddev *mddev) 2288static bool set_in_sync(struct mddev *mddev)
2289{ 2289{
2290 WARN_ON_ONCE(!spin_is_locked(&mddev->lock)); 2290 WARN_ON_ONCE(NR_CPUS != 1 && !spin_is_locked(&mddev->lock));
2291 if (!mddev->in_sync) { 2291 if (!mddev->in_sync) {
2292 mddev->sync_checkers++; 2292 mddev->sync_checkers++;
2293 spin_unlock(&mddev->lock); 2293 spin_unlock(&mddev->lock);
diff --git a/drivers/md/md.h b/drivers/md/md.h
index b50eb4ac1b82..09db03455801 100644
--- a/drivers/md/md.h
+++ b/drivers/md/md.h
@@ -731,58 +731,4 @@ static inline void mddev_check_write_zeroes(struct mddev *mddev, struct bio *bio
731 !bdev_get_queue(bio->bi_bdev)->limits.max_write_zeroes_sectors) 731 !bdev_get_queue(bio->bi_bdev)->limits.max_write_zeroes_sectors)
732 mddev->queue->limits.max_write_zeroes_sectors = 0; 732 mddev->queue->limits.max_write_zeroes_sectors = 0;
733} 733}
734
735/* Maximum size of each resync request */
736#define RESYNC_BLOCK_SIZE (64*1024)
737#define RESYNC_PAGES ((RESYNC_BLOCK_SIZE + PAGE_SIZE-1) / PAGE_SIZE)
738
739/* for managing resync I/O pages */
740struct resync_pages {
741 unsigned idx; /* for get/put page from the pool */
742 void *raid_bio;
743 struct page *pages[RESYNC_PAGES];
744};
745
746static inline int resync_alloc_pages(struct resync_pages *rp,
747 gfp_t gfp_flags)
748{
749 int i;
750
751 for (i = 0; i < RESYNC_PAGES; i++) {
752 rp->pages[i] = alloc_page(gfp_flags);
753 if (!rp->pages[i])
754 goto out_free;
755 }
756
757 return 0;
758
759out_free:
760 while (--i >= 0)
761 put_page(rp->pages[i]);
762 return -ENOMEM;
763}
764
765static inline void resync_free_pages(struct resync_pages *rp)
766{
767 int i;
768
769 for (i = 0; i < RESYNC_PAGES; i++)
770 put_page(rp->pages[i]);
771}
772
773static inline void resync_get_all_pages(struct resync_pages *rp)
774{
775 int i;
776
777 for (i = 0; i < RESYNC_PAGES; i++)
778 get_page(rp->pages[i]);
779}
780
781static inline struct page *resync_fetch_page(struct resync_pages *rp,
782 unsigned idx)
783{
784 if (WARN_ON_ONCE(idx >= RESYNC_PAGES))
785 return NULL;
786 return rp->pages[idx];
787}
788#endif /* _MD_MD_H */ 734#endif /* _MD_MD_H */
diff --git a/drivers/md/raid1-10.c b/drivers/md/raid1-10.c
new file mode 100644
index 000000000000..9f2670b45f31
--- /dev/null
+++ b/drivers/md/raid1-10.c
@@ -0,0 +1,81 @@
1/* Maximum size of each resync request */
2#define RESYNC_BLOCK_SIZE (64*1024)
3#define RESYNC_PAGES ((RESYNC_BLOCK_SIZE + PAGE_SIZE-1) / PAGE_SIZE)
4
5/* for managing resync I/O pages */
6struct resync_pages {
7 void *raid_bio;
8 struct page *pages[RESYNC_PAGES];
9};
10
11static inline int resync_alloc_pages(struct resync_pages *rp,
12 gfp_t gfp_flags)
13{
14 int i;
15
16 for (i = 0; i < RESYNC_PAGES; i++) {
17 rp->pages[i] = alloc_page(gfp_flags);
18 if (!rp->pages[i])
19 goto out_free;
20 }
21
22 return 0;
23
24out_free:
25 while (--i >= 0)
26 put_page(rp->pages[i]);
27 return -ENOMEM;
28}
29
30static inline void resync_free_pages(struct resync_pages *rp)
31{
32 int i;
33
34 for (i = 0; i < RESYNC_PAGES; i++)
35 put_page(rp->pages[i]);
36}
37
38static inline void resync_get_all_pages(struct resync_pages *rp)
39{
40 int i;
41
42 for (i = 0; i < RESYNC_PAGES; i++)
43 get_page(rp->pages[i]);
44}
45
46static inline struct page *resync_fetch_page(struct resync_pages *rp,
47 unsigned idx)
48{
49 if (WARN_ON_ONCE(idx >= RESYNC_PAGES))
50 return NULL;
51 return rp->pages[idx];
52}
53
54/*
55 * 'strct resync_pages' stores actual pages used for doing the resync
56 * IO, and it is per-bio, so make .bi_private points to it.
57 */
58static inline struct resync_pages *get_resync_pages(struct bio *bio)
59{
60 return bio->bi_private;
61}
62
63/* generally called after bio_reset() for reseting bvec */
64static void md_bio_reset_resync_pages(struct bio *bio, struct resync_pages *rp,
65 int size)
66{
67 int idx = 0;
68
69 /* initialize bvec table again */
70 do {
71 struct page *page = resync_fetch_page(rp, idx);
72 int len = min_t(int, size, PAGE_SIZE);
73
74 /*
75 * won't fail because the vec table is big
76 * enough to hold all these pages
77 */
78 bio_add_page(bio, page, len, 0);
79 size -= len;
80 } while (idx++ < RESYNC_PAGES && size > 0);
81}
diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
index 3febfc8391fb..f50958ded9f0 100644
--- a/drivers/md/raid1.c
+++ b/drivers/md/raid1.c
@@ -81,14 +81,7 @@ static void lower_barrier(struct r1conf *conf, sector_t sector_nr);
81#define raid1_log(md, fmt, args...) \ 81#define raid1_log(md, fmt, args...) \
82 do { if ((md)->queue) blk_add_trace_msg((md)->queue, "raid1 " fmt, ##args); } while (0) 82 do { if ((md)->queue) blk_add_trace_msg((md)->queue, "raid1 " fmt, ##args); } while (0)
83 83
84/* 84#include "raid1-10.c"
85 * 'strct resync_pages' stores actual pages used for doing the resync
86 * IO, and it is per-bio, so make .bi_private points to it.
87 */
88static inline struct resync_pages *get_resync_pages(struct bio *bio)
89{
90 return bio->bi_private;
91}
92 85
93/* 86/*
94 * for resync bio, r1bio pointer can be retrieved from the per-bio 87 * for resync bio, r1bio pointer can be retrieved from the per-bio
@@ -170,7 +163,6 @@ static void * r1buf_pool_alloc(gfp_t gfp_flags, void *data)
170 resync_get_all_pages(rp); 163 resync_get_all_pages(rp);
171 } 164 }
172 165
173 rp->idx = 0;
174 rp->raid_bio = r1_bio; 166 rp->raid_bio = r1_bio;
175 bio->bi_private = rp; 167 bio->bi_private = rp;
176 } 168 }
@@ -492,10 +484,6 @@ static void raid1_end_write_request(struct bio *bio)
492 } 484 }
493 485
494 if (behind) { 486 if (behind) {
495 /* we release behind master bio when all write are done */
496 if (r1_bio->behind_master_bio == bio)
497 to_put = NULL;
498
499 if (test_bit(WriteMostly, &rdev->flags)) 487 if (test_bit(WriteMostly, &rdev->flags))
500 atomic_dec(&r1_bio->behind_remaining); 488 atomic_dec(&r1_bio->behind_remaining);
501 489
@@ -802,8 +790,7 @@ static void flush_bio_list(struct r1conf *conf, struct bio *bio)
802 bio->bi_next = NULL; 790 bio->bi_next = NULL;
803 bio->bi_bdev = rdev->bdev; 791 bio->bi_bdev = rdev->bdev;
804 if (test_bit(Faulty, &rdev->flags)) { 792 if (test_bit(Faulty, &rdev->flags)) {
805 bio->bi_status = BLK_STS_IOERR; 793 bio_io_error(bio);
806 bio_endio(bio);
807 } else if (unlikely((bio_op(bio) == REQ_OP_DISCARD) && 794 } else if (unlikely((bio_op(bio) == REQ_OP_DISCARD) &&
808 !blk_queue_discard(bdev_get_queue(bio->bi_bdev)))) 795 !blk_queue_discard(bdev_get_queue(bio->bi_bdev))))
809 /* Just ignore it */ 796 /* Just ignore it */
@@ -1088,7 +1075,7 @@ static void unfreeze_array(struct r1conf *conf)
1088 wake_up(&conf->wait_barrier); 1075 wake_up(&conf->wait_barrier);
1089} 1076}
1090 1077
1091static struct bio *alloc_behind_master_bio(struct r1bio *r1_bio, 1078static void alloc_behind_master_bio(struct r1bio *r1_bio,
1092 struct bio *bio) 1079 struct bio *bio)
1093{ 1080{
1094 int size = bio->bi_iter.bi_size; 1081 int size = bio->bi_iter.bi_size;
@@ -1098,11 +1085,13 @@ static struct bio *alloc_behind_master_bio(struct r1bio *r1_bio,
1098 1085
1099 behind_bio = bio_alloc_mddev(GFP_NOIO, vcnt, r1_bio->mddev); 1086 behind_bio = bio_alloc_mddev(GFP_NOIO, vcnt, r1_bio->mddev);
1100 if (!behind_bio) 1087 if (!behind_bio)
1101 goto fail; 1088 return;
1102 1089
1103 /* discard op, we don't support writezero/writesame yet */ 1090 /* discard op, we don't support writezero/writesame yet */
1104 if (!bio_has_data(bio)) 1091 if (!bio_has_data(bio)) {
1092 behind_bio->bi_iter.bi_size = size;
1105 goto skip_copy; 1093 goto skip_copy;
1094 }
1106 1095
1107 while (i < vcnt && size) { 1096 while (i < vcnt && size) {
1108 struct page *page; 1097 struct page *page;
@@ -1123,14 +1112,13 @@ skip_copy:
1123 r1_bio->behind_master_bio = behind_bio;; 1112 r1_bio->behind_master_bio = behind_bio;;
1124 set_bit(R1BIO_BehindIO, &r1_bio->state); 1113 set_bit(R1BIO_BehindIO, &r1_bio->state);
1125 1114
1126 return behind_bio; 1115 return;
1127 1116
1128free_pages: 1117free_pages:
1129 pr_debug("%dB behind alloc failed, doing sync I/O\n", 1118 pr_debug("%dB behind alloc failed, doing sync I/O\n",
1130 bio->bi_iter.bi_size); 1119 bio->bi_iter.bi_size);
1131 bio_free_pages(behind_bio); 1120 bio_free_pages(behind_bio);
1132fail: 1121 bio_put(behind_bio);
1133 return behind_bio;
1134} 1122}
1135 1123
1136struct raid1_plug_cb { 1124struct raid1_plug_cb {
@@ -1483,7 +1471,7 @@ static void raid1_write_request(struct mddev *mddev, struct bio *bio,
1483 (atomic_read(&bitmap->behind_writes) 1471 (atomic_read(&bitmap->behind_writes)
1484 < mddev->bitmap_info.max_write_behind) && 1472 < mddev->bitmap_info.max_write_behind) &&
1485 !waitqueue_active(&bitmap->behind_wait)) { 1473 !waitqueue_active(&bitmap->behind_wait)) {
1486 mbio = alloc_behind_master_bio(r1_bio, bio); 1474 alloc_behind_master_bio(r1_bio, bio);
1487 } 1475 }
1488 1476
1489 bitmap_startwrite(bitmap, r1_bio->sector, 1477 bitmap_startwrite(bitmap, r1_bio->sector,
@@ -1493,14 +1481,11 @@ static void raid1_write_request(struct mddev *mddev, struct bio *bio,
1493 first_clone = 0; 1481 first_clone = 0;
1494 } 1482 }
1495 1483
1496 if (!mbio) { 1484 if (r1_bio->behind_master_bio)
1497 if (r1_bio->behind_master_bio) 1485 mbio = bio_clone_fast(r1_bio->behind_master_bio,
1498 mbio = bio_clone_fast(r1_bio->behind_master_bio, 1486 GFP_NOIO, mddev->bio_set);
1499 GFP_NOIO, 1487 else
1500 mddev->bio_set); 1488 mbio = bio_clone_fast(bio, GFP_NOIO, mddev->bio_set);
1501 else
1502 mbio = bio_clone_fast(bio, GFP_NOIO, mddev->bio_set);
1503 }
1504 1489
1505 if (r1_bio->behind_master_bio) { 1490 if (r1_bio->behind_master_bio) {
1506 if (test_bit(WriteMostly, &conf->mirrors[i].rdev->flags)) 1491 if (test_bit(WriteMostly, &conf->mirrors[i].rdev->flags))
@@ -2086,10 +2071,7 @@ static void process_checks(struct r1bio *r1_bio)
2086 /* Fix variable parts of all bios */ 2071 /* Fix variable parts of all bios */
2087 vcnt = (r1_bio->sectors + PAGE_SIZE / 512 - 1) >> (PAGE_SHIFT - 9); 2072 vcnt = (r1_bio->sectors + PAGE_SIZE / 512 - 1) >> (PAGE_SHIFT - 9);
2088 for (i = 0; i < conf->raid_disks * 2; i++) { 2073 for (i = 0; i < conf->raid_disks * 2; i++) {
2089 int j;
2090 int size;
2091 blk_status_t status; 2074 blk_status_t status;
2092 struct bio_vec *bi;
2093 struct bio *b = r1_bio->bios[i]; 2075 struct bio *b = r1_bio->bios[i];
2094 struct resync_pages *rp = get_resync_pages(b); 2076 struct resync_pages *rp = get_resync_pages(b);
2095 if (b->bi_end_io != end_sync_read) 2077 if (b->bi_end_io != end_sync_read)
@@ -2098,8 +2080,6 @@ static void process_checks(struct r1bio *r1_bio)
2098 status = b->bi_status; 2080 status = b->bi_status;
2099 bio_reset(b); 2081 bio_reset(b);
2100 b->bi_status = status; 2082 b->bi_status = status;
2101 b->bi_vcnt = vcnt;
2102 b->bi_iter.bi_size = r1_bio->sectors << 9;
2103 b->bi_iter.bi_sector = r1_bio->sector + 2083 b->bi_iter.bi_sector = r1_bio->sector +
2104 conf->mirrors[i].rdev->data_offset; 2084 conf->mirrors[i].rdev->data_offset;
2105 b->bi_bdev = conf->mirrors[i].rdev->bdev; 2085 b->bi_bdev = conf->mirrors[i].rdev->bdev;
@@ -2107,15 +2087,8 @@ static void process_checks(struct r1bio *r1_bio)
2107 rp->raid_bio = r1_bio; 2087 rp->raid_bio = r1_bio;
2108 b->bi_private = rp; 2088 b->bi_private = rp;
2109 2089
2110 size = b->bi_iter.bi_size; 2090 /* initialize bvec table again */
2111 bio_for_each_segment_all(bi, b, j) { 2091 md_bio_reset_resync_pages(b, rp, r1_bio->sectors << 9);
2112 bi->bv_offset = 0;
2113 if (size > PAGE_SIZE)
2114 bi->bv_len = PAGE_SIZE;
2115 else
2116 bi->bv_len = size;
2117 size -= PAGE_SIZE;
2118 }
2119 } 2092 }
2120 for (primary = 0; primary < conf->raid_disks * 2; primary++) 2093 for (primary = 0; primary < conf->raid_disks * 2; primary++)
2121 if (r1_bio->bios[primary]->bi_end_io == end_sync_read && 2094 if (r1_bio->bios[primary]->bi_end_io == end_sync_read &&
@@ -2366,8 +2339,6 @@ static int narrow_write_error(struct r1bio *r1_bio, int i)
2366 wbio = bio_clone_fast(r1_bio->behind_master_bio, 2339 wbio = bio_clone_fast(r1_bio->behind_master_bio,
2367 GFP_NOIO, 2340 GFP_NOIO,
2368 mddev->bio_set); 2341 mddev->bio_set);
2369 /* We really need a _all clone */
2370 wbio->bi_iter = (struct bvec_iter){ 0 };
2371 } else { 2342 } else {
2372 wbio = bio_clone_fast(r1_bio->master_bio, GFP_NOIO, 2343 wbio = bio_clone_fast(r1_bio->master_bio, GFP_NOIO,
2373 mddev->bio_set); 2344 mddev->bio_set);
@@ -2619,6 +2590,7 @@ static sector_t raid1_sync_request(struct mddev *mddev, sector_t sector_nr,
2619 int good_sectors = RESYNC_SECTORS; 2590 int good_sectors = RESYNC_SECTORS;
2620 int min_bad = 0; /* number of sectors that are bad in all devices */ 2591 int min_bad = 0; /* number of sectors that are bad in all devices */
2621 int idx = sector_to_idx(sector_nr); 2592 int idx = sector_to_idx(sector_nr);
2593 int page_idx = 0;
2622 2594
2623 if (!conf->r1buf_pool) 2595 if (!conf->r1buf_pool)
2624 if (init_resync(conf)) 2596 if (init_resync(conf))
@@ -2846,7 +2818,7 @@ static sector_t raid1_sync_request(struct mddev *mddev, sector_t sector_nr,
2846 bio = r1_bio->bios[i]; 2818 bio = r1_bio->bios[i];
2847 rp = get_resync_pages(bio); 2819 rp = get_resync_pages(bio);
2848 if (bio->bi_end_io) { 2820 if (bio->bi_end_io) {
2849 page = resync_fetch_page(rp, rp->idx++); 2821 page = resync_fetch_page(rp, page_idx);
2850 2822
2851 /* 2823 /*
2852 * won't fail because the vec table is big 2824 * won't fail because the vec table is big
@@ -2858,7 +2830,7 @@ static sector_t raid1_sync_request(struct mddev *mddev, sector_t sector_nr,
2858 nr_sectors += len>>9; 2830 nr_sectors += len>>9;
2859 sector_nr += len>>9; 2831 sector_nr += len>>9;
2860 sync_blocks -= (len>>9); 2832 sync_blocks -= (len>>9);
2861 } while (get_resync_pages(r1_bio->bios[disk]->bi_private)->idx < RESYNC_PAGES); 2833 } while (++page_idx < RESYNC_PAGES);
2862 2834
2863 r1_bio->sectors = nr_sectors; 2835 r1_bio->sectors = nr_sectors;
2864 2836
diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
index 5026e7ad51d3..f55d4cc085f6 100644
--- a/drivers/md/raid10.c
+++ b/drivers/md/raid10.c
@@ -110,14 +110,7 @@ static void end_reshape(struct r10conf *conf);
110#define raid10_log(md, fmt, args...) \ 110#define raid10_log(md, fmt, args...) \
111 do { if ((md)->queue) blk_add_trace_msg((md)->queue, "raid10 " fmt, ##args); } while (0) 111 do { if ((md)->queue) blk_add_trace_msg((md)->queue, "raid10 " fmt, ##args); } while (0)
112 112
113/* 113#include "raid1-10.c"
114 * 'strct resync_pages' stores actual pages used for doing the resync
115 * IO, and it is per-bio, so make .bi_private points to it.
116 */
117static inline struct resync_pages *get_resync_pages(struct bio *bio)
118{
119 return bio->bi_private;
120}
121 114
122/* 115/*
123 * for resync bio, r10bio pointer can be retrieved from the per-bio 116 * for resync bio, r10bio pointer can be retrieved from the per-bio
@@ -221,7 +214,6 @@ static void * r10buf_pool_alloc(gfp_t gfp_flags, void *data)
221 resync_get_all_pages(rp); 214 resync_get_all_pages(rp);
222 } 215 }
223 216
224 rp->idx = 0;
225 rp->raid_bio = r10_bio; 217 rp->raid_bio = r10_bio;
226 bio->bi_private = rp; 218 bio->bi_private = rp;
227 if (rbio) { 219 if (rbio) {
@@ -913,8 +905,7 @@ static void flush_pending_writes(struct r10conf *conf)
913 bio->bi_next = NULL; 905 bio->bi_next = NULL;
914 bio->bi_bdev = rdev->bdev; 906 bio->bi_bdev = rdev->bdev;
915 if (test_bit(Faulty, &rdev->flags)) { 907 if (test_bit(Faulty, &rdev->flags)) {
916 bio->bi_status = BLK_STS_IOERR; 908 bio_io_error(bio);
917 bio_endio(bio);
918 } else if (unlikely((bio_op(bio) == REQ_OP_DISCARD) && 909 } else if (unlikely((bio_op(bio) == REQ_OP_DISCARD) &&
919 !blk_queue_discard(bdev_get_queue(bio->bi_bdev)))) 910 !blk_queue_discard(bdev_get_queue(bio->bi_bdev))))
920 /* Just ignore it */ 911 /* Just ignore it */
@@ -1098,8 +1089,7 @@ static void raid10_unplug(struct blk_plug_cb *cb, bool from_schedule)
1098 bio->bi_next = NULL; 1089 bio->bi_next = NULL;
1099 bio->bi_bdev = rdev->bdev; 1090 bio->bi_bdev = rdev->bdev;
1100 if (test_bit(Faulty, &rdev->flags)) { 1091 if (test_bit(Faulty, &rdev->flags)) {
1101 bio->bi_status = BLK_STS_IOERR; 1092 bio_io_error(bio);
1102 bio_endio(bio);
1103 } else if (unlikely((bio_op(bio) == REQ_OP_DISCARD) && 1093 } else if (unlikely((bio_op(bio) == REQ_OP_DISCARD) &&
1104 !blk_queue_discard(bdev_get_queue(bio->bi_bdev)))) 1094 !blk_queue_discard(bdev_get_queue(bio->bi_bdev))))
1105 /* Just ignore it */ 1095 /* Just ignore it */
@@ -2087,8 +2077,8 @@ static void sync_request_write(struct mddev *mddev, struct r10bio *r10_bio)
2087 rp = get_resync_pages(tbio); 2077 rp = get_resync_pages(tbio);
2088 bio_reset(tbio); 2078 bio_reset(tbio);
2089 2079
2090 tbio->bi_vcnt = vcnt; 2080 md_bio_reset_resync_pages(tbio, rp, fbio->bi_iter.bi_size);
2091 tbio->bi_iter.bi_size = fbio->bi_iter.bi_size; 2081
2092 rp->raid_bio = r10_bio; 2082 rp->raid_bio = r10_bio;
2093 tbio->bi_private = rp; 2083 tbio->bi_private = rp;
2094 tbio->bi_iter.bi_sector = r10_bio->devs[i].addr; 2084 tbio->bi_iter.bi_sector = r10_bio->devs[i].addr;
@@ -2853,6 +2843,7 @@ static sector_t raid10_sync_request(struct mddev *mddev, sector_t sector_nr,
2853 sector_t sectors_skipped = 0; 2843 sector_t sectors_skipped = 0;
2854 int chunks_skipped = 0; 2844 int chunks_skipped = 0;
2855 sector_t chunk_mask = conf->geo.chunk_mask; 2845 sector_t chunk_mask = conf->geo.chunk_mask;
2846 int page_idx = 0;
2856 2847
2857 if (!conf->r10buf_pool) 2848 if (!conf->r10buf_pool)
2858 if (init_resync(conf)) 2849 if (init_resync(conf))
@@ -3355,7 +3346,7 @@ static sector_t raid10_sync_request(struct mddev *mddev, sector_t sector_nr,
3355 break; 3346 break;
3356 for (bio= biolist ; bio ; bio=bio->bi_next) { 3347 for (bio= biolist ; bio ; bio=bio->bi_next) {
3357 struct resync_pages *rp = get_resync_pages(bio); 3348 struct resync_pages *rp = get_resync_pages(bio);
3358 page = resync_fetch_page(rp, rp->idx++); 3349 page = resync_fetch_page(rp, page_idx);
3359 /* 3350 /*
3360 * won't fail because the vec table is big enough 3351 * won't fail because the vec table is big enough
3361 * to hold all these pages 3352 * to hold all these pages
@@ -3364,7 +3355,7 @@ static sector_t raid10_sync_request(struct mddev *mddev, sector_t sector_nr,
3364 } 3355 }
3365 nr_sectors += len>>9; 3356 nr_sectors += len>>9;
3366 sector_nr += len>>9; 3357 sector_nr += len>>9;
3367 } while (get_resync_pages(biolist)->idx < RESYNC_PAGES); 3358 } while (++page_idx < RESYNC_PAGES);
3368 r10_bio->sectors = nr_sectors; 3359 r10_bio->sectors = nr_sectors;
3369 3360
3370 while (biolist) { 3361 while (biolist) {
diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
index aeeb8d6854e2..0fc2748aaf95 100644
--- a/drivers/md/raid5.c
+++ b/drivers/md/raid5.c
@@ -3381,9 +3381,8 @@ handle_failed_stripe(struct r5conf *conf, struct stripe_head *sh,
3381 sh->dev[i].sector + STRIPE_SECTORS) { 3381 sh->dev[i].sector + STRIPE_SECTORS) {
3382 struct bio *nextbi = r5_next_bio(bi, sh->dev[i].sector); 3382 struct bio *nextbi = r5_next_bio(bi, sh->dev[i].sector);
3383 3383
3384 bi->bi_status = BLK_STS_IOERR;
3385 md_write_end(conf->mddev); 3384 md_write_end(conf->mddev);
3386 bio_endio(bi); 3385 bio_io_error(bi);
3387 bi = nextbi; 3386 bi = nextbi;
3388 } 3387 }
3389 if (bitmap_end) 3388 if (bitmap_end)
@@ -3403,9 +3402,8 @@ handle_failed_stripe(struct r5conf *conf, struct stripe_head *sh,
3403 sh->dev[i].sector + STRIPE_SECTORS) { 3402 sh->dev[i].sector + STRIPE_SECTORS) {
3404 struct bio *bi2 = r5_next_bio(bi, sh->dev[i].sector); 3403 struct bio *bi2 = r5_next_bio(bi, sh->dev[i].sector);
3405 3404
3406 bi->bi_status = BLK_STS_IOERR;
3407 md_write_end(conf->mddev); 3405 md_write_end(conf->mddev);
3408 bio_endio(bi); 3406 bio_io_error(bi);
3409 bi = bi2; 3407 bi = bi2;
3410 } 3408 }
3411 3409
@@ -3429,8 +3427,7 @@ handle_failed_stripe(struct r5conf *conf, struct stripe_head *sh,
3429 struct bio *nextbi = 3427 struct bio *nextbi =
3430 r5_next_bio(bi, sh->dev[i].sector); 3428 r5_next_bio(bi, sh->dev[i].sector);
3431 3429
3432 bi->bi_status = BLK_STS_IOERR; 3430 bio_io_error(bi);
3433 bio_endio(bi);
3434 bi = nextbi; 3431 bi = nextbi;
3435 } 3432 }
3436 } 3433 }
@@ -6237,6 +6234,8 @@ static void raid5_do_work(struct work_struct *work)
6237 pr_debug("%d stripes handled\n", handled); 6234 pr_debug("%d stripes handled\n", handled);
6238 6235
6239 spin_unlock_irq(&conf->device_lock); 6236 spin_unlock_irq(&conf->device_lock);
6237
6238 async_tx_issue_pending_all();
6240 blk_finish_plug(&plug); 6239 blk_finish_plug(&plug);
6241 6240
6242 pr_debug("--- raid5worker inactive\n"); 6241 pr_debug("--- raid5worker inactive\n");
diff --git a/drivers/media/cec/cec-adap.c b/drivers/media/cec/cec-adap.c
index bf45977b2823..d596b601ff42 100644
--- a/drivers/media/cec/cec-adap.c
+++ b/drivers/media/cec/cec-adap.c
@@ -559,7 +559,7 @@ EXPORT_SYMBOL_GPL(cec_transmit_done);
559 559
560void cec_transmit_attempt_done(struct cec_adapter *adap, u8 status) 560void cec_transmit_attempt_done(struct cec_adapter *adap, u8 status)
561{ 561{
562 switch (status) { 562 switch (status & ~CEC_TX_STATUS_MAX_RETRIES) {
563 case CEC_TX_STATUS_OK: 563 case CEC_TX_STATUS_OK:
564 cec_transmit_done(adap, status, 0, 0, 0, 0); 564 cec_transmit_done(adap, status, 0, 0, 0, 0);
565 return; 565 return;
diff --git a/drivers/media/cec/cec-notifier.c b/drivers/media/cec/cec-notifier.c
index 74dc1c32080e..08b619d0ea1e 100644
--- a/drivers/media/cec/cec-notifier.c
+++ b/drivers/media/cec/cec-notifier.c
@@ -87,6 +87,9 @@ EXPORT_SYMBOL_GPL(cec_notifier_put);
87 87
88void cec_notifier_set_phys_addr(struct cec_notifier *n, u16 pa) 88void cec_notifier_set_phys_addr(struct cec_notifier *n, u16 pa)
89{ 89{
90 if (n == NULL)
91 return;
92
90 mutex_lock(&n->lock); 93 mutex_lock(&n->lock);
91 n->phys_addr = pa; 94 n->phys_addr = pa;
92 if (n->callback) 95 if (n->callback)
@@ -100,6 +103,9 @@ void cec_notifier_set_phys_addr_from_edid(struct cec_notifier *n,
100{ 103{
101 u16 pa = CEC_PHYS_ADDR_INVALID; 104 u16 pa = CEC_PHYS_ADDR_INVALID;
102 105
106 if (n == NULL)
107 return;
108
103 if (edid && edid->extensions) 109 if (edid && edid->extensions)
104 pa = cec_get_edid_phys_addr((const u8 *)edid, 110 pa = cec_get_edid_phys_addr((const u8 *)edid,
105 EDID_LENGTH * (edid->extensions + 1), NULL); 111 EDID_LENGTH * (edid->extensions + 1), NULL);
diff --git a/drivers/media/dvb-core/dvb_ca_en50221.c b/drivers/media/dvb-core/dvb_ca_en50221.c
index af694f2066a2..17970cdd55fa 100644
--- a/drivers/media/dvb-core/dvb_ca_en50221.c
+++ b/drivers/media/dvb-core/dvb_ca_en50221.c
@@ -349,7 +349,8 @@ static int dvb_ca_en50221_link_init(struct dvb_ca_private *ca, int slot)
349 /* read the buffer size from the CAM */ 349 /* read the buffer size from the CAM */
350 if ((ret = ca->pub->write_cam_control(ca->pub, slot, CTRLIF_COMMAND, IRQEN | CMDREG_SR)) != 0) 350 if ((ret = ca->pub->write_cam_control(ca->pub, slot, CTRLIF_COMMAND, IRQEN | CMDREG_SR)) != 0)
351 return ret; 351 return ret;
352 if ((ret = dvb_ca_en50221_wait_if_status(ca, slot, STATUSREG_DA, HZ / 10)) != 0) 352 ret = dvb_ca_en50221_wait_if_status(ca, slot, STATUSREG_DA, HZ);
353 if (ret != 0)
353 return ret; 354 return ret;
354 if ((ret = dvb_ca_en50221_read_data(ca, slot, buf, 2)) != 2) 355 if ((ret = dvb_ca_en50221_read_data(ca, slot, buf, 2)) != 2)
355 return -EIO; 356 return -EIO;
@@ -644,72 +645,101 @@ static int dvb_ca_en50221_read_data(struct dvb_ca_private *ca, int slot,
644 } 645 }
645 buf_free = dvb_ringbuffer_free(&ca->slot_info[slot].rx_buffer); 646 buf_free = dvb_ringbuffer_free(&ca->slot_info[slot].rx_buffer);
646 647
647 if (buf_free < (ca->slot_info[slot].link_buf_size + DVB_RINGBUFFER_PKTHDRSIZE)) { 648 if (buf_free < (ca->slot_info[slot].link_buf_size +
649 DVB_RINGBUFFER_PKTHDRSIZE)) {
648 status = -EAGAIN; 650 status = -EAGAIN;
649 goto exit; 651 goto exit;
650 } 652 }
651 } 653 }
652 654
653 /* check if there is data available */ 655 if (ca->pub->read_data &&
654 if ((status = ca->pub->read_cam_control(ca->pub, slot, CTRLIF_STATUS)) < 0) 656 (ca->slot_info[slot].slot_state != DVB_CA_SLOTSTATE_LINKINIT)) {
655 goto exit; 657 if (ebuf == NULL)
656 if (!(status & STATUSREG_DA)) { 658 status = ca->pub->read_data(ca->pub, slot, buf,
657 /* no data */ 659 sizeof(buf));
658 status = 0; 660 else
659 goto exit; 661 status = ca->pub->read_data(ca->pub, slot, buf, ecount);
660 } 662 if (status < 0)
661 663 return status;
662 /* read the amount of data */ 664 bytes_read = status;
663 if ((status = ca->pub->read_cam_control(ca->pub, slot, CTRLIF_SIZE_HIGH)) < 0) 665 if (status == 0)
664 goto exit; 666 goto exit;
665 bytes_read = status << 8; 667 } else {
666 if ((status = ca->pub->read_cam_control(ca->pub, slot, CTRLIF_SIZE_LOW)) < 0)
667 goto exit;
668 bytes_read |= status;
669 668
670 /* check it will fit */ 669 /* check if there is data available */
671 if (ebuf == NULL) { 670 status = ca->pub->read_cam_control(ca->pub, slot,
672 if (bytes_read > ca->slot_info[slot].link_buf_size) { 671 CTRLIF_STATUS);
673 pr_err("dvb_ca adapter %d: CAM tried to send a buffer larger than the link buffer size (%i > %i)!\n", 672 if (status < 0)
674 ca->dvbdev->adapter->num, bytes_read,
675 ca->slot_info[slot].link_buf_size);
676 ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_LINKINIT;
677 status = -EIO;
678 goto exit; 673 goto exit;
679 } 674 if (!(status & STATUSREG_DA)) {
680 if (bytes_read < 2) { 675 /* no data */
681 pr_err("dvb_ca adapter %d: CAM sent a buffer that was less than 2 bytes!\n", 676 status = 0;
682 ca->dvbdev->adapter->num);
683 ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_LINKINIT;
684 status = -EIO;
685 goto exit; 677 goto exit;
686 } 678 }
687 } else { 679
688 if (bytes_read > ecount) { 680 /* read the amount of data */
689 pr_err("dvb_ca adapter %d: CAM tried to send a buffer larger than the ecount size!\n", 681 status = ca->pub->read_cam_control(ca->pub, slot,
690 ca->dvbdev->adapter->num); 682 CTRLIF_SIZE_HIGH);
691 status = -EIO; 683 if (status < 0)
684 goto exit;
685 bytes_read = status << 8;
686 status = ca->pub->read_cam_control(ca->pub, slot,
687 CTRLIF_SIZE_LOW);
688 if (status < 0)
692 goto exit; 689 goto exit;
690 bytes_read |= status;
691
692 /* check it will fit */
693 if (ebuf == NULL) {
694 if (bytes_read > ca->slot_info[slot].link_buf_size) {
695 pr_err("dvb_ca adapter %d: CAM tried to send a buffer larger than the link buffer size (%i > %i)!\n",
696 ca->dvbdev->adapter->num, bytes_read,
697 ca->slot_info[slot].link_buf_size);
698 ca->slot_info[slot].slot_state =
699 DVB_CA_SLOTSTATE_LINKINIT;
700 status = -EIO;
701 goto exit;
702 }
703 if (bytes_read < 2) {
704 pr_err("dvb_ca adapter %d: CAM sent a buffer that was less than 2 bytes!\n",
705 ca->dvbdev->adapter->num);
706 ca->slot_info[slot].slot_state =
707 DVB_CA_SLOTSTATE_LINKINIT;
708 status = -EIO;
709 goto exit;
710 }
711 } else {
712 if (bytes_read > ecount) {
713 pr_err("dvb_ca adapter %d: CAM tried to send a buffer larger than the ecount size!\n",
714 ca->dvbdev->adapter->num);
715 status = -EIO;
716 goto exit;
717 }
693 } 718 }
694 }
695 719
696 /* fill the buffer */ 720 /* fill the buffer */
697 for (i = 0; i < bytes_read; i++) { 721 for (i = 0; i < bytes_read; i++) {
698 /* read byte and check */ 722 /* read byte and check */
699 if ((status = ca->pub->read_cam_control(ca->pub, slot, CTRLIF_DATA)) < 0) 723 status = ca->pub->read_cam_control(ca->pub, slot,
700 goto exit; 724 CTRLIF_DATA);
725 if (status < 0)
726 goto exit;
701 727
702 /* OK, store it in the buffer */ 728 /* OK, store it in the buffer */
703 buf[i] = status; 729 buf[i] = status;
704 } 730 }
705 731
706 /* check for read error (RE should now be 0) */ 732 /* check for read error (RE should now be 0) */
707 if ((status = ca->pub->read_cam_control(ca->pub, slot, CTRLIF_STATUS)) < 0) 733 status = ca->pub->read_cam_control(ca->pub, slot,
708 goto exit; 734 CTRLIF_STATUS);
709 if (status & STATUSREG_RE) { 735 if (status < 0)
710 ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_LINKINIT; 736 goto exit;
711 status = -EIO; 737 if (status & STATUSREG_RE) {
712 goto exit; 738 ca->slot_info[slot].slot_state =
739 DVB_CA_SLOTSTATE_LINKINIT;
740 status = -EIO;
741 goto exit;
742 }
713 } 743 }
714 744
715 /* OK, add it to the receive buffer, or copy into external buffer if supplied */ 745 /* OK, add it to the receive buffer, or copy into external buffer if supplied */
@@ -762,6 +792,10 @@ static int dvb_ca_en50221_write_data(struct dvb_ca_private *ca, int slot,
762 if (bytes_write > ca->slot_info[slot].link_buf_size) 792 if (bytes_write > ca->slot_info[slot].link_buf_size)
763 return -EINVAL; 793 return -EINVAL;
764 794
795 if (ca->pub->write_data &&
796 (ca->slot_info[slot].slot_state != DVB_CA_SLOTSTATE_LINKINIT))
797 return ca->pub->write_data(ca->pub, slot, buf, bytes_write);
798
765 /* it is possible we are dealing with a single buffer implementation, 799 /* it is possible we are dealing with a single buffer implementation,
766 thus if there is data available for read or if there is even a read 800 thus if there is data available for read or if there is even a read
767 already in progress, we do nothing but awake the kernel thread to 801 already in progress, we do nothing but awake the kernel thread to
@@ -1176,7 +1210,8 @@ static int dvb_ca_en50221_thread(void *data)
1176 1210
1177 pr_err("dvb_ca adapter %d: DVB CAM link initialisation failed :(\n", 1211 pr_err("dvb_ca adapter %d: DVB CAM link initialisation failed :(\n",
1178 ca->dvbdev->adapter->num); 1212 ca->dvbdev->adapter->num);
1179 ca->slot_info[slot].slot_state = DVB_CA_SLOTSTATE_INVALID; 1213 ca->slot_info[slot].slot_state =
1214 DVB_CA_SLOTSTATE_UNINITIALISED;
1180 dvb_ca_en50221_thread_update_delay(ca); 1215 dvb_ca_en50221_thread_update_delay(ca);
1181 break; 1216 break;
1182 } 1217 }
diff --git a/drivers/media/dvb-core/dvb_ca_en50221.h b/drivers/media/dvb-core/dvb_ca_en50221.h
index 1e4bbbd34d91..82617bac0875 100644
--- a/drivers/media/dvb-core/dvb_ca_en50221.h
+++ b/drivers/media/dvb-core/dvb_ca_en50221.h
@@ -41,6 +41,8 @@
41 * @write_attribute_mem: function for writing attribute memory on the CAM 41 * @write_attribute_mem: function for writing attribute memory on the CAM
42 * @read_cam_control: function for reading the control interface on the CAM 42 * @read_cam_control: function for reading the control interface on the CAM
43 * @write_cam_control: function for reading the control interface on the CAM 43 * @write_cam_control: function for reading the control interface on the CAM
44 * @read_data: function for reading data (block mode)
45 * @write_data: function for writing data (block mode)
44 * @slot_reset: function to reset the CAM slot 46 * @slot_reset: function to reset the CAM slot
45 * @slot_shutdown: function to shutdown a CAM slot 47 * @slot_shutdown: function to shutdown a CAM slot
46 * @slot_ts_enable: function to enable the Transport Stream on a CAM slot 48 * @slot_ts_enable: function to enable the Transport Stream on a CAM slot
@@ -66,6 +68,11 @@ struct dvb_ca_en50221 {
66 int (*write_cam_control)(struct dvb_ca_en50221 *ca, 68 int (*write_cam_control)(struct dvb_ca_en50221 *ca,
67 int slot, u8 address, u8 value); 69 int slot, u8 address, u8 value);
68 70
71 int (*read_data)(struct dvb_ca_en50221 *ca,
72 int slot, u8 *ebuf, int ecount);
73 int (*write_data)(struct dvb_ca_en50221 *ca,
74 int slot, u8 *ebuf, int ecount);
75
69 int (*slot_reset)(struct dvb_ca_en50221 *ca, int slot); 76 int (*slot_reset)(struct dvb_ca_en50221 *ca, int slot);
70 int (*slot_shutdown)(struct dvb_ca_en50221 *ca, int slot); 77 int (*slot_shutdown)(struct dvb_ca_en50221 *ca, int slot);
71 int (*slot_ts_enable)(struct dvb_ca_en50221 *ca, int slot); 78 int (*slot_ts_enable)(struct dvb_ca_en50221 *ca, int slot);
diff --git a/drivers/media/dvb-frontends/cxd2841er.c b/drivers/media/dvb-frontends/cxd2841er.c
index 08f67d60a7d9..12bff778c97f 100644
--- a/drivers/media/dvb-frontends/cxd2841er.c
+++ b/drivers/media/dvb-frontends/cxd2841er.c
@@ -3279,7 +3279,10 @@ static int cxd2841er_get_frontend(struct dvb_frontend *fe,
3279 else if (priv->state == STATE_ACTIVE_TC) 3279 else if (priv->state == STATE_ACTIVE_TC)
3280 cxd2841er_read_status_tc(fe, &status); 3280 cxd2841er_read_status_tc(fe, &status);
3281 3281
3282 cxd2841er_read_signal_strength(fe); 3282 if (priv->state == STATE_ACTIVE_TC || priv->state == STATE_ACTIVE_S)
3283 cxd2841er_read_signal_strength(fe);
3284 else
3285 p->strength.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
3283 3286
3284 if (status & FE_HAS_LOCK) { 3287 if (status & FE_HAS_LOCK) {
3285 cxd2841er_read_snr(fe); 3288 cxd2841er_read_snr(fe);
diff --git a/drivers/media/dvb-frontends/drx39xyj/drx_driver.h b/drivers/media/dvb-frontends/drx39xyj/drx_driver.h
index 4442e478db72..cd69e187ba7a 100644
--- a/drivers/media/dvb-frontends/drx39xyj/drx_driver.h
+++ b/drivers/media/dvb-frontends/drx39xyj/drx_driver.h
@@ -307,7 +307,7 @@ int drxbsp_tuner_default_i2c_write_read(struct tuner_instance *tuner,
307* \def DRX_UNKNOWN 307* \def DRX_UNKNOWN
308* \brief Generic UNKNOWN value for DRX enumerated types. 308* \brief Generic UNKNOWN value for DRX enumerated types.
309* 309*
310* Used to indicate that the parameter value is unknown or not yet initalized. 310* Used to indicate that the parameter value is unknown or not yet initialized.
311*/ 311*/
312#ifndef DRX_UNKNOWN 312#ifndef DRX_UNKNOWN
313#define DRX_UNKNOWN (254) 313#define DRX_UNKNOWN (254)
@@ -450,19 +450,6 @@ MACROS
450 ((u8)((((u16)x)>>8)&0xFF)) 450 ((u8)((((u16)x)>>8)&0xFF))
451 451
452/** 452/**
453* \brief Macro to sign extend signed 9 bit value to signed 16 bit value
454*/
455#define DRX_S9TOS16(x) ((((u16)x)&0x100) ? ((s16)((u16)(x)|0xFF00)) : (x))
456
457/**
458* \brief Macro to sign extend signed 9 bit value to signed 16 bit value
459*/
460#define DRX_S24TODRXFREQ(x) ((((u32) x) & 0x00800000UL) ? \
461 ((s32) \
462 (((u32) x) | 0xFF000000)) : \
463 ((s32) x))
464
465/**
466* \brief Macro to convert 16 bit register value to a s32 453* \brief Macro to convert 16 bit register value to a s32
467*/ 454*/
468#define DRX_U16TODRXFREQ(x) ((x & 0x8000) ? \ 455#define DRX_U16TODRXFREQ(x) ((x & 0x8000) ? \
diff --git a/drivers/media/dvb-frontends/lnbh25.c b/drivers/media/dvb-frontends/lnbh25.c
index ef3021e964be..cb486e879fdd 100644
--- a/drivers/media/dvb-frontends/lnbh25.c
+++ b/drivers/media/dvb-frontends/lnbh25.c
@@ -76,8 +76,8 @@ static int lnbh25_read_vmon(struct lnbh25_priv *priv)
76 return ret; 76 return ret;
77 } 77 }
78 } 78 }
79 print_hex_dump_bytes("lnbh25_read_vmon: ", 79 dev_dbg(&priv->i2c->dev, "%s(): %*ph\n",
80 DUMP_PREFIX_OFFSET, status, sizeof(status)); 80 __func__, (int) sizeof(status), status);
81 if ((status[0] & (LNBH25_STATUS_OFL | LNBH25_STATUS_VMON)) != 0) { 81 if ((status[0] & (LNBH25_STATUS_OFL | LNBH25_STATUS_VMON)) != 0) {
82 dev_err(&priv->i2c->dev, 82 dev_err(&priv->i2c->dev,
83 "%s(): voltage in failure state, status reg 0x%x\n", 83 "%s(): voltage in failure state, status reg 0x%x\n",
@@ -178,7 +178,7 @@ struct dvb_frontend *lnbh25_attach(struct dvb_frontend *fe,
178 fe->ops.release_sec = lnbh25_release; 178 fe->ops.release_sec = lnbh25_release;
179 fe->ops.set_voltage = lnbh25_set_voltage; 179 fe->ops.set_voltage = lnbh25_set_voltage;
180 180
181 dev_err(&i2c->dev, "%s(): attached at I2C addr 0x%02x\n", 181 dev_info(&i2c->dev, "%s(): attached at I2C addr 0x%02x\n",
182 __func__, priv->i2c_address); 182 __func__, priv->i2c_address);
183 return fe; 183 return fe;
184} 184}
diff --git a/drivers/media/dvb-frontends/stv0367.c b/drivers/media/dvb-frontends/stv0367.c
index e726c2e00460..8ac0f598978d 100644
--- a/drivers/media/dvb-frontends/stv0367.c
+++ b/drivers/media/dvb-frontends/stv0367.c
@@ -25,6 +25,8 @@
25#include <linux/slab.h> 25#include <linux/slab.h>
26#include <linux/i2c.h> 26#include <linux/i2c.h>
27 27
28#include "dvb_math.h"
29
28#include "stv0367.h" 30#include "stv0367.h"
29#include "stv0367_defs.h" 31#include "stv0367_defs.h"
30#include "stv0367_regs.h" 32#include "stv0367_regs.h"
@@ -1437,7 +1439,7 @@ static int stv0367ter_get_frontend(struct dvb_frontend *fe,
1437 return 0; 1439 return 0;
1438} 1440}
1439 1441
1440static int stv0367ter_read_snr(struct dvb_frontend *fe, u16 *snr) 1442static u32 stv0367ter_snr_readreg(struct dvb_frontend *fe)
1441{ 1443{
1442 struct stv0367_state *state = fe->demodulator_priv; 1444 struct stv0367_state *state = fe->demodulator_priv;
1443 u32 snru32 = 0; 1445 u32 snru32 = 0;
@@ -1453,10 +1455,16 @@ static int stv0367ter_read_snr(struct dvb_frontend *fe, u16 *snr)
1453 1455
1454 cpt++; 1456 cpt++;
1455 } 1457 }
1456
1457 snru32 /= 10;/*average on 10 values*/ 1458 snru32 /= 10;/*average on 10 values*/
1458 1459
1459 *snr = snru32 / 1000; 1460 return snru32;
1461}
1462
1463static int stv0367ter_read_snr(struct dvb_frontend *fe, u16 *snr)
1464{
1465 u32 snrval = stv0367ter_snr_readreg(fe);
1466
1467 *snr = snrval / 1000;
1460 1468
1461 return 0; 1469 return 0;
1462} 1470}
@@ -1501,7 +1509,8 @@ static int stv0367ter_read_status(struct dvb_frontend *fe,
1501 *status = 0; 1509 *status = 0;
1502 1510
1503 if (stv0367_readbits(state, F367TER_LK)) { 1511 if (stv0367_readbits(state, F367TER_LK)) {
1504 *status |= FE_HAS_LOCK; 1512 *status = FE_HAS_SIGNAL | FE_HAS_CARRIER | FE_HAS_VITERBI
1513 | FE_HAS_SYNC | FE_HAS_LOCK;
1505 dprintk("%s: stv0367 has locked\n", __func__); 1514 dprintk("%s: stv0367 has locked\n", __func__);
1506 } 1515 }
1507 1516
@@ -2149,6 +2158,18 @@ static int stv0367cab_read_status(struct dvb_frontend *fe,
2149 2158
2150 *status = 0; 2159 *status = 0;
2151 2160
2161 if (state->cab_state->state > FE_CAB_NOSIGNAL)
2162 *status |= FE_HAS_SIGNAL;
2163
2164 if (state->cab_state->state > FE_CAB_NOCARRIER)
2165 *status |= FE_HAS_CARRIER;
2166
2167 if (state->cab_state->state >= FE_CAB_DEMODOK)
2168 *status |= FE_HAS_VITERBI;
2169
2170 if (state->cab_state->state >= FE_CAB_DATAOK)
2171 *status |= FE_HAS_SYNC;
2172
2152 if (stv0367_readbits(state, (state->cab_state->qamfec_status_reg ? 2173 if (stv0367_readbits(state, (state->cab_state->qamfec_status_reg ?
2153 state->cab_state->qamfec_status_reg : F367CAB_QAMFEC_LOCK))) { 2174 state->cab_state->qamfec_status_reg : F367CAB_QAMFEC_LOCK))) {
2154 *status |= FE_HAS_LOCK; 2175 *status |= FE_HAS_LOCK;
@@ -2702,51 +2723,61 @@ static int stv0367cab_read_strength(struct dvb_frontend *fe, u16 *strength)
2702 return 0; 2723 return 0;
2703} 2724}
2704 2725
2705static int stv0367cab_read_snr(struct dvb_frontend *fe, u16 *snr) 2726static int stv0367cab_snr_power(struct dvb_frontend *fe)
2706{ 2727{
2707 struct stv0367_state *state = fe->demodulator_priv; 2728 struct stv0367_state *state = fe->demodulator_priv;
2708 u32 noisepercentage;
2709 enum stv0367cab_mod QAMSize; 2729 enum stv0367cab_mod QAMSize;
2710 u32 regval = 0, temp = 0;
2711 int power, i;
2712 2730
2713 QAMSize = stv0367_readbits(state, F367CAB_QAM_MODE); 2731 QAMSize = stv0367_readbits(state, F367CAB_QAM_MODE);
2714 switch (QAMSize) { 2732 switch (QAMSize) {
2715 case FE_CAB_MOD_QAM4: 2733 case FE_CAB_MOD_QAM4:
2716 power = 21904; 2734 return 21904;
2717 break;
2718 case FE_CAB_MOD_QAM16: 2735 case FE_CAB_MOD_QAM16:
2719 power = 20480; 2736 return 20480;
2720 break;
2721 case FE_CAB_MOD_QAM32: 2737 case FE_CAB_MOD_QAM32:
2722 power = 23040; 2738 return 23040;
2723 break;
2724 case FE_CAB_MOD_QAM64: 2739 case FE_CAB_MOD_QAM64:
2725 power = 21504; 2740 return 21504;
2726 break;
2727 case FE_CAB_MOD_QAM128: 2741 case FE_CAB_MOD_QAM128:
2728 power = 23616; 2742 return 23616;
2729 break;
2730 case FE_CAB_MOD_QAM256: 2743 case FE_CAB_MOD_QAM256:
2731 power = 21760; 2744 return 21760;
2732 break;
2733 case FE_CAB_MOD_QAM512:
2734 power = 1;
2735 break;
2736 case FE_CAB_MOD_QAM1024: 2745 case FE_CAB_MOD_QAM1024:
2737 power = 21280; 2746 return 21280;
2738 break;
2739 default: 2747 default:
2740 power = 1;
2741 break; 2748 break;
2742 } 2749 }
2743 2750
2751 return 1;
2752}
2753
2754static int stv0367cab_snr_readreg(struct dvb_frontend *fe, int avgdiv)
2755{
2756 struct stv0367_state *state = fe->demodulator_priv;
2757 u32 regval = 0;
2758 int i;
2759
2744 for (i = 0; i < 10; i++) { 2760 for (i = 0; i < 10; i++) {
2745 regval += (stv0367_readbits(state, F367CAB_SNR_LO) 2761 regval += (stv0367_readbits(state, F367CAB_SNR_LO)
2746 + 256 * stv0367_readbits(state, F367CAB_SNR_HI)); 2762 + 256 * stv0367_readbits(state, F367CAB_SNR_HI));
2747 } 2763 }
2748 2764
2749 regval /= 10; /*for average over 10 times in for loop above*/ 2765 if (avgdiv)
2766 regval /= 10;
2767
2768 return regval;
2769}
2770
2771static int stv0367cab_read_snr(struct dvb_frontend *fe, u16 *snr)
2772{
2773 struct stv0367_state *state = fe->demodulator_priv;
2774 u32 noisepercentage;
2775 u32 regval = 0, temp = 0;
2776 int power;
2777
2778 power = stv0367cab_snr_power(fe);
2779 regval = stv0367cab_snr_readreg(fe, 1);
2780
2750 if (regval != 0) { 2781 if (regval != 0) {
2751 temp = power 2782 temp = power
2752 * (1 << (3 + stv0367_readbits(state, F367CAB_SNR_PER))); 2783 * (1 << (3 + stv0367_readbits(state, F367CAB_SNR_PER)));
@@ -2980,21 +3011,117 @@ static int stv0367ddb_set_frontend(struct dvb_frontend *fe)
2980 return -EINVAL; 3011 return -EINVAL;
2981} 3012}
2982 3013
3014static void stv0367ddb_read_signal_strength(struct dvb_frontend *fe)
3015{
3016 struct stv0367_state *state = fe->demodulator_priv;
3017 struct dtv_frontend_properties *p = &fe->dtv_property_cache;
3018 s32 signalstrength;
3019
3020 switch (state->activedemod) {
3021 case demod_cab:
3022 signalstrength = stv0367cab_get_rf_lvl(state) * 1000;
3023 break;
3024 default:
3025 p->strength.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
3026 return;
3027 }
3028
3029 p->strength.stat[0].scale = FE_SCALE_DECIBEL;
3030 p->strength.stat[0].uvalue = signalstrength;
3031}
3032
3033static void stv0367ddb_read_snr(struct dvb_frontend *fe)
3034{
3035 struct stv0367_state *state = fe->demodulator_priv;
3036 struct dtv_frontend_properties *p = &fe->dtv_property_cache;
3037 int cab_pwr;
3038 u32 regval, tmpval, snrval = 0;
3039
3040 switch (state->activedemod) {
3041 case demod_ter:
3042 snrval = stv0367ter_snr_readreg(fe);
3043 break;
3044 case demod_cab:
3045 cab_pwr = stv0367cab_snr_power(fe);
3046 regval = stv0367cab_snr_readreg(fe, 0);
3047
3048 /* prevent division by zero */
3049 if (!regval) {
3050 snrval = 0;
3051 break;
3052 }
3053
3054 tmpval = (cab_pwr * 320) / regval;
3055 snrval = ((tmpval != 0) ? (intlog2(tmpval) / 5581) : 0);
3056 break;
3057 default:
3058 p->cnr.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
3059 return;
3060 }
3061
3062 p->cnr.stat[0].scale = FE_SCALE_DECIBEL;
3063 p->cnr.stat[0].uvalue = snrval;
3064}
3065
3066static void stv0367ddb_read_ucblocks(struct dvb_frontend *fe)
3067{
3068 struct stv0367_state *state = fe->demodulator_priv;
3069 struct dtv_frontend_properties *p = &fe->dtv_property_cache;
3070 u32 ucblocks = 0;
3071
3072 switch (state->activedemod) {
3073 case demod_ter:
3074 stv0367ter_read_ucblocks(fe, &ucblocks);
3075 break;
3076 case demod_cab:
3077 stv0367cab_read_ucblcks(fe, &ucblocks);
3078 break;
3079 default:
3080 p->block_error.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
3081 return;
3082 }
3083
3084 p->block_error.stat[0].scale = FE_SCALE_COUNTER;
3085 p->block_error.stat[0].uvalue = ucblocks;
3086}
3087
2983static int stv0367ddb_read_status(struct dvb_frontend *fe, 3088static int stv0367ddb_read_status(struct dvb_frontend *fe,
2984 enum fe_status *status) 3089 enum fe_status *status)
2985{ 3090{
2986 struct stv0367_state *state = fe->demodulator_priv; 3091 struct stv0367_state *state = fe->demodulator_priv;
3092 struct dtv_frontend_properties *p = &fe->dtv_property_cache;
3093 int ret;
2987 3094
2988 switch (state->activedemod) { 3095 switch (state->activedemod) {
2989 case demod_ter: 3096 case demod_ter:
2990 return stv0367ter_read_status(fe, status); 3097 ret = stv0367ter_read_status(fe, status);
3098 break;
2991 case demod_cab: 3099 case demod_cab:
2992 return stv0367cab_read_status(fe, status); 3100 ret = stv0367cab_read_status(fe, status);
2993 default:
2994 break; 3101 break;
3102 default:
3103 return 0;
2995 } 3104 }
2996 3105
2997 return -EINVAL; 3106 /* stop and report on *_read_status failure */
3107 if (ret)
3108 return ret;
3109
3110 stv0367ddb_read_signal_strength(fe);
3111
3112 /* read carrier/noise when a carrier is detected */
3113 if (*status & FE_HAS_CARRIER)
3114 stv0367ddb_read_snr(fe);
3115 else
3116 p->cnr.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
3117
3118 /* read uncorrected blocks on FE_HAS_LOCK */
3119 if (*status & FE_HAS_LOCK)
3120 stv0367ddb_read_ucblocks(fe);
3121 else
3122 p->block_error.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
3123
3124 return 0;
2998} 3125}
2999 3126
3000static int stv0367ddb_get_frontend(struct dvb_frontend *fe, 3127static int stv0367ddb_get_frontend(struct dvb_frontend *fe,
@@ -3035,6 +3162,7 @@ static int stv0367ddb_sleep(struct dvb_frontend *fe)
3035static int stv0367ddb_init(struct stv0367_state *state) 3162static int stv0367ddb_init(struct stv0367_state *state)
3036{ 3163{
3037 struct stv0367ter_state *ter_state = state->ter_state; 3164 struct stv0367ter_state *ter_state = state->ter_state;
3165 struct dtv_frontend_properties *p = &state->fe.dtv_property_cache;
3038 3166
3039 stv0367_writereg(state, R367TER_TOPCTRL, 0x10); 3167 stv0367_writereg(state, R367TER_TOPCTRL, 0x10);
3040 3168
@@ -3109,6 +3237,13 @@ static int stv0367ddb_init(struct stv0367_state *state)
3109 ter_state->first_lock = 0; 3237 ter_state->first_lock = 0;
3110 ter_state->unlock_counter = 2; 3238 ter_state->unlock_counter = 2;
3111 3239
3240 p->strength.len = 1;
3241 p->strength.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
3242 p->cnr.len = 1;
3243 p->cnr.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
3244 p->block_error.len = 1;
3245 p->block_error.stat[0].scale = FE_SCALE_NOT_AVAILABLE;
3246
3112 return 0; 3247 return 0;
3113} 3248}
3114 3249
@@ -3126,15 +3261,12 @@ static const struct dvb_frontend_ops stv0367ddb_ops = {
3126 0x400 |/* FE_CAN_QAM_4 */ 3261 0x400 |/* FE_CAN_QAM_4 */
3127 FE_CAN_QAM_16 | FE_CAN_QAM_32 | 3262 FE_CAN_QAM_16 | FE_CAN_QAM_32 |
3128 FE_CAN_QAM_64 | FE_CAN_QAM_128 | 3263 FE_CAN_QAM_64 | FE_CAN_QAM_128 |
3129 FE_CAN_QAM_256 | FE_CAN_FEC_AUTO | 3264 FE_CAN_QAM_256 | FE_CAN_QAM_AUTO |
3130 /* DVB-T */ 3265 /* DVB-T */
3131 FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | 3266 FE_CAN_FEC_1_2 | FE_CAN_FEC_2_3 | FE_CAN_FEC_3_4 |
3132 FE_CAN_FEC_3_4 | FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | 3267 FE_CAN_FEC_5_6 | FE_CAN_FEC_7_8 | FE_CAN_FEC_AUTO |
3133 FE_CAN_FEC_AUTO | 3268 FE_CAN_QPSK | FE_CAN_TRANSMISSION_MODE_AUTO |
3134 FE_CAN_QPSK | FE_CAN_QAM_16 | FE_CAN_QAM_64 | 3269 FE_CAN_RECOVER | FE_CAN_INVERSION_AUTO |
3135 FE_CAN_QAM_128 | FE_CAN_QAM_256 | FE_CAN_QAM_AUTO |
3136 FE_CAN_TRANSMISSION_MODE_AUTO | FE_CAN_RECOVER |
3137 FE_CAN_INVERSION_AUTO |
3138 FE_CAN_MUTE_TS 3270 FE_CAN_MUTE_TS
3139 }, 3271 },
3140 .release = stv0367_release, 3272 .release = stv0367_release,
diff --git a/drivers/media/i2c/et8ek8/et8ek8_driver.c b/drivers/media/i2c/et8ek8/et8ek8_driver.c
index 6e313d5243a0..f39f5179dd95 100644
--- a/drivers/media/i2c/et8ek8/et8ek8_driver.c
+++ b/drivers/media/i2c/et8ek8/et8ek8_driver.c
@@ -1496,7 +1496,6 @@ MODULE_DEVICE_TABLE(i2c, et8ek8_id_table);
1496static const struct dev_pm_ops et8ek8_pm_ops = { 1496static const struct dev_pm_ops et8ek8_pm_ops = {
1497 SET_SYSTEM_SLEEP_PM_OPS(et8ek8_suspend, et8ek8_resume) 1497 SET_SYSTEM_SLEEP_PM_OPS(et8ek8_suspend, et8ek8_resume)
1498}; 1498};
1499MODULE_DEVICE_TABLE(of, et8ek8_of_table);
1500 1499
1501static struct i2c_driver et8ek8_i2c_driver = { 1500static struct i2c_driver et8ek8_i2c_driver = {
1502 .driver = { 1501 .driver = {
diff --git a/drivers/media/i2c/tvp5150.c b/drivers/media/i2c/tvp5150.c
index 9da4bf4f2c7a..7b79a7498751 100644
--- a/drivers/media/i2c/tvp5150.c
+++ b/drivers/media/i2c/tvp5150.c
@@ -659,7 +659,7 @@ static int tvp5150_set_vbi(struct v4l2_subdev *sd,
659 struct tvp5150 *decoder = to_tvp5150(sd); 659 struct tvp5150 *decoder = to_tvp5150(sd);
660 v4l2_std_id std = decoder->norm; 660 v4l2_std_id std = decoder->norm;
661 u8 reg; 661 u8 reg;
662 int pos=0; 662 int pos = 0;
663 663
664 if (std == V4L2_STD_ALL) { 664 if (std == V4L2_STD_ALL) {
665 dev_err(sd->dev, "VBI can't be configured without knowing number of lines\n"); 665 dev_err(sd->dev, "VBI can't be configured without knowing number of lines\n");
@@ -669,33 +669,30 @@ static int tvp5150_set_vbi(struct v4l2_subdev *sd,
669 line += 3; 669 line += 3;
670 } 670 }
671 671
672 if (line<6||line>27) 672 if (line < 6 || line > 27)
673 return 0; 673 return 0;
674 674
675 while (regs->reg != (u16)-1 ) { 675 while (regs->reg != (u16)-1) {
676 if ((type & regs->type.vbi_type) && 676 if ((type & regs->type.vbi_type) &&
677 (line>=regs->type.ini_line) && 677 (line >= regs->type.ini_line) &&
678 (line<=regs->type.end_line)) { 678 (line <= regs->type.end_line))
679 type=regs->type.vbi_type;
680 break; 679 break;
681 }
682 680
683 regs++; 681 regs++;
684 pos++; 682 pos++;
685 } 683 }
684
686 if (regs->reg == (u16)-1) 685 if (regs->reg == (u16)-1)
687 return 0; 686 return 0;
688 687
689 type=pos | (flags & 0xf0); 688 type = pos | (flags & 0xf0);
690 reg=((line-6)<<1)+TVP5150_LINE_MODE_INI; 689 reg = ((line - 6) << 1) + TVP5150_LINE_MODE_INI;
691 690
692 if (fields&1) { 691 if (fields & 1)
693 tvp5150_write(sd, reg, type); 692 tvp5150_write(sd, reg, type);
694 }
695 693
696 if (fields&2) { 694 if (fields & 2)
697 tvp5150_write(sd, reg+1, type); 695 tvp5150_write(sd, reg + 1, type);
698 }
699 696
700 return type; 697 return type;
701} 698}
diff --git a/drivers/media/pci/ddbridge/ddbridge-core.c b/drivers/media/pci/ddbridge/ddbridge-core.c
index 9420479bee9a..cd1723e79a07 100644
--- a/drivers/media/pci/ddbridge/ddbridge-core.c
+++ b/drivers/media/pci/ddbridge/ddbridge-core.c
@@ -17,6 +17,8 @@
17 * http://www.gnu.org/copyleft/gpl.html 17 * http://www.gnu.org/copyleft/gpl.html
18 */ 18 */
19 19
20#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
21
20#include <linux/module.h> 22#include <linux/module.h>
21#include <linux/init.h> 23#include <linux/init.h>
22#include <linux/interrupt.h> 24#include <linux/interrupt.h>
@@ -114,6 +116,19 @@ static int i2c_write_reg(struct i2c_adapter *adap, u8 adr,
114 return i2c_write(adap, adr, msg, 2); 116 return i2c_write(adap, adr, msg, 2);
115} 117}
116 118
119static inline u32 safe_ddbreadl(struct ddb *dev, u32 adr)
120{
121 u32 val = ddbreadl(adr);
122
123 /* (ddb)readl returns (uint)-1 (all bits set) on failure, catch that */
124 if (val == ~0) {
125 dev_err(&dev->pdev->dev, "ddbreadl failure, adr=%08x\n", adr);
126 return 0;
127 }
128
129 return val;
130}
131
117static int ddb_i2c_cmd(struct ddb_i2c *i2c, u32 adr, u32 cmd) 132static int ddb_i2c_cmd(struct ddb_i2c *i2c, u32 adr, u32 cmd)
118{ 133{
119 struct ddb *dev = i2c->dev; 134 struct ddb *dev = i2c->dev;
@@ -124,10 +139,10 @@ static int ddb_i2c_cmd(struct ddb_i2c *i2c, u32 adr, u32 cmd)
124 ddbwritel((adr << 9) | cmd, i2c->regs + I2C_COMMAND); 139 ddbwritel((adr << 9) | cmd, i2c->regs + I2C_COMMAND);
125 stat = wait_event_timeout(i2c->wq, i2c->done == 1, HZ); 140 stat = wait_event_timeout(i2c->wq, i2c->done == 1, HZ);
126 if (stat == 0) { 141 if (stat == 0) {
127 printk(KERN_ERR "I2C timeout\n"); 142 dev_err(&dev->pdev->dev, "I2C timeout\n");
128 { /* MSI debugging*/ 143 { /* MSI debugging*/
129 u32 istat = ddbreadl(INTERRUPT_STATUS); 144 u32 istat = ddbreadl(INTERRUPT_STATUS);
130 printk(KERN_ERR "IRS %08x\n", istat); 145 dev_err(&dev->pdev->dev, "IRS %08x\n", istat);
131 ddbwritel(istat, INTERRUPT_ACK); 146 ddbwritel(istat, INTERRUPT_ACK);
132 } 147 }
133 return -EIO; 148 return -EIO;
@@ -533,7 +548,7 @@ static u32 ddb_input_avail(struct ddb_input *input)
533 off = (stat & 0x7ff) << 7; 548 off = (stat & 0x7ff) << 7;
534 549
535 if (ctrl & 4) { 550 if (ctrl & 4) {
536 printk(KERN_ERR "IA %d %d %08x\n", idx, off, ctrl); 551 dev_err(&dev->pdev->dev, "IA %d %d %08x\n", idx, off, ctrl);
537 ddbwritel(input->stat, DMA_BUFFER_ACK(input->nr)); 552 ddbwritel(input->stat, DMA_BUFFER_ACK(input->nr));
538 return 0; 553 return 0;
539 } 554 }
@@ -611,6 +626,7 @@ static int demod_attach_drxk(struct ddb_input *input)
611 struct i2c_adapter *i2c = &input->port->i2c->adap; 626 struct i2c_adapter *i2c = &input->port->i2c->adap;
612 struct dvb_frontend *fe; 627 struct dvb_frontend *fe;
613 struct drxk_config config; 628 struct drxk_config config;
629 struct device *dev = &input->port->dev->pdev->dev;
614 630
615 memset(&config, 0, sizeof(config)); 631 memset(&config, 0, sizeof(config));
616 config.microcode_name = "drxk_a3.mc"; 632 config.microcode_name = "drxk_a3.mc";
@@ -619,7 +635,7 @@ static int demod_attach_drxk(struct ddb_input *input)
619 635
620 fe = input->fe = dvb_attach(drxk_attach, &config, i2c); 636 fe = input->fe = dvb_attach(drxk_attach, &config, i2c);
621 if (!input->fe) { 637 if (!input->fe) {
622 printk(KERN_ERR "No DRXK found!\n"); 638 dev_err(dev, "No DRXK found!\n");
623 return -ENODEV; 639 return -ENODEV;
624 } 640 }
625 fe->sec_priv = input; 641 fe->sec_priv = input;
@@ -632,12 +648,13 @@ static int tuner_attach_tda18271(struct ddb_input *input)
632{ 648{
633 struct i2c_adapter *i2c = &input->port->i2c->adap; 649 struct i2c_adapter *i2c = &input->port->i2c->adap;
634 struct dvb_frontend *fe; 650 struct dvb_frontend *fe;
651 struct device *dev = &input->port->dev->pdev->dev;
635 652
636 if (input->fe->ops.i2c_gate_ctrl) 653 if (input->fe->ops.i2c_gate_ctrl)
637 input->fe->ops.i2c_gate_ctrl(input->fe, 1); 654 input->fe->ops.i2c_gate_ctrl(input->fe, 1);
638 fe = dvb_attach(tda18271c2dd_attach, input->fe, i2c, 0x60); 655 fe = dvb_attach(tda18271c2dd_attach, input->fe, i2c, 0x60);
639 if (!fe) { 656 if (!fe) {
640 printk(KERN_ERR "No TDA18271 found!\n"); 657 dev_err(dev, "No TDA18271 found!\n");
641 return -ENODEV; 658 return -ENODEV;
642 } 659 }
643 if (input->fe->ops.i2c_gate_ctrl) 660 if (input->fe->ops.i2c_gate_ctrl)
@@ -670,13 +687,14 @@ static struct stv0367_config ddb_stv0367_config[] = {
670static int demod_attach_stv0367(struct ddb_input *input) 687static int demod_attach_stv0367(struct ddb_input *input)
671{ 688{
672 struct i2c_adapter *i2c = &input->port->i2c->adap; 689 struct i2c_adapter *i2c = &input->port->i2c->adap;
690 struct device *dev = &input->port->dev->pdev->dev;
673 691
674 /* attach frontend */ 692 /* attach frontend */
675 input->fe = dvb_attach(stv0367ddb_attach, 693 input->fe = dvb_attach(stv0367ddb_attach,
676 &ddb_stv0367_config[(input->nr & 1)], i2c); 694 &ddb_stv0367_config[(input->nr & 1)], i2c);
677 695
678 if (!input->fe) { 696 if (!input->fe) {
679 printk(KERN_ERR "stv0367ddb_attach failed (not found?)\n"); 697 dev_err(dev, "stv0367ddb_attach failed (not found?)\n");
680 return -ENODEV; 698 return -ENODEV;
681 } 699 }
682 700
@@ -690,17 +708,19 @@ static int demod_attach_stv0367(struct ddb_input *input)
690static int tuner_tda18212_ping(struct ddb_input *input, unsigned short adr) 708static int tuner_tda18212_ping(struct ddb_input *input, unsigned short adr)
691{ 709{
692 struct i2c_adapter *adapter = &input->port->i2c->adap; 710 struct i2c_adapter *adapter = &input->port->i2c->adap;
711 struct device *dev = &input->port->dev->pdev->dev;
712
693 u8 tda_id[2]; 713 u8 tda_id[2];
694 u8 subaddr = 0x00; 714 u8 subaddr = 0x00;
695 715
696 printk(KERN_DEBUG "stv0367-tda18212 tuner ping\n"); 716 dev_dbg(dev, "stv0367-tda18212 tuner ping\n");
697 if (input->fe->ops.i2c_gate_ctrl) 717 if (input->fe->ops.i2c_gate_ctrl)
698 input->fe->ops.i2c_gate_ctrl(input->fe, 1); 718 input->fe->ops.i2c_gate_ctrl(input->fe, 1);
699 719
700 if (i2c_read_regs(adapter, adr, subaddr, tda_id, sizeof(tda_id)) < 0) 720 if (i2c_read_regs(adapter, adr, subaddr, tda_id, sizeof(tda_id)) < 0)
701 printk(KERN_DEBUG "tda18212 ping 1 fail\n"); 721 dev_dbg(dev, "tda18212 ping 1 fail\n");
702 if (i2c_read_regs(adapter, adr, subaddr, tda_id, sizeof(tda_id)) < 0) 722 if (i2c_read_regs(adapter, adr, subaddr, tda_id, sizeof(tda_id)) < 0)
703 printk(KERN_DEBUG "tda18212 ping 2 fail\n"); 723 dev_warn(dev, "tda18212 ping failed, expect problems\n");
704 724
705 if (input->fe->ops.i2c_gate_ctrl) 725 if (input->fe->ops.i2c_gate_ctrl)
706 input->fe->ops.i2c_gate_ctrl(input->fe, 0); 726 input->fe->ops.i2c_gate_ctrl(input->fe, 0);
@@ -711,6 +731,7 @@ static int tuner_tda18212_ping(struct ddb_input *input, unsigned short adr)
711static int demod_attach_cxd28xx(struct ddb_input *input, int par, int osc24) 731static int demod_attach_cxd28xx(struct ddb_input *input, int par, int osc24)
712{ 732{
713 struct i2c_adapter *i2c = &input->port->i2c->adap; 733 struct i2c_adapter *i2c = &input->port->i2c->adap;
734 struct device *dev = &input->port->dev->pdev->dev;
714 struct cxd2841er_config cfg; 735 struct cxd2841er_config cfg;
715 736
716 /* the cxd2841er driver expects 8bit/shifted I2C addresses */ 737 /* the cxd2841er driver expects 8bit/shifted I2C addresses */
@@ -728,7 +749,7 @@ static int demod_attach_cxd28xx(struct ddb_input *input, int par, int osc24)
728 input->fe = dvb_attach(cxd2841er_attach_t_c, &cfg, i2c); 749 input->fe = dvb_attach(cxd2841er_attach_t_c, &cfg, i2c);
729 750
730 if (!input->fe) { 751 if (!input->fe) {
731 printk(KERN_ERR "No Sony CXD28xx found!\n"); 752 dev_err(dev, "No Sony CXD28xx found!\n");
732 return -ENODEV; 753 return -ENODEV;
733 } 754 }
734 755
@@ -742,6 +763,7 @@ static int demod_attach_cxd28xx(struct ddb_input *input, int par, int osc24)
742static int tuner_attach_tda18212(struct ddb_input *input, u32 porttype) 763static int tuner_attach_tda18212(struct ddb_input *input, u32 porttype)
743{ 764{
744 struct i2c_adapter *adapter = &input->port->i2c->adap; 765 struct i2c_adapter *adapter = &input->port->i2c->adap;
766 struct device *dev = &input->port->dev->pdev->dev;
745 struct i2c_client *client; 767 struct i2c_client *client;
746 struct tda18212_config config = { 768 struct tda18212_config config = {
747 .fe = input->fe, 769 .fe = input->fe,
@@ -786,7 +808,7 @@ static int tuner_attach_tda18212(struct ddb_input *input, u32 porttype)
786 808
787 return 0; 809 return 0;
788err: 810err:
789 printk(KERN_INFO "TDA18212 tuner not found. Device is not fully operational.\n"); 811 dev_warn(dev, "TDA18212 tuner not found. Device is not fully operational.\n");
790 return -ENODEV; 812 return -ENODEV;
791} 813}
792 814
@@ -847,19 +869,20 @@ static struct stv6110x_config stv6110b = {
847static int demod_attach_stv0900(struct ddb_input *input, int type) 869static int demod_attach_stv0900(struct ddb_input *input, int type)
848{ 870{
849 struct i2c_adapter *i2c = &input->port->i2c->adap; 871 struct i2c_adapter *i2c = &input->port->i2c->adap;
872 struct device *dev = &input->port->dev->pdev->dev;
850 struct stv090x_config *feconf = type ? &stv0900_aa : &stv0900; 873 struct stv090x_config *feconf = type ? &stv0900_aa : &stv0900;
851 874
852 input->fe = dvb_attach(stv090x_attach, feconf, i2c, 875 input->fe = dvb_attach(stv090x_attach, feconf, i2c,
853 (input->nr & 1) ? STV090x_DEMODULATOR_1 876 (input->nr & 1) ? STV090x_DEMODULATOR_1
854 : STV090x_DEMODULATOR_0); 877 : STV090x_DEMODULATOR_0);
855 if (!input->fe) { 878 if (!input->fe) {
856 printk(KERN_ERR "No STV0900 found!\n"); 879 dev_err(dev, "No STV0900 found!\n");
857 return -ENODEV; 880 return -ENODEV;
858 } 881 }
859 if (!dvb_attach(lnbh24_attach, input->fe, i2c, 0, 882 if (!dvb_attach(lnbh24_attach, input->fe, i2c, 0,
860 0, (input->nr & 1) ? 883 0, (input->nr & 1) ?
861 (0x09 - type) : (0x0b - type))) { 884 (0x09 - type) : (0x0b - type))) {
862 printk(KERN_ERR "No LNBH24 found!\n"); 885 dev_err(dev, "No LNBH24 found!\n");
863 return -ENODEV; 886 return -ENODEV;
864 } 887 }
865 return 0; 888 return 0;
@@ -868,6 +891,7 @@ static int demod_attach_stv0900(struct ddb_input *input, int type)
868static int tuner_attach_stv6110(struct ddb_input *input, int type) 891static int tuner_attach_stv6110(struct ddb_input *input, int type)
869{ 892{
870 struct i2c_adapter *i2c = &input->port->i2c->adap; 893 struct i2c_adapter *i2c = &input->port->i2c->adap;
894 struct device *dev = &input->port->dev->pdev->dev;
871 struct stv090x_config *feconf = type ? &stv0900_aa : &stv0900; 895 struct stv090x_config *feconf = type ? &stv0900_aa : &stv0900;
872 struct stv6110x_config *tunerconf = (input->nr & 1) ? 896 struct stv6110x_config *tunerconf = (input->nr & 1) ?
873 &stv6110b : &stv6110a; 897 &stv6110b : &stv6110a;
@@ -875,10 +899,10 @@ static int tuner_attach_stv6110(struct ddb_input *input, int type)
875 899
876 ctl = dvb_attach(stv6110x_attach, input->fe, tunerconf, i2c); 900 ctl = dvb_attach(stv6110x_attach, input->fe, tunerconf, i2c);
877 if (!ctl) { 901 if (!ctl) {
878 printk(KERN_ERR "No STV6110X found!\n"); 902 dev_err(dev, "No STV6110X found!\n");
879 return -ENODEV; 903 return -ENODEV;
880 } 904 }
881 printk(KERN_INFO "attach tuner input %d adr %02x\n", 905 dev_info(dev, "attach tuner input %d adr %02x\n",
882 input->nr, tunerconf->addr); 906 input->nr, tunerconf->addr);
883 907
884 feconf->tuner_init = ctl->tuner_init; 908 feconf->tuner_init = ctl->tuner_init;
@@ -1009,13 +1033,14 @@ static int dvb_input_attach(struct ddb_input *input)
1009 struct ddb_port *port = input->port; 1033 struct ddb_port *port = input->port;
1010 struct dvb_adapter *adap = &input->adap; 1034 struct dvb_adapter *adap = &input->adap;
1011 struct dvb_demux *dvbdemux = &input->demux; 1035 struct dvb_demux *dvbdemux = &input->demux;
1036 struct device *dev = &input->port->dev->pdev->dev;
1012 int sony_osc24 = 0, sony_tspar = 0; 1037 int sony_osc24 = 0, sony_tspar = 0;
1013 1038
1014 ret = dvb_register_adapter(adap, "DDBridge", THIS_MODULE, 1039 ret = dvb_register_adapter(adap, "DDBridge", THIS_MODULE,
1015 &input->port->dev->pdev->dev, 1040 &input->port->dev->pdev->dev,
1016 adapter_nr); 1041 adapter_nr);
1017 if (ret < 0) { 1042 if (ret < 0) {
1018 printk(KERN_ERR "ddbridge: Could not register adapter.Check if you enabled enough adapters in dvb-core!\n"); 1043 dev_err(dev, "Could not register adapter. Check if you enabled enough adapters in dvb-core!\n");
1019 return ret; 1044 return ret;
1020 } 1045 }
1021 input->attached = 1; 1046 input->attached = 1;
@@ -1241,9 +1266,9 @@ static void input_tasklet(unsigned long data)
1241 1266
1242 if (input->port->class == DDB_PORT_TUNER) { 1267 if (input->port->class == DDB_PORT_TUNER) {
1243 if (4&ddbreadl(DMA_BUFFER_CONTROL(input->nr))) 1268 if (4&ddbreadl(DMA_BUFFER_CONTROL(input->nr)))
1244 printk(KERN_ERR "Overflow input %d\n", input->nr); 1269 dev_err(&dev->pdev->dev, "Overflow input %d\n", input->nr);
1245 while (input->cbuf != ((input->stat >> 11) & 0x1f) 1270 while (input->cbuf != ((input->stat >> 11) & 0x1f)
1246 || (4&ddbreadl(DMA_BUFFER_CONTROL(input->nr)))) { 1271 || (4 & safe_ddbreadl(dev, DMA_BUFFER_CONTROL(input->nr)))) {
1247 dvb_dmx_swfilter_packets(&input->demux, 1272 dvb_dmx_swfilter_packets(&input->demux,
1248 input->vbuf[input->cbuf], 1273 input->vbuf[input->cbuf],
1249 input->dma_buf_size / 188); 1274 input->dma_buf_size / 188);
@@ -1280,6 +1305,7 @@ static struct cxd2099_cfg cxd_cfg = {
1280 .adr = 0x40, 1305 .adr = 0x40,
1281 .polarity = 1, 1306 .polarity = 1,
1282 .clock_mode = 1, 1307 .clock_mode = 1,
1308 .max_i2c = 512,
1283}; 1309};
1284 1310
1285static int ddb_ci_attach(struct ddb_port *port) 1311static int ddb_ci_attach(struct ddb_port *port)
@@ -1310,6 +1336,7 @@ static int ddb_ci_attach(struct ddb_port *port)
1310 1336
1311static int ddb_port_attach(struct ddb_port *port) 1337static int ddb_port_attach(struct ddb_port *port)
1312{ 1338{
1339 struct device *dev = &port->dev->pdev->dev;
1313 int ret = 0; 1340 int ret = 0;
1314 1341
1315 switch (port->class) { 1342 switch (port->class) {
@@ -1326,7 +1353,7 @@ static int ddb_port_attach(struct ddb_port *port)
1326 break; 1353 break;
1327 } 1354 }
1328 if (ret < 0) 1355 if (ret < 0)
1329 printk(KERN_ERR "port_attach on port %d failed\n", port->nr); 1356 dev_err(dev, "port_attach on port %d failed\n", port->nr);
1330 return ret; 1357 return ret;
1331} 1358}
1332 1359
@@ -1377,6 +1404,7 @@ static void ddb_ports_detach(struct ddb *dev)
1377static int init_xo2(struct ddb_port *port) 1404static int init_xo2(struct ddb_port *port)
1378{ 1405{
1379 struct i2c_adapter *i2c = &port->i2c->adap; 1406 struct i2c_adapter *i2c = &port->i2c->adap;
1407 struct device *dev = &port->dev->pdev->dev;
1380 u8 val, data[2]; 1408 u8 val, data[2];
1381 int res; 1409 int res;
1382 1410
@@ -1385,7 +1413,7 @@ static int init_xo2(struct ddb_port *port)
1385 return res; 1413 return res;
1386 1414
1387 if (data[0] != 0x01) { 1415 if (data[0] != 0x01) {
1388 pr_info("Port %d: invalid XO2\n", port->nr); 1416 dev_info(dev, "Port %d: invalid XO2\n", port->nr);
1389 return -1; 1417 return -1;
1390 } 1418 }
1391 1419
@@ -1511,7 +1539,7 @@ static void ddb_port_probe(struct ddb_port *port)
1511 port->class = DDB_PORT_CI; 1539 port->class = DDB_PORT_CI;
1512 ddbwritel(I2C_SPEED_400, port->i2c->regs + I2C_TIMING); 1540 ddbwritel(I2C_SPEED_400, port->i2c->regs + I2C_TIMING);
1513 } else if (port_has_xo2(port, &xo2_type, &xo2_id)) { 1541 } else if (port_has_xo2(port, &xo2_type, &xo2_id)) {
1514 printk(KERN_INFO "Port %d (TAB %d): XO2 type: %d, id: %d\n", 1542 dev_dbg(&dev->pdev->dev, "Port %d (TAB %d): XO2 type: %d, id: %d\n",
1515 port->nr, port->nr+1, xo2_type, xo2_id); 1543 port->nr, port->nr+1, xo2_type, xo2_id);
1516 1544
1517 ddbwritel(I2C_SPEED_400, port->i2c->regs + I2C_TIMING); 1545 ddbwritel(I2C_SPEED_400, port->i2c->regs + I2C_TIMING);
@@ -1556,10 +1584,10 @@ static void ddb_port_probe(struct ddb_port *port)
1556 } 1584 }
1557 break; 1585 break;
1558 case DDB_XO2_TYPE_CI: 1586 case DDB_XO2_TYPE_CI:
1559 printk(KERN_INFO "DuoFlex CI modules not supported\n"); 1587 dev_info(&dev->pdev->dev, "DuoFlex CI modules not supported\n");
1560 break; 1588 break;
1561 default: 1589 default:
1562 printk(KERN_INFO "Unknown XO2 DuoFlex module\n"); 1590 dev_info(&dev->pdev->dev, "Unknown XO2 DuoFlex module\n");
1563 break; 1591 break;
1564 } 1592 }
1565 } else if (port_has_cxd28xx(port, &cxd_id)) { 1593 } else if (port_has_cxd28xx(port, &cxd_id)) {
@@ -1611,7 +1639,7 @@ static void ddb_port_probe(struct ddb_port *port)
1611 ddbwritel(I2C_SPEED_100, port->i2c->regs + I2C_TIMING); 1639 ddbwritel(I2C_SPEED_100, port->i2c->regs + I2C_TIMING);
1612 } 1640 }
1613 1641
1614 printk(KERN_INFO "Port %d (TAB %d): %s\n", 1642 dev_info(&dev->pdev->dev, "Port %d (TAB %d): %s\n",
1615 port->nr, port->nr+1, modname); 1643 port->nr, port->nr+1, modname);
1616} 1644}
1617 1645
@@ -1765,7 +1793,7 @@ static int flashio(struct ddb *dev, u8 *wbuf, u32 wlen, u8 *rbuf, u32 rlen)
1765 wbuf += 4; 1793 wbuf += 4;
1766 wlen -= 4; 1794 wlen -= 4;
1767 ddbwritel(data, SPI_DATA); 1795 ddbwritel(data, SPI_DATA);
1768 while (ddbreadl(SPI_CONTROL) & 0x0004) 1796 while (safe_ddbreadl(dev, SPI_CONTROL) & 0x0004)
1769 ; 1797 ;
1770 } 1798 }
1771 1799
@@ -1785,7 +1813,7 @@ static int flashio(struct ddb *dev, u8 *wbuf, u32 wlen, u8 *rbuf, u32 rlen)
1785 if (shift) 1813 if (shift)
1786 data <<= shift; 1814 data <<= shift;
1787 ddbwritel(data, SPI_DATA); 1815 ddbwritel(data, SPI_DATA);
1788 while (ddbreadl(SPI_CONTROL) & 0x0004) 1816 while (safe_ddbreadl(dev, SPI_CONTROL) & 0x0004)
1789 ; 1817 ;
1790 1818
1791 if (!rlen) { 1819 if (!rlen) {
@@ -1797,7 +1825,7 @@ static int flashio(struct ddb *dev, u8 *wbuf, u32 wlen, u8 *rbuf, u32 rlen)
1797 1825
1798 while (rlen > 4) { 1826 while (rlen > 4) {
1799 ddbwritel(0xffffffff, SPI_DATA); 1827 ddbwritel(0xffffffff, SPI_DATA);
1800 while (ddbreadl(SPI_CONTROL) & 0x0004) 1828 while (safe_ddbreadl(dev, SPI_CONTROL) & 0x0004)
1801 ; 1829 ;
1802 data = ddbreadl(SPI_DATA); 1830 data = ddbreadl(SPI_DATA);
1803 *(u32 *) rbuf = swab32(data); 1831 *(u32 *) rbuf = swab32(data);
@@ -1806,7 +1834,7 @@ static int flashio(struct ddb *dev, u8 *wbuf, u32 wlen, u8 *rbuf, u32 rlen)
1806 } 1834 }
1807 ddbwritel(0x0003 | ((rlen << (8 + 3)) & 0x1F00), SPI_CONTROL); 1835 ddbwritel(0x0003 | ((rlen << (8 + 3)) & 0x1F00), SPI_CONTROL);
1808 ddbwritel(0xffffffff, SPI_DATA); 1836 ddbwritel(0xffffffff, SPI_DATA);
1809 while (ddbreadl(SPI_CONTROL) & 0x0004) 1837 while (safe_ddbreadl(dev, SPI_CONTROL) & 0x0004)
1810 ; 1838 ;
1811 1839
1812 data = ddbreadl(SPI_DATA); 1840 data = ddbreadl(SPI_DATA);
@@ -1993,7 +2021,7 @@ static int ddb_probe(struct pci_dev *pdev, const struct pci_device_id *id)
1993 dev->pdev = pdev; 2021 dev->pdev = pdev;
1994 pci_set_drvdata(pdev, dev); 2022 pci_set_drvdata(pdev, dev);
1995 dev->info = (struct ddb_info *) id->driver_data; 2023 dev->info = (struct ddb_info *) id->driver_data;
1996 printk(KERN_INFO "DDBridge driver detected: %s\n", dev->info->name); 2024 dev_info(&pdev->dev, "Detected %s\n", dev->info->name);
1997 2025
1998 dev->regs = ioremap(pci_resource_start(dev->pdev, 0), 2026 dev->regs = ioremap(pci_resource_start(dev->pdev, 0),
1999 pci_resource_len(dev->pdev, 0)); 2027 pci_resource_len(dev->pdev, 0));
@@ -2001,13 +2029,13 @@ static int ddb_probe(struct pci_dev *pdev, const struct pci_device_id *id)
2001 stat = -ENOMEM; 2029 stat = -ENOMEM;
2002 goto fail; 2030 goto fail;
2003 } 2031 }
2004 printk(KERN_INFO "HW %08x FW %08x\n", ddbreadl(0), ddbreadl(4)); 2032 dev_info(&pdev->dev, "HW %08x FW %08x\n", ddbreadl(0), ddbreadl(4));
2005 2033
2006#ifdef CONFIG_PCI_MSI 2034#ifdef CONFIG_PCI_MSI
2007 if (pci_msi_enabled()) 2035 if (pci_msi_enabled())
2008 stat = pci_enable_msi(dev->pdev); 2036 stat = pci_enable_msi(dev->pdev);
2009 if (stat) { 2037 if (stat) {
2010 printk(KERN_INFO ": MSI not available.\n"); 2038 dev_info(&pdev->dev, "MSI not available.\n");
2011 } else { 2039 } else {
2012 irq_flag = 0; 2040 irq_flag = 0;
2013 dev->msi = 1; 2041 dev->msi = 1;
@@ -2040,7 +2068,7 @@ static int ddb_probe(struct pci_dev *pdev, const struct pci_device_id *id)
2040 goto fail1; 2068 goto fail1;
2041 ddb_ports_init(dev); 2069 ddb_ports_init(dev);
2042 if (ddb_buffers_alloc(dev) < 0) { 2070 if (ddb_buffers_alloc(dev) < 0) {
2043 printk(KERN_INFO ": Could not allocate buffer memory\n"); 2071 dev_err(&pdev->dev, "Could not allocate buffer memory\n");
2044 goto fail2; 2072 goto fail2;
2045 } 2073 }
2046 if (ddb_ports_attach(dev) < 0) 2074 if (ddb_ports_attach(dev) < 0)
@@ -2050,19 +2078,19 @@ static int ddb_probe(struct pci_dev *pdev, const struct pci_device_id *id)
2050 2078
2051fail3: 2079fail3:
2052 ddb_ports_detach(dev); 2080 ddb_ports_detach(dev);
2053 printk(KERN_ERR "fail3\n"); 2081 dev_err(&pdev->dev, "fail3\n");
2054 ddb_ports_release(dev); 2082 ddb_ports_release(dev);
2055fail2: 2083fail2:
2056 printk(KERN_ERR "fail2\n"); 2084 dev_err(&pdev->dev, "fail2\n");
2057 ddb_buffers_free(dev); 2085 ddb_buffers_free(dev);
2058fail1: 2086fail1:
2059 printk(KERN_ERR "fail1\n"); 2087 dev_err(&pdev->dev, "fail1\n");
2060 if (dev->msi) 2088 if (dev->msi)
2061 pci_disable_msi(dev->pdev); 2089 pci_disable_msi(dev->pdev);
2062 if (stat == 0) 2090 if (stat == 0)
2063 free_irq(dev->pdev->irq, dev); 2091 free_irq(dev->pdev->irq, dev);
2064fail: 2092fail:
2065 printk(KERN_ERR "fail\n"); 2093 dev_err(&pdev->dev, "fail\n");
2066 ddb_unmap(dev); 2094 ddb_unmap(dev);
2067 pci_set_drvdata(pdev, NULL); 2095 pci_set_drvdata(pdev, NULL);
2068 pci_disable_device(pdev); 2096 pci_disable_device(pdev);
@@ -2242,7 +2270,7 @@ static __init int module_init_ddbridge(void)
2242{ 2270{
2243 int ret; 2271 int ret;
2244 2272
2245 printk(KERN_INFO "Digital Devices PCIE bridge driver, Copyright (C) 2010-11 Digital Devices GmbH\n"); 2273 pr_info("Digital Devices PCIE bridge driver, Copyright (C) 2010-11 Digital Devices GmbH\n");
2246 2274
2247 ret = ddb_class_create(); 2275 ret = ddb_class_create();
2248 if (ret < 0) 2276 if (ret < 0)
diff --git a/drivers/media/pci/ngene/ngene-core.c b/drivers/media/pci/ngene/ngene-core.c
index ce69e648b663..8c92cb7f7e72 100644
--- a/drivers/media/pci/ngene/ngene-core.c
+++ b/drivers/media/pci/ngene/ngene-core.c
@@ -336,9 +336,9 @@ int ngene_command(struct ngene *dev, struct ngene_command *com)
336{ 336{
337 int result; 337 int result;
338 338
339 down(&dev->cmd_mutex); 339 mutex_lock(&dev->cmd_mutex);
340 result = ngene_command_mutex(dev, com); 340 result = ngene_command_mutex(dev, com);
341 up(&dev->cmd_mutex); 341 mutex_unlock(&dev->cmd_mutex);
342 return result; 342 return result;
343} 343}
344 344
@@ -560,7 +560,6 @@ static int ngene_command_stream_control(struct ngene *dev, u8 stream,
560 u16 BsSPI = ((stream & 1) ? 0x9800 : 0x9700); 560 u16 BsSPI = ((stream & 1) ? 0x9800 : 0x9700);
561 u16 BsSDO = 0x9B00; 561 u16 BsSDO = 0x9B00;
562 562
563 down(&dev->stream_mutex);
564 memset(&com, 0, sizeof(com)); 563 memset(&com, 0, sizeof(com));
565 com.cmd.hdr.Opcode = CMD_CONTROL; 564 com.cmd.hdr.Opcode = CMD_CONTROL;
566 com.cmd.hdr.Length = sizeof(struct FW_STREAM_CONTROL) - 2; 565 com.cmd.hdr.Length = sizeof(struct FW_STREAM_CONTROL) - 2;
@@ -586,17 +585,13 @@ static int ngene_command_stream_control(struct ngene *dev, u8 stream,
586 chan->State = KSSTATE_ACQUIRE; 585 chan->State = KSSTATE_ACQUIRE;
587 chan->HWState = HWSTATE_STOP; 586 chan->HWState = HWSTATE_STOP;
588 spin_unlock_irq(&chan->state_lock); 587 spin_unlock_irq(&chan->state_lock);
589 if (ngene_command(dev, &com) < 0) { 588 if (ngene_command(dev, &com) < 0)
590 up(&dev->stream_mutex);
591 return -1; 589 return -1;
592 }
593 /* clear_buffers(chan); */ 590 /* clear_buffers(chan); */
594 flush_buffers(chan); 591 flush_buffers(chan);
595 up(&dev->stream_mutex);
596 return 0; 592 return 0;
597 } 593 }
598 spin_unlock_irq(&chan->state_lock); 594 spin_unlock_irq(&chan->state_lock);
599 up(&dev->stream_mutex);
600 return 0; 595 return 0;
601 } 596 }
602 597
@@ -692,11 +687,9 @@ static int ngene_command_stream_control(struct ngene *dev, u8 stream,
692 chan->HWState = HWSTATE_STARTUP; 687 chan->HWState = HWSTATE_STARTUP;
693 spin_unlock_irq(&chan->state_lock); 688 spin_unlock_irq(&chan->state_lock);
694 689
695 if (ngene_command(dev, &com) < 0) { 690 if (ngene_command(dev, &com) < 0)
696 up(&dev->stream_mutex);
697 return -1; 691 return -1;
698 } 692
699 up(&dev->stream_mutex);
700 return 0; 693 return 0;
701} 694}
702 695
@@ -750,8 +743,11 @@ void set_transfer(struct ngene_channel *chan, int state)
750 /* else printk(KERN_INFO DEVICE_NAME ": lock=%08x\n", 743 /* else printk(KERN_INFO DEVICE_NAME ": lock=%08x\n",
751 ngreadl(0x9310)); */ 744 ngreadl(0x9310)); */
752 745
746 mutex_lock(&dev->stream_mutex);
753 ret = ngene_command_stream_control(dev, chan->number, 747 ret = ngene_command_stream_control(dev, chan->number,
754 control, mode, flags); 748 control, mode, flags);
749 mutex_unlock(&dev->stream_mutex);
750
755 if (!ret) 751 if (!ret)
756 chan->running = state; 752 chan->running = state;
757 else 753 else
@@ -1283,7 +1279,7 @@ static int ngene_load_firm(struct ngene *dev)
1283 1279
1284static void ngene_stop(struct ngene *dev) 1280static void ngene_stop(struct ngene *dev)
1285{ 1281{
1286 down(&dev->cmd_mutex); 1282 mutex_destroy(&dev->cmd_mutex);
1287 i2c_del_adapter(&(dev->channel[0].i2c_adapter)); 1283 i2c_del_adapter(&(dev->channel[0].i2c_adapter));
1288 i2c_del_adapter(&(dev->channel[1].i2c_adapter)); 1284 i2c_del_adapter(&(dev->channel[1].i2c_adapter));
1289 ngwritel(0, NGENE_INT_ENABLE); 1285 ngwritel(0, NGENE_INT_ENABLE);
@@ -1346,10 +1342,10 @@ static int ngene_start(struct ngene *dev)
1346 init_waitqueue_head(&dev->cmd_wq); 1342 init_waitqueue_head(&dev->cmd_wq);
1347 init_waitqueue_head(&dev->tx_wq); 1343 init_waitqueue_head(&dev->tx_wq);
1348 init_waitqueue_head(&dev->rx_wq); 1344 init_waitqueue_head(&dev->rx_wq);
1349 sema_init(&dev->cmd_mutex, 1); 1345 mutex_init(&dev->cmd_mutex);
1350 sema_init(&dev->stream_mutex, 1); 1346 mutex_init(&dev->stream_mutex);
1351 sema_init(&dev->pll_mutex, 1); 1347 sema_init(&dev->pll_mutex, 1);
1352 sema_init(&dev->i2c_switch_mutex, 1); 1348 mutex_init(&dev->i2c_switch_mutex);
1353 spin_lock_init(&dev->cmd_lock); 1349 spin_lock_init(&dev->cmd_lock);
1354 for (i = 0; i < MAX_STREAM; i++) 1350 for (i = 0; i < MAX_STREAM; i++)
1355 spin_lock_init(&dev->channel[i].state_lock); 1351 spin_lock_init(&dev->channel[i].state_lock);
@@ -1606,10 +1602,10 @@ static void ngene_unlink(struct ngene *dev)
1606 com.in_len = 3; 1602 com.in_len = 3;
1607 com.out_len = 1; 1603 com.out_len = 1;
1608 1604
1609 down(&dev->cmd_mutex); 1605 mutex_lock(&dev->cmd_mutex);
1610 ngwritel(0, NGENE_INT_ENABLE); 1606 ngwritel(0, NGENE_INT_ENABLE);
1611 ngene_command_mutex(dev, &com); 1607 ngene_command_mutex(dev, &com);
1612 up(&dev->cmd_mutex); 1608 mutex_unlock(&dev->cmd_mutex);
1613} 1609}
1614 1610
1615void ngene_shutdown(struct pci_dev *pdev) 1611void ngene_shutdown(struct pci_dev *pdev)
diff --git a/drivers/media/pci/ngene/ngene-i2c.c b/drivers/media/pci/ngene/ngene-i2c.c
index cf39fcf54adf..fbf36353c701 100644
--- a/drivers/media/pci/ngene/ngene-i2c.c
+++ b/drivers/media/pci/ngene/ngene-i2c.c
@@ -118,7 +118,7 @@ static int ngene_i2c_master_xfer(struct i2c_adapter *adapter,
118 (struct ngene_channel *)i2c_get_adapdata(adapter); 118 (struct ngene_channel *)i2c_get_adapdata(adapter);
119 struct ngene *dev = chan->dev; 119 struct ngene *dev = chan->dev;
120 120
121 down(&dev->i2c_switch_mutex); 121 mutex_lock(&dev->i2c_switch_mutex);
122 ngene_i2c_set_bus(dev, chan->number); 122 ngene_i2c_set_bus(dev, chan->number);
123 123
124 if (num == 2 && msg[1].flags & I2C_M_RD && !(msg[0].flags & I2C_M_RD)) 124 if (num == 2 && msg[1].flags & I2C_M_RD && !(msg[0].flags & I2C_M_RD))
@@ -136,11 +136,11 @@ static int ngene_i2c_master_xfer(struct i2c_adapter *adapter,
136 msg[0].buf, msg[0].len, 0)) 136 msg[0].buf, msg[0].len, 0))
137 goto done; 137 goto done;
138 138
139 up(&dev->i2c_switch_mutex); 139 mutex_unlock(&dev->i2c_switch_mutex);
140 return -EIO; 140 return -EIO;
141 141
142done: 142done:
143 up(&dev->i2c_switch_mutex); 143 mutex_unlock(&dev->i2c_switch_mutex);
144 return num; 144 return num;
145} 145}
146 146
diff --git a/drivers/media/pci/ngene/ngene.h b/drivers/media/pci/ngene/ngene.h
index 10d8f74c4f0a..7c7cd217333d 100644
--- a/drivers/media/pci/ngene/ngene.h
+++ b/drivers/media/pci/ngene/ngene.h
@@ -762,10 +762,10 @@ struct ngene {
762 762
763 wait_queue_head_t cmd_wq; 763 wait_queue_head_t cmd_wq;
764 int cmd_done; 764 int cmd_done;
765 struct semaphore cmd_mutex; 765 struct mutex cmd_mutex;
766 struct semaphore stream_mutex; 766 struct mutex stream_mutex;
767 struct semaphore pll_mutex; 767 struct semaphore pll_mutex;
768 struct semaphore i2c_switch_mutex; 768 struct mutex i2c_switch_mutex;
769 int i2c_current_channel; 769 int i2c_current_channel;
770 int i2c_current_bus; 770 int i2c_current_bus;
771 spinlock_t cmd_lock; 771 spinlock_t cmd_lock;
diff --git a/drivers/media/pci/tw5864/tw5864-video.c b/drivers/media/pci/tw5864/tw5864-video.c
index 2a044be729da..e7bd2b8484e3 100644
--- a/drivers/media/pci/tw5864/tw5864-video.c
+++ b/drivers/media/pci/tw5864/tw5864-video.c
@@ -545,6 +545,7 @@ static int tw5864_fmt_vid_cap(struct file *file, void *priv,
545 switch (input->std) { 545 switch (input->std) {
546 default: 546 default:
547 WARN_ON_ONCE(1); 547 WARN_ON_ONCE(1);
548 return -EINVAL;
548 case STD_NTSC: 549 case STD_NTSC:
549 f->fmt.pix.height = 480; 550 f->fmt.pix.height = 480;
550 break; 551 break;
diff --git a/drivers/media/platform/Kconfig b/drivers/media/platform/Kconfig
index 1313cd533436..fb1fa0b82077 100644
--- a/drivers/media/platform/Kconfig
+++ b/drivers/media/platform/Kconfig
@@ -475,8 +475,8 @@ config VIDEO_QCOM_VENUS
475 tristate "Qualcomm Venus V4L2 encoder/decoder driver" 475 tristate "Qualcomm Venus V4L2 encoder/decoder driver"
476 depends on VIDEO_DEV && VIDEO_V4L2 && HAS_DMA 476 depends on VIDEO_DEV && VIDEO_V4L2 && HAS_DMA
477 depends on (ARCH_QCOM && IOMMU_DMA) || COMPILE_TEST 477 depends on (ARCH_QCOM && IOMMU_DMA) || COMPILE_TEST
478 select QCOM_MDT_LOADER if (ARM || ARM64) 478 select QCOM_MDT_LOADER if ARCH_QCOM
479 select QCOM_SCM if (ARM || ARM64) 479 select QCOM_SCM if ARCH_QCOM
480 select VIDEOBUF2_DMA_SG 480 select VIDEOBUF2_DMA_SG
481 select V4L2_MEM2MEM_DEV 481 select V4L2_MEM2MEM_DEV
482 ---help--- 482 ---help---
diff --git a/drivers/media/platform/coda/coda-bit.c b/drivers/media/platform/coda/coda-bit.c
index 25cbf9e5ac5a..bba1eb43b5d8 100644
--- a/drivers/media/platform/coda/coda-bit.c
+++ b/drivers/media/platform/coda/coda-bit.c
@@ -393,8 +393,8 @@ static int coda_alloc_framebuffers(struct coda_ctx *ctx,
393 int ret; 393 int ret;
394 int i; 394 int i;
395 395
396 if (ctx->codec && (ctx->codec->src_fourcc == V4L2_PIX_FMT_H264 || 396 if (ctx->codec->src_fourcc == V4L2_PIX_FMT_H264 ||
397 ctx->codec->dst_fourcc == V4L2_PIX_FMT_H264)) { 397 ctx->codec->dst_fourcc == V4L2_PIX_FMT_H264) {
398 width = round_up(q_data->width, 16); 398 width = round_up(q_data->width, 16);
399 height = round_up(q_data->height, 16); 399 height = round_up(q_data->height, 16);
400 } else { 400 } else {
@@ -2198,7 +2198,7 @@ static void coda_finish_decode(struct coda_ctx *ctx)
2198 ctx->display_idx = display_idx; 2198 ctx->display_idx = display_idx;
2199} 2199}
2200 2200
2201static void coda_error_decode(struct coda_ctx *ctx) 2201static void coda_decode_timeout(struct coda_ctx *ctx)
2202{ 2202{
2203 struct vb2_v4l2_buffer *dst_buf; 2203 struct vb2_v4l2_buffer *dst_buf;
2204 2204
@@ -2223,7 +2223,7 @@ const struct coda_context_ops coda_bit_decode_ops = {
2223 .start_streaming = coda_start_decoding, 2223 .start_streaming = coda_start_decoding,
2224 .prepare_run = coda_prepare_decode, 2224 .prepare_run = coda_prepare_decode,
2225 .finish_run = coda_finish_decode, 2225 .finish_run = coda_finish_decode,
2226 .error_run = coda_error_decode, 2226 .run_timeout = coda_decode_timeout,
2227 .seq_end_work = coda_seq_end_work, 2227 .seq_end_work = coda_seq_end_work,
2228 .release = coda_bit_release, 2228 .release = coda_bit_release,
2229}; 2229};
diff --git a/drivers/media/platform/coda/coda-common.c b/drivers/media/platform/coda/coda-common.c
index f92cc7df58fb..829c7895a98a 100644
--- a/drivers/media/platform/coda/coda-common.c
+++ b/drivers/media/platform/coda/coda-common.c
@@ -1164,8 +1164,8 @@ static void coda_pic_run_work(struct work_struct *work)
1164 1164
1165 coda_hw_reset(ctx); 1165 coda_hw_reset(ctx);
1166 1166
1167 if (ctx->ops->error_run) 1167 if (ctx->ops->run_timeout)
1168 ctx->ops->error_run(ctx); 1168 ctx->ops->run_timeout(ctx);
1169 } else if (!ctx->aborting) { 1169 } else if (!ctx->aborting) {
1170 ctx->ops->finish_run(ctx); 1170 ctx->ops->finish_run(ctx);
1171 } 1171 }
diff --git a/drivers/media/platform/coda/coda.h b/drivers/media/platform/coda/coda.h
index 40fe22f0d757..c5f504d8cf67 100644
--- a/drivers/media/platform/coda/coda.h
+++ b/drivers/media/platform/coda/coda.h
@@ -183,7 +183,7 @@ struct coda_context_ops {
183 int (*start_streaming)(struct coda_ctx *ctx); 183 int (*start_streaming)(struct coda_ctx *ctx);
184 int (*prepare_run)(struct coda_ctx *ctx); 184 int (*prepare_run)(struct coda_ctx *ctx);
185 void (*finish_run)(struct coda_ctx *ctx); 185 void (*finish_run)(struct coda_ctx *ctx);
186 void (*error_run)(struct coda_ctx *ctx); 186 void (*run_timeout)(struct coda_ctx *ctx);
187 void (*seq_end_work)(struct work_struct *work); 187 void (*seq_end_work)(struct work_struct *work);
188 void (*release)(struct coda_ctx *ctx); 188 void (*release)(struct coda_ctx *ctx);
189}; 189};
diff --git a/drivers/media/platform/davinci/ccdc_hw_device.h b/drivers/media/platform/davinci/ccdc_hw_device.h
index 8f6688a7a111..f1b521045d64 100644
--- a/drivers/media/platform/davinci/ccdc_hw_device.h
+++ b/drivers/media/platform/davinci/ccdc_hw_device.h
@@ -42,16 +42,6 @@ struct ccdc_hw_ops {
42 int (*set_hw_if_params) (struct vpfe_hw_if_param *param); 42 int (*set_hw_if_params) (struct vpfe_hw_if_param *param);
43 /* get interface parameters */ 43 /* get interface parameters */
44 int (*get_hw_if_params) (struct vpfe_hw_if_param *param); 44 int (*get_hw_if_params) (struct vpfe_hw_if_param *param);
45 /*
46 * Pointer to function to set parameters. Used
47 * for implementing VPFE_S_CCDC_PARAMS
48 */
49 int (*set_params) (void *params);
50 /*
51 * Pointer to function to get parameter. Used
52 * for implementing VPFE_G_CCDC_PARAMS
53 */
54 int (*get_params) (void *params);
55 /* Pointer to function to configure ccdc */ 45 /* Pointer to function to configure ccdc */
56 int (*configure) (void); 46 int (*configure) (void);
57 47
diff --git a/drivers/media/platform/davinci/dm355_ccdc.c b/drivers/media/platform/davinci/dm355_ccdc.c
index 73db166dc338..6d492dc4c3a9 100644
--- a/drivers/media/platform/davinci/dm355_ccdc.c
+++ b/drivers/media/platform/davinci/dm355_ccdc.c
@@ -17,12 +17,7 @@
17 * This module is for configuring DM355 CCD controller of VPFE to capture 17 * This module is for configuring DM355 CCD controller of VPFE to capture
18 * Raw yuv or Bayer RGB data from a decoder. CCDC has several modules 18 * Raw yuv or Bayer RGB data from a decoder. CCDC has several modules
19 * such as Defect Pixel Correction, Color Space Conversion etc to 19 * such as Defect Pixel Correction, Color Space Conversion etc to
20 * pre-process the Bayer RGB data, before writing it to SDRAM. This 20 * pre-process the Bayer RGB data, before writing it to SDRAM.
21 * module also allows application to configure individual
22 * module parameters through VPFE_CMD_S_CCDC_RAW_PARAMS IOCTL.
23 * To do so, application include dm355_ccdc.h and vpfe_capture.h header
24 * files. The setparams() API is called by vpfe_capture driver
25 * to configure module parameters
26 * 21 *
27 * TODO: 1) Raw bayer parameter settings and bayer capture 22 * TODO: 1) Raw bayer parameter settings and bayer capture
28 * 2) Split module parameter structure to module specific ioctl structs 23 * 2) Split module parameter structure to module specific ioctl structs
@@ -260,90 +255,6 @@ static void ccdc_setwin(struct v4l2_rect *image_win,
260 dev_dbg(ccdc_cfg.dev, "\nEnd of ccdc_setwin..."); 255 dev_dbg(ccdc_cfg.dev, "\nEnd of ccdc_setwin...");
261} 256}
262 257
263static int validate_ccdc_param(struct ccdc_config_params_raw *ccdcparam)
264{
265 if (ccdcparam->datasft < CCDC_DATA_NO_SHIFT ||
266 ccdcparam->datasft > CCDC_DATA_SHIFT_6BIT) {
267 dev_dbg(ccdc_cfg.dev, "Invalid value of data shift\n");
268 return -EINVAL;
269 }
270
271 if (ccdcparam->mfilt1 < CCDC_NO_MEDIAN_FILTER1 ||
272 ccdcparam->mfilt1 > CCDC_MEDIAN_FILTER1) {
273 dev_dbg(ccdc_cfg.dev, "Invalid value of median filter1\n");
274 return -EINVAL;
275 }
276
277 if (ccdcparam->mfilt2 < CCDC_NO_MEDIAN_FILTER2 ||
278 ccdcparam->mfilt2 > CCDC_MEDIAN_FILTER2) {
279 dev_dbg(ccdc_cfg.dev, "Invalid value of median filter2\n");
280 return -EINVAL;
281 }
282
283 if ((ccdcparam->med_filt_thres < 0) ||
284 (ccdcparam->med_filt_thres > CCDC_MED_FILT_THRESH)) {
285 dev_dbg(ccdc_cfg.dev,
286 "Invalid value of median filter threshold\n");
287 return -EINVAL;
288 }
289
290 if (ccdcparam->data_sz < CCDC_DATA_16BITS ||
291 ccdcparam->data_sz > CCDC_DATA_8BITS) {
292 dev_dbg(ccdc_cfg.dev, "Invalid value of data size\n");
293 return -EINVAL;
294 }
295
296 if (ccdcparam->alaw.enable) {
297 if (ccdcparam->alaw.gamma_wd < CCDC_GAMMA_BITS_13_4 ||
298 ccdcparam->alaw.gamma_wd > CCDC_GAMMA_BITS_09_0) {
299 dev_dbg(ccdc_cfg.dev, "Invalid value of ALAW\n");
300 return -EINVAL;
301 }
302 }
303
304 if (ccdcparam->blk_clamp.b_clamp_enable) {
305 if (ccdcparam->blk_clamp.sample_pixel < CCDC_SAMPLE_1PIXELS ||
306 ccdcparam->blk_clamp.sample_pixel > CCDC_SAMPLE_16PIXELS) {
307 dev_dbg(ccdc_cfg.dev,
308 "Invalid value of sample pixel\n");
309 return -EINVAL;
310 }
311 if (ccdcparam->blk_clamp.sample_ln < CCDC_SAMPLE_1LINES ||
312 ccdcparam->blk_clamp.sample_ln > CCDC_SAMPLE_16LINES) {
313 dev_dbg(ccdc_cfg.dev,
314 "Invalid value of sample lines\n");
315 return -EINVAL;
316 }
317 }
318 return 0;
319}
320
321/* Parameter operations */
322static int ccdc_set_params(void __user *params)
323{
324 struct ccdc_config_params_raw ccdc_raw_params;
325 int x;
326
327 /* only raw module parameters can be set through the IOCTL */
328 if (ccdc_cfg.if_type != VPFE_RAW_BAYER)
329 return -EINVAL;
330
331 x = copy_from_user(&ccdc_raw_params, params, sizeof(ccdc_raw_params));
332 if (x) {
333 dev_dbg(ccdc_cfg.dev, "ccdc_set_params: error in copying ccdcparams, %d\n",
334 x);
335 return -EFAULT;
336 }
337
338 if (!validate_ccdc_param(&ccdc_raw_params)) {
339 memcpy(&ccdc_cfg.bayer.config_params,
340 &ccdc_raw_params,
341 sizeof(ccdc_raw_params));
342 return 0;
343 }
344 return -EINVAL;
345}
346
347/* This function will configure CCDC for YCbCr video capture */ 258/* This function will configure CCDC for YCbCr video capture */
348static void ccdc_config_ycbcr(void) 259static void ccdc_config_ycbcr(void)
349{ 260{
@@ -939,7 +850,6 @@ static struct ccdc_hw_device ccdc_hw_dev = {
939 .enable = ccdc_enable, 850 .enable = ccdc_enable,
940 .enable_out_to_sdram = ccdc_enable_output_to_sdram, 851 .enable_out_to_sdram = ccdc_enable_output_to_sdram,
941 .set_hw_if_params = ccdc_set_hw_if_params, 852 .set_hw_if_params = ccdc_set_hw_if_params,
942 .set_params = ccdc_set_params,
943 .configure = ccdc_configure, 853 .configure = ccdc_configure,
944 .set_buftype = ccdc_set_buftype, 854 .set_buftype = ccdc_set_buftype,
945 .get_buftype = ccdc_get_buftype, 855 .get_buftype = ccdc_get_buftype,
diff --git a/drivers/media/platform/davinci/dm644x_ccdc.c b/drivers/media/platform/davinci/dm644x_ccdc.c
index 740fbc7a8c14..3b2d8a9317b8 100644
--- a/drivers/media/platform/davinci/dm644x_ccdc.c
+++ b/drivers/media/platform/davinci/dm644x_ccdc.c
@@ -17,13 +17,9 @@
17 * This module is for configuring CCD controller of DM6446 VPFE to capture 17 * This module is for configuring CCD controller of DM6446 VPFE to capture
18 * Raw yuv or Bayer RGB data from a decoder. CCDC has several modules 18 * Raw yuv or Bayer RGB data from a decoder. CCDC has several modules
19 * such as Defect Pixel Correction, Color Space Conversion etc to 19 * such as Defect Pixel Correction, Color Space Conversion etc to
20 * pre-process the Raw Bayer RGB data, before writing it to SDRAM. This 20 * pre-process the Raw Bayer RGB data, before writing it to SDRAM.
21 * module also allows application to configure individual 21 * This file is named DM644x so that other variants such DM6443
22 * module parameters through VPFE_CMD_S_CCDC_RAW_PARAMS IOCTL. 22 * may be supported using the same module.
23 * To do so, application includes dm644x_ccdc.h and vpfe_capture.h header
24 * files. The setparams() API is called by vpfe_capture driver
25 * to configure module parameters. This file is named DM644x so that other
26 * variants such DM6443 may be supported using the same module.
27 * 23 *
28 * TODO: Test Raw bayer parameter settings and bayer capture 24 * TODO: Test Raw bayer parameter settings and bayer capture
29 * Split module parameter structure to module specific ioctl structs 25 * Split module parameter structure to module specific ioctl structs
@@ -216,96 +212,8 @@ static void ccdc_readregs(void)
216 dev_notice(ccdc_cfg.dev, "\nReading 0x%x to VERT_LINES...\n", val); 212 dev_notice(ccdc_cfg.dev, "\nReading 0x%x to VERT_LINES...\n", val);
217} 213}
218 214
219static int validate_ccdc_param(struct ccdc_config_params_raw *ccdcparam)
220{
221 if (ccdcparam->alaw.enable) {
222 u8 max_gamma = ccdc_gamma_width_max_bit(ccdcparam->alaw.gamma_wd);
223 u8 max_data = ccdc_data_size_max_bit(ccdcparam->data_sz);
224
225 if ((ccdcparam->alaw.gamma_wd > CCDC_GAMMA_BITS_09_0) ||
226 (ccdcparam->alaw.gamma_wd < CCDC_GAMMA_BITS_15_6) ||
227 (max_gamma > max_data)) {
228 dev_dbg(ccdc_cfg.dev, "\nInvalid data line select");
229 return -1;
230 }
231 }
232 return 0;
233}
234
235static int ccdc_update_raw_params(struct ccdc_config_params_raw *raw_params)
236{
237 struct ccdc_config_params_raw *config_params =
238 &ccdc_cfg.bayer.config_params;
239 unsigned int *fpc_virtaddr = NULL;
240 unsigned int *fpc_physaddr = NULL;
241
242 memcpy(config_params, raw_params, sizeof(*raw_params));
243 /*
244 * allocate memory for fault pixel table and copy the user
245 * values to the table
246 */
247 if (!config_params->fault_pxl.enable)
248 return 0;
249
250 fpc_physaddr = (unsigned int *)config_params->fault_pxl.fpc_table_addr;
251 fpc_virtaddr = (unsigned int *)phys_to_virt(
252 (unsigned long)fpc_physaddr);
253 /*
254 * Allocate memory for FPC table if current
255 * FPC table buffer is not big enough to
256 * accommodate FPC Number requested
257 */
258 if (raw_params->fault_pxl.fp_num != config_params->fault_pxl.fp_num) {
259 if (fpc_physaddr != NULL) {
260 free_pages((unsigned long)fpc_virtaddr,
261 get_order
262 (config_params->fault_pxl.fp_num *
263 FP_NUM_BYTES));
264 }
265
266 /* Allocate memory for FPC table */
267 fpc_virtaddr =
268 (unsigned int *)__get_free_pages(GFP_KERNEL | GFP_DMA,
269 get_order(raw_params->
270 fault_pxl.fp_num *
271 FP_NUM_BYTES));
272
273 if (fpc_virtaddr == NULL) {
274 dev_dbg(ccdc_cfg.dev,
275 "\nUnable to allocate memory for FPC");
276 return -EFAULT;
277 }
278 fpc_physaddr =
279 (unsigned int *)virt_to_phys((void *)fpc_virtaddr);
280 }
281
282 /* Copy number of fault pixels and FPC table */
283 config_params->fault_pxl.fp_num = raw_params->fault_pxl.fp_num;
284 if (copy_from_user(fpc_virtaddr,
285 (void __user *)raw_params->fault_pxl.fpc_table_addr,
286 config_params->fault_pxl.fp_num * FP_NUM_BYTES)) {
287 dev_dbg(ccdc_cfg.dev, "\n copy_from_user failed");
288 return -EFAULT;
289 }
290 config_params->fault_pxl.fpc_table_addr = (unsigned long)fpc_physaddr;
291 return 0;
292}
293
294static int ccdc_close(struct device *dev) 215static int ccdc_close(struct device *dev)
295{ 216{
296 struct ccdc_config_params_raw *config_params =
297 &ccdc_cfg.bayer.config_params;
298 unsigned int *fpc_physaddr = NULL, *fpc_virtaddr = NULL;
299
300 fpc_physaddr = (unsigned int *)config_params->fault_pxl.fpc_table_addr;
301
302 if (fpc_physaddr != NULL) {
303 fpc_virtaddr = (unsigned int *)
304 phys_to_virt((unsigned long)fpc_physaddr);
305 free_pages((unsigned long)fpc_virtaddr,
306 get_order(config_params->fault_pxl.fp_num *
307 FP_NUM_BYTES));
308 }
309 return 0; 217 return 0;
310} 218}
311 219
@@ -339,29 +247,6 @@ static void ccdc_sbl_reset(void)
339 vpss_clear_wbl_overflow(VPSS_PCR_CCDC_WBL_O); 247 vpss_clear_wbl_overflow(VPSS_PCR_CCDC_WBL_O);
340} 248}
341 249
342/* Parameter operations */
343static int ccdc_set_params(void __user *params)
344{
345 struct ccdc_config_params_raw ccdc_raw_params;
346 int x;
347
348 if (ccdc_cfg.if_type != VPFE_RAW_BAYER)
349 return -EINVAL;
350
351 x = copy_from_user(&ccdc_raw_params, params, sizeof(ccdc_raw_params));
352 if (x) {
353 dev_dbg(ccdc_cfg.dev, "ccdc_set_params: error in copyingccdc params, %d\n",
354 x);
355 return -EFAULT;
356 }
357
358 if (!validate_ccdc_param(&ccdc_raw_params)) {
359 if (!ccdc_update_raw_params(&ccdc_raw_params))
360 return 0;
361 }
362 return -EINVAL;
363}
364
365/* 250/*
366 * ccdc_config_ycbcr() 251 * ccdc_config_ycbcr()
367 * This function will configure CCDC for YCbCr video capture 252 * This function will configure CCDC for YCbCr video capture
@@ -489,32 +374,6 @@ static void ccdc_config_black_compense(struct ccdc_black_compensation *bcomp)
489 regw(val, CCDC_BLKCMP); 374 regw(val, CCDC_BLKCMP);
490} 375}
491 376
492static void ccdc_config_fpc(struct ccdc_fault_pixel *fpc)
493{
494 u32 val;
495
496 /* Initially disable FPC */
497 val = CCDC_FPC_DISABLE;
498 regw(val, CCDC_FPC);
499
500 if (!fpc->enable)
501 return;
502
503 /* Configure Fault pixel if needed */
504 regw(fpc->fpc_table_addr, CCDC_FPC_ADDR);
505 dev_dbg(ccdc_cfg.dev, "\nWriting 0x%lx to FPC_ADDR...\n",
506 (fpc->fpc_table_addr));
507 /* Write the FPC params with FPC disable */
508 val = fpc->fp_num & CCDC_FPC_FPC_NUM_MASK;
509 regw(val, CCDC_FPC);
510
511 dev_dbg(ccdc_cfg.dev, "\nWriting 0x%x to FPC...\n", val);
512 /* read the FPC register */
513 val = regr(CCDC_FPC) | CCDC_FPC_ENABLE;
514 regw(val, CCDC_FPC);
515 dev_dbg(ccdc_cfg.dev, "\nWriting 0x%x to FPC...\n", val);
516}
517
518/* 377/*
519 * ccdc_config_raw() 378 * ccdc_config_raw()
520 * This function will configure CCDC for Raw capture mode 379 * This function will configure CCDC for Raw capture mode
@@ -569,9 +428,6 @@ static void ccdc_config_raw(void)
569 /* Configure Black level compensation */ 428 /* Configure Black level compensation */
570 ccdc_config_black_compense(&config_params->blk_comp); 429 ccdc_config_black_compense(&config_params->blk_comp);
571 430
572 /* Configure Fault Pixel Correction */
573 ccdc_config_fpc(&config_params->fault_pxl);
574
575 /* If data size is 8 bit then pack the data */ 431 /* If data size is 8 bit then pack the data */
576 if ((config_params->data_sz == CCDC_DATA_8BITS) || 432 if ((config_params->data_sz == CCDC_DATA_8BITS) ||
577 config_params->alaw.enable) 433 config_params->alaw.enable)
@@ -929,7 +785,6 @@ static struct ccdc_hw_device ccdc_hw_dev = {
929 .reset = ccdc_sbl_reset, 785 .reset = ccdc_sbl_reset,
930 .enable = ccdc_enable, 786 .enable = ccdc_enable,
931 .set_hw_if_params = ccdc_set_hw_if_params, 787 .set_hw_if_params = ccdc_set_hw_if_params,
932 .set_params = ccdc_set_params,
933 .configure = ccdc_configure, 788 .configure = ccdc_configure,
934 .set_buftype = ccdc_set_buftype, 789 .set_buftype = ccdc_set_buftype,
935 .get_buftype = ccdc_get_buftype, 790 .get_buftype = ccdc_get_buftype,
diff --git a/drivers/media/platform/davinci/vpfe_capture.c b/drivers/media/platform/davinci/vpfe_capture.c
index e3fe3e0635aa..b1bf4a7e8eb7 100644
--- a/drivers/media/platform/davinci/vpfe_capture.c
+++ b/drivers/media/platform/davinci/vpfe_capture.c
@@ -281,45 +281,6 @@ void vpfe_unregister_ccdc_device(struct ccdc_hw_device *dev)
281EXPORT_SYMBOL(vpfe_unregister_ccdc_device); 281EXPORT_SYMBOL(vpfe_unregister_ccdc_device);
282 282
283/* 283/*
284 * vpfe_get_ccdc_image_format - Get image parameters based on CCDC settings
285 */
286static int vpfe_get_ccdc_image_format(struct vpfe_device *vpfe_dev,
287 struct v4l2_format *f)
288{
289 struct v4l2_rect image_win;
290 enum ccdc_buftype buf_type;
291 enum ccdc_frmfmt frm_fmt;
292
293 memset(f, 0, sizeof(*f));
294 f->type = V4L2_BUF_TYPE_VIDEO_OUTPUT;
295 ccdc_dev->hw_ops.get_image_window(&image_win);
296 f->fmt.pix.width = image_win.width;
297 f->fmt.pix.height = image_win.height;
298 f->fmt.pix.bytesperline = ccdc_dev->hw_ops.get_line_length();
299 f->fmt.pix.sizeimage = f->fmt.pix.bytesperline *
300 f->fmt.pix.height;
301 buf_type = ccdc_dev->hw_ops.get_buftype();
302 f->fmt.pix.pixelformat = ccdc_dev->hw_ops.get_pixel_format();
303 frm_fmt = ccdc_dev->hw_ops.get_frame_format();
304 if (frm_fmt == CCDC_FRMFMT_PROGRESSIVE)
305 f->fmt.pix.field = V4L2_FIELD_NONE;
306 else if (frm_fmt == CCDC_FRMFMT_INTERLACED) {
307 if (buf_type == CCDC_BUFTYPE_FLD_INTERLEAVED)
308 f->fmt.pix.field = V4L2_FIELD_INTERLACED;
309 else if (buf_type == CCDC_BUFTYPE_FLD_SEPARATED)
310 f->fmt.pix.field = V4L2_FIELD_SEQ_TB;
311 else {
312 v4l2_err(&vpfe_dev->v4l2_dev, "Invalid buf_type\n");
313 return -EINVAL;
314 }
315 } else {
316 v4l2_err(&vpfe_dev->v4l2_dev, "Invalid frm_fmt\n");
317 return -EINVAL;
318 }
319 return 0;
320}
321
322/*
323 * vpfe_config_ccdc_image_format() 284 * vpfe_config_ccdc_image_format()
324 * For a pix format, configure ccdc to setup the capture 285 * For a pix format, configure ccdc to setup the capture
325 */ 286 */
@@ -1697,59 +1658,6 @@ unlock_out:
1697 return ret; 1658 return ret;
1698} 1659}
1699 1660
1700
1701static long vpfe_param_handler(struct file *file, void *priv,
1702 bool valid_prio, unsigned int cmd, void *param)
1703{
1704 struct vpfe_device *vpfe_dev = video_drvdata(file);
1705 int ret;
1706
1707 v4l2_dbg(2, debug, &vpfe_dev->v4l2_dev, "vpfe_param_handler\n");
1708
1709 if (vpfe_dev->started) {
1710 /* only allowed if streaming is not started */
1711 v4l2_dbg(1, debug, &vpfe_dev->v4l2_dev,
1712 "device already started\n");
1713 return -EBUSY;
1714 }
1715
1716 ret = mutex_lock_interruptible(&vpfe_dev->lock);
1717 if (ret)
1718 return ret;
1719
1720 switch (cmd) {
1721 case VPFE_CMD_S_CCDC_RAW_PARAMS:
1722 v4l2_warn(&vpfe_dev->v4l2_dev,
1723 "VPFE_CMD_S_CCDC_RAW_PARAMS: experimental ioctl\n");
1724 if (ccdc_dev->hw_ops.set_params) {
1725 ret = ccdc_dev->hw_ops.set_params(param);
1726 if (ret) {
1727 v4l2_dbg(1, debug, &vpfe_dev->v4l2_dev,
1728 "Error setting parameters in CCDC\n");
1729 goto unlock_out;
1730 }
1731 ret = vpfe_get_ccdc_image_format(vpfe_dev,
1732 &vpfe_dev->fmt);
1733 if (ret < 0) {
1734 v4l2_dbg(1, debug, &vpfe_dev->v4l2_dev,
1735 "Invalid image format at CCDC\n");
1736 goto unlock_out;
1737 }
1738 } else {
1739 ret = -EINVAL;
1740 v4l2_dbg(1, debug, &vpfe_dev->v4l2_dev,
1741 "VPFE_CMD_S_CCDC_RAW_PARAMS not supported\n");
1742 }
1743 break;
1744 default:
1745 ret = -ENOTTY;
1746 }
1747unlock_out:
1748 mutex_unlock(&vpfe_dev->lock);
1749 return ret;
1750}
1751
1752
1753/* vpfe capture ioctl operations */ 1661/* vpfe capture ioctl operations */
1754static const struct v4l2_ioctl_ops vpfe_ioctl_ops = { 1662static const struct v4l2_ioctl_ops vpfe_ioctl_ops = {
1755 .vidioc_querycap = vpfe_querycap, 1663 .vidioc_querycap = vpfe_querycap,
@@ -1772,7 +1680,6 @@ static const struct v4l2_ioctl_ops vpfe_ioctl_ops = {
1772 .vidioc_cropcap = vpfe_cropcap, 1680 .vidioc_cropcap = vpfe_cropcap,
1773 .vidioc_g_selection = vpfe_g_selection, 1681 .vidioc_g_selection = vpfe_g_selection,
1774 .vidioc_s_selection = vpfe_s_selection, 1682 .vidioc_s_selection = vpfe_s_selection,
1775 .vidioc_default = vpfe_param_handler,
1776}; 1683};
1777 1684
1778static struct vpfe_device *vpfe_initialize(void) 1685static struct vpfe_device *vpfe_initialize(void)
diff --git a/drivers/media/platform/davinci/vpif_capture.c b/drivers/media/platform/davinci/vpif_capture.c
index d78580f9e431..4be6554c56c5 100644
--- a/drivers/media/platform/davinci/vpif_capture.c
+++ b/drivers/media/platform/davinci/vpif_capture.c
@@ -1719,7 +1719,6 @@ vpif_unregister:
1719 */ 1719 */
1720static int vpif_remove(struct platform_device *device) 1720static int vpif_remove(struct platform_device *device)
1721{ 1721{
1722 struct common_obj *common;
1723 struct channel_obj *ch; 1722 struct channel_obj *ch;
1724 int i; 1723 int i;
1725 1724
@@ -1730,7 +1729,6 @@ static int vpif_remove(struct platform_device *device)
1730 for (i = 0; i < VPIF_CAPTURE_MAX_DEVICES; i++) { 1729 for (i = 0; i < VPIF_CAPTURE_MAX_DEVICES; i++) {
1731 /* Get the pointer to the channel object */ 1730 /* Get the pointer to the channel object */
1732 ch = vpif_obj.dev[i]; 1731 ch = vpif_obj.dev[i];
1733 common = &ch->common[VPIF_VIDEO_INDEX];
1734 /* Unregister video device */ 1732 /* Unregister video device */
1735 video_unregister_device(&ch->video_dev); 1733 video_unregister_device(&ch->video_dev);
1736 kfree(vpif_obj.dev[i]); 1734 kfree(vpif_obj.dev[i]);
diff --git a/drivers/media/platform/davinci/vpif_display.c b/drivers/media/platform/davinci/vpif_display.c
index b5ac6ce626b3..bf982bf86542 100644
--- a/drivers/media/platform/davinci/vpif_display.c
+++ b/drivers/media/platform/davinci/vpif_display.c
@@ -1339,7 +1339,6 @@ vpif_unregister:
1339 */ 1339 */
1340static int vpif_remove(struct platform_device *device) 1340static int vpif_remove(struct platform_device *device)
1341{ 1341{
1342 struct common_obj *common;
1343 struct channel_obj *ch; 1342 struct channel_obj *ch;
1344 int i; 1343 int i;
1345 1344
@@ -1350,7 +1349,6 @@ static int vpif_remove(struct platform_device *device)
1350 for (i = 0; i < VPIF_DISPLAY_MAX_DEVICES; i++) { 1349 for (i = 0; i < VPIF_DISPLAY_MAX_DEVICES; i++) {
1351 /* Get the pointer to the channel object */ 1350 /* Get the pointer to the channel object */
1352 ch = vpif_obj.dev[i]; 1351 ch = vpif_obj.dev[i];
1353 common = &ch->common[VPIF_VIDEO_INDEX];
1354 /* Unregister video device */ 1352 /* Unregister video device */
1355 video_unregister_device(&ch->video_dev); 1353 video_unregister_device(&ch->video_dev);
1356 kfree(vpif_obj.dev[i]); 1354 kfree(vpif_obj.dev[i]);
diff --git a/drivers/media/platform/omap/omap_vout_vrfb.c b/drivers/media/platform/omap/omap_vout_vrfb.c
index 92c4e1826356..45a553d4f5b2 100644
--- a/drivers/media/platform/omap/omap_vout_vrfb.c
+++ b/drivers/media/platform/omap/omap_vout_vrfb.c
@@ -16,7 +16,6 @@
16#include <media/videobuf-dma-contig.h> 16#include <media/videobuf-dma-contig.h>
17#include <media/v4l2-device.h> 17#include <media/v4l2-device.h>
18 18
19#include <linux/omap-dma.h>
20#include <video/omapvrfb.h> 19#include <video/omapvrfb.h>
21 20
22#include "omap_voutdef.h" 21#include "omap_voutdef.h"
@@ -63,7 +62,7 @@ static int omap_vout_allocate_vrfb_buffers(struct omap_vout_device *vout,
63/* 62/*
64 * Wakes up the application once the DMA transfer to VRFB space is completed. 63 * Wakes up the application once the DMA transfer to VRFB space is completed.
65 */ 64 */
66static void omap_vout_vrfb_dma_tx_callback(int lch, u16 ch_status, void *data) 65static void omap_vout_vrfb_dma_tx_callback(void *data)
67{ 66{
68 struct vid_vrfb_dma *t = (struct vid_vrfb_dma *) data; 67 struct vid_vrfb_dma *t = (struct vid_vrfb_dma *) data;
69 68
@@ -94,6 +93,7 @@ int omap_vout_setup_vrfb_bufs(struct platform_device *pdev, int vid_num,
94 int ret = 0, i, j; 93 int ret = 0, i, j;
95 struct omap_vout_device *vout; 94 struct omap_vout_device *vout;
96 struct video_device *vfd; 95 struct video_device *vfd;
96 dma_cap_mask_t mask;
97 int image_width, image_height; 97 int image_width, image_height;
98 int vrfb_num_bufs = VRFB_NUM_BUFS; 98 int vrfb_num_bufs = VRFB_NUM_BUFS;
99 struct v4l2_device *v4l2_dev = platform_get_drvdata(pdev); 99 struct v4l2_device *v4l2_dev = platform_get_drvdata(pdev);
@@ -131,18 +131,27 @@ int omap_vout_setup_vrfb_bufs(struct platform_device *pdev, int vid_num,
131 /* 131 /*
132 * Request and Initialize DMA, for DMA based VRFB transfer 132 * Request and Initialize DMA, for DMA based VRFB transfer
133 */ 133 */
134 vout->vrfb_dma_tx.dev_id = OMAP_DMA_NO_DEVICE; 134 dma_cap_zero(mask);
135 vout->vrfb_dma_tx.dma_ch = -1; 135 dma_cap_set(DMA_INTERLEAVE, mask);
136 vout->vrfb_dma_tx.req_status = DMA_CHAN_ALLOTED; 136 vout->vrfb_dma_tx.chan = dma_request_chan_by_mask(&mask);
137 ret = omap_request_dma(vout->vrfb_dma_tx.dev_id, "VRFB DMA TX", 137 if (IS_ERR(vout->vrfb_dma_tx.chan)) {
138 omap_vout_vrfb_dma_tx_callback,
139 (void *) &vout->vrfb_dma_tx, &vout->vrfb_dma_tx.dma_ch);
140 if (ret < 0) {
141 vout->vrfb_dma_tx.req_status = DMA_CHAN_NOT_ALLOTED; 138 vout->vrfb_dma_tx.req_status = DMA_CHAN_NOT_ALLOTED;
139 } else {
140 size_t xt_size = sizeof(struct dma_interleaved_template) +
141 sizeof(struct data_chunk);
142
143 vout->vrfb_dma_tx.xt = kzalloc(xt_size, GFP_KERNEL);
144 if (!vout->vrfb_dma_tx.xt) {
145 dma_release_channel(vout->vrfb_dma_tx.chan);
146 vout->vrfb_dma_tx.req_status = DMA_CHAN_NOT_ALLOTED;
147 }
148 }
149
150 if (vout->vrfb_dma_tx.req_status == DMA_CHAN_NOT_ALLOTED)
142 dev_info(&pdev->dev, 151 dev_info(&pdev->dev,
143 ": failed to allocate DMA Channel for video%d\n", 152 ": failed to allocate DMA Channel for video%d\n",
144 vfd->minor); 153 vfd->minor);
145 } 154
146 init_waitqueue_head(&vout->vrfb_dma_tx.wait); 155 init_waitqueue_head(&vout->vrfb_dma_tx.wait);
147 156
148 /* statically allocated the VRFB buffer is done through 157 /* statically allocated the VRFB buffer is done through
@@ -177,7 +186,9 @@ void omap_vout_release_vrfb(struct omap_vout_device *vout)
177 186
178 if (vout->vrfb_dma_tx.req_status == DMA_CHAN_ALLOTED) { 187 if (vout->vrfb_dma_tx.req_status == DMA_CHAN_ALLOTED) {
179 vout->vrfb_dma_tx.req_status = DMA_CHAN_NOT_ALLOTED; 188 vout->vrfb_dma_tx.req_status = DMA_CHAN_NOT_ALLOTED;
180 omap_free_dma(vout->vrfb_dma_tx.dma_ch); 189 kfree(vout->vrfb_dma_tx.xt);
190 dmaengine_terminate_sync(vout->vrfb_dma_tx.chan);
191 dma_release_channel(vout->vrfb_dma_tx.chan);
181 } 192 }
182} 193}
183 194
@@ -219,70 +230,84 @@ int omap_vout_vrfb_buffer_setup(struct omap_vout_device *vout,
219} 230}
220 231
221int omap_vout_prepare_vrfb(struct omap_vout_device *vout, 232int omap_vout_prepare_vrfb(struct omap_vout_device *vout,
222 struct videobuf_buffer *vb) 233 struct videobuf_buffer *vb)
223{ 234{
224 dma_addr_t dmabuf; 235 struct dma_async_tx_descriptor *tx;
225 struct vid_vrfb_dma *tx; 236 enum dma_ctrl_flags flags;
237 struct dma_chan *chan = vout->vrfb_dma_tx.chan;
238 struct dma_device *dmadev = chan->device;
239 struct dma_interleaved_template *xt = vout->vrfb_dma_tx.xt;
240 dma_cookie_t cookie;
241 enum dma_status status;
226 enum dss_rotation rotation; 242 enum dss_rotation rotation;
227 u32 dest_frame_index = 0, src_element_index = 0; 243 size_t dst_icg;
228 u32 dest_element_index = 0, src_frame_index = 0; 244 u32 pixsize;
229 u32 elem_count = 0, frame_count = 0, pixsize = 2;
230 245
231 if (!is_rotation_enabled(vout)) 246 if (!is_rotation_enabled(vout))
232 return 0; 247 return 0;
233 248
234 dmabuf = vout->buf_phy_addr[vb->i];
235 /* If rotation is enabled, copy input buffer into VRFB 249 /* If rotation is enabled, copy input buffer into VRFB
236 * memory space using DMA. We are copying input buffer 250 * memory space using DMA. We are copying input buffer
237 * into VRFB memory space of desired angle and DSS will 251 * into VRFB memory space of desired angle and DSS will
238 * read image VRFB memory for 0 degree angle 252 * read image VRFB memory for 0 degree angle
239 */ 253 */
254
240 pixsize = vout->bpp * vout->vrfb_bpp; 255 pixsize = vout->bpp * vout->vrfb_bpp;
241 /* 256 dst_icg = ((MAX_PIXELS_PER_LINE * pixsize) -
242 * DMA transfer in double index mode 257 (vout->pix.width * vout->bpp)) + 1;
243 */ 258
259 xt->src_start = vout->buf_phy_addr[vb->i];
260 xt->dst_start = vout->vrfb_context[vb->i].paddr[0];
261
262 xt->numf = vout->pix.height;
263 xt->frame_size = 1;
264 xt->sgl[0].size = vout->pix.width * vout->bpp;
265 xt->sgl[0].icg = dst_icg;
266
267 xt->dir = DMA_MEM_TO_MEM;
268 xt->src_sgl = false;
269 xt->src_inc = true;
270 xt->dst_sgl = true;
271 xt->dst_inc = true;
272
273 tx = dmadev->device_prep_interleaved_dma(chan, xt, flags);
274 if (tx == NULL) {
275 pr_err("%s: DMA interleaved prep error\n", __func__);
276 return -EINVAL;
277 }
244 278
245 /* Frame index */ 279 tx->callback = omap_vout_vrfb_dma_tx_callback;
246 dest_frame_index = ((MAX_PIXELS_PER_LINE * pixsize) - 280 tx->callback_param = &vout->vrfb_dma_tx;
247 (vout->pix.width * vout->bpp)) + 1; 281
248 282 cookie = dmaengine_submit(tx);
249 /* Source and destination parameters */ 283 if (dma_submit_error(cookie)) {
250 src_element_index = 0; 284 pr_err("%s: dmaengine_submit failed (%d)\n", __func__, cookie);
251 src_frame_index = 0; 285 return -EINVAL;
252 dest_element_index = 1; 286 }
253 /* Number of elements per frame */
254 elem_count = vout->pix.width * vout->bpp;
255 frame_count = vout->pix.height;
256 tx = &vout->vrfb_dma_tx;
257 tx->tx_status = 0;
258 omap_set_dma_transfer_params(tx->dma_ch, OMAP_DMA_DATA_TYPE_S32,
259 (elem_count / 4), frame_count, OMAP_DMA_SYNC_ELEMENT,
260 tx->dev_id, 0x0);
261 /* src_port required only for OMAP1 */
262 omap_set_dma_src_params(tx->dma_ch, 0, OMAP_DMA_AMODE_POST_INC,
263 dmabuf, src_element_index, src_frame_index);
264 /*set dma source burst mode for VRFB */
265 omap_set_dma_src_burst_mode(tx->dma_ch, OMAP_DMA_DATA_BURST_16);
266 rotation = calc_rotation(vout);
267 287
268 /* dest_port required only for OMAP1 */ 288 vout->vrfb_dma_tx.tx_status = 0;
269 omap_set_dma_dest_params(tx->dma_ch, 0, OMAP_DMA_AMODE_DOUBLE_IDX, 289 dma_async_issue_pending(chan);
270 vout->vrfb_context[vb->i].paddr[0], dest_element_index,
271 dest_frame_index);
272 /*set dma dest burst mode for VRFB */
273 omap_set_dma_dest_burst_mode(tx->dma_ch, OMAP_DMA_DATA_BURST_16);
274 omap_dma_set_global_params(DMA_DEFAULT_ARB_RATE, 0x20, 0);
275 290
276 omap_start_dma(tx->dma_ch); 291 wait_event_interruptible_timeout(vout->vrfb_dma_tx.wait,
277 wait_event_interruptible_timeout(tx->wait, tx->tx_status == 1, 292 vout->vrfb_dma_tx.tx_status == 1,
278 VRFB_TX_TIMEOUT); 293 VRFB_TX_TIMEOUT);
279 294
280 if (tx->tx_status == 0) { 295 status = dma_async_is_tx_complete(chan, cookie, NULL, NULL);
281 omap_stop_dma(tx->dma_ch); 296
297 if (vout->vrfb_dma_tx.tx_status == 0) {
298 pr_err("%s: Timeout while waiting for DMA\n", __func__);
299 dmaengine_terminate_sync(chan);
300 return -EINVAL;
301 } else if (status != DMA_COMPLETE) {
302 pr_err("%s: DMA completion %s status\n", __func__,
303 status == DMA_ERROR ? "error" : "busy");
304 dmaengine_terminate_sync(chan);
282 return -EINVAL; 305 return -EINVAL;
283 } 306 }
307
284 /* Store buffers physical address into an array. Addresses 308 /* Store buffers physical address into an array. Addresses
285 * from this array will be used to configure DSS */ 309 * from this array will be used to configure DSS */
310 rotation = calc_rotation(vout);
286 vout->queued_buf_addr[vb->i] = (u8 *) 311 vout->queued_buf_addr[vb->i] = (u8 *)
287 vout->vrfb_context[vb->i].paddr[rotation]; 312 vout->vrfb_context[vb->i].paddr[rotation];
288 return 0; 313 return 0;
diff --git a/drivers/media/platform/omap/omap_voutdef.h b/drivers/media/platform/omap/omap_voutdef.h
index 80c79fabdf95..56b630b1c8b4 100644
--- a/drivers/media/platform/omap/omap_voutdef.h
+++ b/drivers/media/platform/omap/omap_voutdef.h
@@ -14,6 +14,7 @@
14#include <media/v4l2-ctrls.h> 14#include <media/v4l2-ctrls.h>
15#include <video/omapfb_dss.h> 15#include <video/omapfb_dss.h>
16#include <video/omapvrfb.h> 16#include <video/omapvrfb.h>
17#include <linux/dmaengine.h>
17 18
18#define YUYV_BPP 2 19#define YUYV_BPP 2
19#define RGB565_BPP 2 20#define RGB565_BPP 2
@@ -81,8 +82,9 @@ enum vout_rotaion_type {
81 * for VRFB hidden buffer 82 * for VRFB hidden buffer
82 */ 83 */
83struct vid_vrfb_dma { 84struct vid_vrfb_dma {
84 int dev_id; 85 struct dma_chan *chan;
85 int dma_ch; 86 struct dma_interleaved_template *xt;
87
86 int req_status; 88 int req_status;
87 int tx_status; 89 int tx_status;
88 wait_queue_head_t wait; 90 wait_queue_head_t wait;
diff --git a/drivers/media/platform/qcom/venus/core.c b/drivers/media/platform/qcom/venus/core.c
index 776d2bae6979..41eef376eb2d 100644
--- a/drivers/media/platform/qcom/venus/core.c
+++ b/drivers/media/platform/qcom/venus/core.c
@@ -76,7 +76,7 @@ static void venus_sys_error_handler(struct work_struct *work)
76 hfi_core_deinit(core, true); 76 hfi_core_deinit(core, true);
77 hfi_destroy(core); 77 hfi_destroy(core);
78 mutex_lock(&core->lock); 78 mutex_lock(&core->lock);
79 venus_shutdown(&core->dev_fw); 79 venus_shutdown(core->dev);
80 80
81 pm_runtime_put_sync(core->dev); 81 pm_runtime_put_sync(core->dev);
82 82
@@ -84,7 +84,7 @@ static void venus_sys_error_handler(struct work_struct *work)
84 84
85 pm_runtime_get_sync(core->dev); 85 pm_runtime_get_sync(core->dev);
86 86
87 ret |= venus_boot(core->dev, &core->dev_fw, core->res->fwname); 87 ret |= venus_boot(core->dev, core->res->fwname);
88 88
89 ret |= hfi_core_resume(core, true); 89 ret |= hfi_core_resume(core, true);
90 90
@@ -137,7 +137,7 @@ static int venus_clks_enable(struct venus_core *core)
137 137
138 return 0; 138 return 0;
139err: 139err:
140 while (--i) 140 while (i--)
141 clk_disable_unprepare(core->clks[i]); 141 clk_disable_unprepare(core->clks[i]);
142 142
143 return ret; 143 return ret;
@@ -207,7 +207,7 @@ static int venus_probe(struct platform_device *pdev)
207 if (ret < 0) 207 if (ret < 0)
208 goto err_runtime_disable; 208 goto err_runtime_disable;
209 209
210 ret = venus_boot(dev, &core->dev_fw, core->res->fwname); 210 ret = venus_boot(dev, core->res->fwname);
211 if (ret) 211 if (ret)
212 goto err_runtime_disable; 212 goto err_runtime_disable;
213 213
@@ -238,7 +238,7 @@ err_dev_unregister:
238err_core_deinit: 238err_core_deinit:
239 hfi_core_deinit(core, false); 239 hfi_core_deinit(core, false);
240err_venus_shutdown: 240err_venus_shutdown:
241 venus_shutdown(&core->dev_fw); 241 venus_shutdown(dev);
242err_runtime_disable: 242err_runtime_disable:
243 pm_runtime_set_suspended(dev); 243 pm_runtime_set_suspended(dev);
244 pm_runtime_disable(dev); 244 pm_runtime_disable(dev);
@@ -259,7 +259,7 @@ static int venus_remove(struct platform_device *pdev)
259 WARN_ON(ret); 259 WARN_ON(ret);
260 260
261 hfi_destroy(core); 261 hfi_destroy(core);
262 venus_shutdown(&core->dev_fw); 262 venus_shutdown(dev);
263 of_platform_depopulate(dev); 263 of_platform_depopulate(dev);
264 264
265 pm_runtime_put_sync(dev); 265 pm_runtime_put_sync(dev);
@@ -270,8 +270,7 @@ static int venus_remove(struct platform_device *pdev)
270 return ret; 270 return ret;
271} 271}
272 272
273#ifdef CONFIG_PM 273static __maybe_unused int venus_runtime_suspend(struct device *dev)
274static int venus_runtime_suspend(struct device *dev)
275{ 274{
276 struct venus_core *core = dev_get_drvdata(dev); 275 struct venus_core *core = dev_get_drvdata(dev);
277 int ret; 276 int ret;
@@ -283,7 +282,7 @@ static int venus_runtime_suspend(struct device *dev)
283 return ret; 282 return ret;
284} 283}
285 284
286static int venus_runtime_resume(struct device *dev) 285static __maybe_unused int venus_runtime_resume(struct device *dev)
287{ 286{
288 struct venus_core *core = dev_get_drvdata(dev); 287 struct venus_core *core = dev_get_drvdata(dev);
289 int ret; 288 int ret;
@@ -302,7 +301,6 @@ err_clks_disable:
302 venus_clks_disable(core); 301 venus_clks_disable(core);
303 return ret; 302 return ret;
304} 303}
305#endif
306 304
307static const struct dev_pm_ops venus_pm_ops = { 305static const struct dev_pm_ops venus_pm_ops = {
308 SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend, 306 SET_SYSTEM_SLEEP_PM_OPS(pm_runtime_force_suspend,
diff --git a/drivers/media/platform/qcom/venus/core.h b/drivers/media/platform/qcom/venus/core.h
index e542700eee32..cba092bcb76d 100644
--- a/drivers/media/platform/qcom/venus/core.h
+++ b/drivers/media/platform/qcom/venus/core.h
@@ -101,7 +101,6 @@ struct venus_core {
101 struct device *dev; 101 struct device *dev;
102 struct device *dev_dec; 102 struct device *dev_dec;
103 struct device *dev_enc; 103 struct device *dev_enc;
104 struct device dev_fw;
105 struct mutex lock; 104 struct mutex lock;
106 struct list_head instances; 105 struct list_head instances;
107 atomic_t insts_count; 106 atomic_t insts_count;
diff --git a/drivers/media/platform/qcom/venus/firmware.c b/drivers/media/platform/qcom/venus/firmware.c
index 1b1a4f355918..521d4b36c090 100644
--- a/drivers/media/platform/qcom/venus/firmware.c
+++ b/drivers/media/platform/qcom/venus/firmware.c
@@ -12,97 +12,87 @@
12 * 12 *
13 */ 13 */
14 14
15#include <linux/dma-mapping.h> 15#include <linux/device.h>
16#include <linux/firmware.h> 16#include <linux/firmware.h>
17#include <linux/kernel.h> 17#include <linux/kernel.h>
18#include <linux/io.h>
18#include <linux/of.h> 19#include <linux/of.h>
19#include <linux/of_reserved_mem.h> 20#include <linux/of_address.h>
20#include <linux/slab.h>
21#include <linux/qcom_scm.h> 21#include <linux/qcom_scm.h>
22#include <linux/sizes.h>
22#include <linux/soc/qcom/mdt_loader.h> 23#include <linux/soc/qcom/mdt_loader.h>
23 24
24#include "firmware.h" 25#include "firmware.h"
25 26
26#define VENUS_PAS_ID 9 27#define VENUS_PAS_ID 9
27#define VENUS_FW_MEM_SIZE SZ_8M 28#define VENUS_FW_MEM_SIZE (6 * SZ_1M)
28 29
29static void device_release_dummy(struct device *dev) 30int venus_boot(struct device *dev, const char *fwname)
30{
31 of_reserved_mem_device_release(dev);
32}
33
34int venus_boot(struct device *parent, struct device *fw_dev, const char *fwname)
35{ 31{
36 const struct firmware *mdt; 32 const struct firmware *mdt;
33 struct device_node *node;
37 phys_addr_t mem_phys; 34 phys_addr_t mem_phys;
35 struct resource r;
38 ssize_t fw_size; 36 ssize_t fw_size;
39 size_t mem_size; 37 size_t mem_size;
40 void *mem_va; 38 void *mem_va;
41 int ret; 39 int ret;
42 40
43 if (!qcom_scm_is_available()) 41 if (!IS_ENABLED(CONFIG_QCOM_MDT_LOADER) || !qcom_scm_is_available())
44 return -EPROBE_DEFER; 42 return -EPROBE_DEFER;
45 43
46 fw_dev->parent = parent; 44 node = of_parse_phandle(dev->of_node, "memory-region", 0);
47 fw_dev->release = device_release_dummy; 45 if (!node) {
46 dev_err(dev, "no memory-region specified\n");
47 return -EINVAL;
48 }
48 49
49 ret = dev_set_name(fw_dev, "%s:%s", dev_name(parent), "firmware"); 50 ret = of_address_to_resource(node, 0, &r);
50 if (ret) 51 if (ret)
51 return ret; 52 return ret;
52 53
53 ret = device_register(fw_dev); 54 mem_phys = r.start;
54 if (ret < 0) 55 mem_size = resource_size(&r);
55 return ret;
56 56
57 ret = of_reserved_mem_device_init_by_idx(fw_dev, parent->of_node, 0); 57 if (mem_size < VENUS_FW_MEM_SIZE)
58 if (ret) 58 return -EINVAL;
59 goto err_unreg_device;
60 59
61 mem_size = VENUS_FW_MEM_SIZE; 60 mem_va = memremap(r.start, mem_size, MEMREMAP_WC);
62
63 mem_va = dmam_alloc_coherent(fw_dev, mem_size, &mem_phys, GFP_KERNEL);
64 if (!mem_va) { 61 if (!mem_va) {
65 ret = -ENOMEM; 62 dev_err(dev, "unable to map memory region: %pa+%zx\n",
66 goto err_unreg_device; 63 &r.start, mem_size);
64 return -ENOMEM;
67 } 65 }
68 66
69 ret = request_firmware(&mdt, fwname, fw_dev); 67 ret = request_firmware(&mdt, fwname, dev);
70 if (ret < 0) 68 if (ret < 0)
71 goto err_unreg_device; 69 goto err_unmap;
72 70
73 fw_size = qcom_mdt_get_size(mdt); 71 fw_size = qcom_mdt_get_size(mdt);
74 if (fw_size < 0) { 72 if (fw_size < 0) {
75 ret = fw_size; 73 ret = fw_size;
76 release_firmware(mdt); 74 release_firmware(mdt);
77 goto err_unreg_device; 75 goto err_unmap;
78 } 76 }
79 77
80 ret = qcom_mdt_load(fw_dev, mdt, fwname, VENUS_PAS_ID, mem_va, mem_phys, 78 ret = qcom_mdt_load(dev, mdt, fwname, VENUS_PAS_ID, mem_va, mem_phys,
81 mem_size); 79 mem_size);
82 80
83 release_firmware(mdt); 81 release_firmware(mdt);
84 82
85 if (ret) 83 if (ret)
86 goto err_unreg_device; 84 goto err_unmap;
87 85
88 ret = qcom_scm_pas_auth_and_reset(VENUS_PAS_ID); 86 ret = qcom_scm_pas_auth_and_reset(VENUS_PAS_ID);
89 if (ret) 87 if (ret)
90 goto err_unreg_device; 88 goto err_unmap;
91
92 return 0;
93 89
94err_unreg_device: 90err_unmap:
95 device_unregister(fw_dev); 91 memunmap(mem_va);
96 return ret; 92 return ret;
97} 93}
98 94
99int venus_shutdown(struct device *fw_dev) 95int venus_shutdown(struct device *dev)
100{ 96{
101 int ret; 97 return qcom_scm_pas_shutdown(VENUS_PAS_ID);
102
103 ret = qcom_scm_pas_shutdown(VENUS_PAS_ID);
104 device_unregister(fw_dev);
105 memset(fw_dev, 0, sizeof(*fw_dev));
106
107 return ret;
108} 98}
diff --git a/drivers/media/platform/qcom/venus/firmware.h b/drivers/media/platform/qcom/venus/firmware.h
index f81a98979798..428efb56d339 100644
--- a/drivers/media/platform/qcom/venus/firmware.h
+++ b/drivers/media/platform/qcom/venus/firmware.h
@@ -16,8 +16,7 @@
16 16
17struct device; 17struct device;
18 18
19int venus_boot(struct device *parent, struct device *fw_dev, 19int venus_boot(struct device *dev, const char *fwname);
20 const char *fwname); 20int venus_shutdown(struct device *dev);
21int venus_shutdown(struct device *fw_dev);
22 21
23#endif 22#endif
diff --git a/drivers/media/platform/qcom/venus/hfi_msgs.c b/drivers/media/platform/qcom/venus/hfi_msgs.c
index f8841713e417..a681ae5381d6 100644
--- a/drivers/media/platform/qcom/venus/hfi_msgs.c
+++ b/drivers/media/platform/qcom/venus/hfi_msgs.c
@@ -239,11 +239,12 @@ static void hfi_sys_init_done(struct venus_core *core, struct venus_inst *inst,
239 break; 239 break;
240 } 240 }
241 241
242 if (!error) { 242 if (error)
243 rem_bytes -= read_bytes; 243 break;
244 data += read_bytes; 244
245 num_properties--; 245 rem_bytes -= read_bytes;
246 } 246 data += read_bytes;
247 num_properties--;
247 } 248 }
248 249
249err_no_prop: 250err_no_prop:
diff --git a/drivers/media/platform/sti/bdisp/bdisp-debug.c b/drivers/media/platform/sti/bdisp/bdisp-debug.c
index 7af66860d624..2cc289e4dea1 100644
--- a/drivers/media/platform/sti/bdisp/bdisp-debug.c
+++ b/drivers/media/platform/sti/bdisp/bdisp-debug.c
@@ -104,7 +104,7 @@ static void bdisp_dbg_dump_ins(struct seq_file *s, u32 val)
104 if (val & BLT_INS_IRQ) 104 if (val & BLT_INS_IRQ)
105 seq_puts(s, "IRQ - "); 105 seq_puts(s, "IRQ - ");
106 106
107 seq_puts(s, "\n"); 107 seq_putc(s, '\n');
108} 108}
109 109
110static void bdisp_dbg_dump_tty(struct seq_file *s, u32 val) 110static void bdisp_dbg_dump_tty(struct seq_file *s, u32 val)
@@ -153,7 +153,7 @@ static void bdisp_dbg_dump_tty(struct seq_file *s, u32 val)
153 if (val & BLT_TTY_BIG_END) 153 if (val & BLT_TTY_BIG_END)
154 seq_puts(s, "BigEndian - "); 154 seq_puts(s, "BigEndian - ");
155 155
156 seq_puts(s, "\n"); 156 seq_putc(s, '\n');
157} 157}
158 158
159static void bdisp_dbg_dump_xy(struct seq_file *s, u32 val, char *name) 159static void bdisp_dbg_dump_xy(struct seq_file *s, u32 val, char *name)
@@ -230,7 +230,7 @@ static void bdisp_dbg_dump_sty(struct seq_file *s,
230 seq_puts(s, "BigEndian - "); 230 seq_puts(s, "BigEndian - ");
231 231
232done: 232done:
233 seq_puts(s, "\n"); 233 seq_putc(s, '\n');
234} 234}
235 235
236static void bdisp_dbg_dump_fctl(struct seq_file *s, u32 val) 236static void bdisp_dbg_dump_fctl(struct seq_file *s, u32 val)
@@ -247,7 +247,7 @@ static void bdisp_dbg_dump_fctl(struct seq_file *s, u32 val)
247 else if ((val & BLT_FCTL_HV_SCALE) == BLT_FCTL_HV_SAMPLE) 247 else if ((val & BLT_FCTL_HV_SCALE) == BLT_FCTL_HV_SAMPLE)
248 seq_puts(s, "Sample Chroma"); 248 seq_puts(s, "Sample Chroma");
249 249
250 seq_puts(s, "\n"); 250 seq_putc(s, '\n');
251} 251}
252 252
253static void bdisp_dbg_dump_rsf(struct seq_file *s, u32 val, char *name) 253static void bdisp_dbg_dump_rsf(struct seq_file *s, u32 val, char *name)
@@ -266,7 +266,7 @@ static void bdisp_dbg_dump_rsf(struct seq_file *s, u32 val, char *name)
266 seq_printf(s, "V: %d(6.10) / scale~%dx0.1", inc, 1024 * 10 / inc); 266 seq_printf(s, "V: %d(6.10) / scale~%dx0.1", inc, 1024 * 10 / inc);
267 267
268done: 268done:
269 seq_puts(s, "\n"); 269 seq_putc(s, '\n');
270} 270}
271 271
272static void bdisp_dbg_dump_rzi(struct seq_file *s, u32 val, char *name) 272static void bdisp_dbg_dump_rzi(struct seq_file *s, u32 val, char *name)
@@ -281,7 +281,7 @@ static void bdisp_dbg_dump_rzi(struct seq_file *s, u32 val, char *name)
281 seq_printf(s, "V: init=%d repeat=%d", val & 0x3FF, (val >> 12) & 7); 281 seq_printf(s, "V: init=%d repeat=%d", val & 0x3FF, (val >> 12) & 7);
282 282
283done: 283done:
284 seq_puts(s, "\n"); 284 seq_putc(s, '\n');
285} 285}
286 286
287static void bdisp_dbg_dump_ivmx(struct seq_file *s, 287static void bdisp_dbg_dump_ivmx(struct seq_file *s,
@@ -293,7 +293,7 @@ static void bdisp_dbg_dump_ivmx(struct seq_file *s,
293 seq_printf(s, "IVMX3\t0x%08X\t", c3); 293 seq_printf(s, "IVMX3\t0x%08X\t", c3);
294 294
295 if (!c0 && !c1 && !c2 && !c3) { 295 if (!c0 && !c1 && !c2 && !c3) {
296 seq_puts(s, "\n"); 296 seq_putc(s, '\n');
297 return; 297 return;
298 } 298 }
299 299
diff --git a/drivers/media/platform/vimc/vimc-capture.c b/drivers/media/platform/vimc/vimc-capture.c
index 14cb32e21130..88a1e5670c72 100644
--- a/drivers/media/platform/vimc/vimc-capture.c
+++ b/drivers/media/platform/vimc/vimc-capture.c
@@ -517,21 +517,22 @@ static int vimc_cap_remove(struct platform_device *pdev)
517 return 0; 517 return 0;
518} 518}
519 519
520static const struct platform_device_id vimc_cap_driver_ids[] = {
521 {
522 .name = VIMC_CAP_DRV_NAME,
523 },
524 { }
525};
526
520static struct platform_driver vimc_cap_pdrv = { 527static struct platform_driver vimc_cap_pdrv = {
521 .probe = vimc_cap_probe, 528 .probe = vimc_cap_probe,
522 .remove = vimc_cap_remove, 529 .remove = vimc_cap_remove,
530 .id_table = vimc_cap_driver_ids,
523 .driver = { 531 .driver = {
524 .name = VIMC_CAP_DRV_NAME, 532 .name = VIMC_CAP_DRV_NAME,
525 }, 533 },
526}; 534};
527 535
528static const struct platform_device_id vimc_cap_driver_ids[] = {
529 {
530 .name = VIMC_CAP_DRV_NAME,
531 },
532 { }
533};
534
535module_platform_driver(vimc_cap_pdrv); 536module_platform_driver(vimc_cap_pdrv);
536 537
537MODULE_DEVICE_TABLE(platform, vimc_cap_driver_ids); 538MODULE_DEVICE_TABLE(platform, vimc_cap_driver_ids);
diff --git a/drivers/media/platform/vimc/vimc-debayer.c b/drivers/media/platform/vimc/vimc-debayer.c
index 35b15bd4d61d..033a131f67af 100644
--- a/drivers/media/platform/vimc/vimc-debayer.c
+++ b/drivers/media/platform/vimc/vimc-debayer.c
@@ -577,21 +577,22 @@ static int vimc_deb_remove(struct platform_device *pdev)
577 return 0; 577 return 0;
578} 578}
579 579
580static const struct platform_device_id vimc_deb_driver_ids[] = {
581 {
582 .name = VIMC_DEB_DRV_NAME,
583 },
584 { }
585};
586
580static struct platform_driver vimc_deb_pdrv = { 587static struct platform_driver vimc_deb_pdrv = {
581 .probe = vimc_deb_probe, 588 .probe = vimc_deb_probe,
582 .remove = vimc_deb_remove, 589 .remove = vimc_deb_remove,
590 .id_table = vimc_deb_driver_ids,
583 .driver = { 591 .driver = {
584 .name = VIMC_DEB_DRV_NAME, 592 .name = VIMC_DEB_DRV_NAME,
585 }, 593 },
586}; 594};
587 595
588static const struct platform_device_id vimc_deb_driver_ids[] = {
589 {
590 .name = VIMC_DEB_DRV_NAME,
591 },
592 { }
593};
594
595module_platform_driver(vimc_deb_pdrv); 596module_platform_driver(vimc_deb_pdrv);
596 597
597MODULE_DEVICE_TABLE(platform, vimc_deb_driver_ids); 598MODULE_DEVICE_TABLE(platform, vimc_deb_driver_ids);
diff --git a/drivers/media/platform/vimc/vimc-scaler.c b/drivers/media/platform/vimc/vimc-scaler.c
index fe77505d2679..0a3e086e12f3 100644
--- a/drivers/media/platform/vimc/vimc-scaler.c
+++ b/drivers/media/platform/vimc/vimc-scaler.c
@@ -431,21 +431,22 @@ static int vimc_sca_remove(struct platform_device *pdev)
431 return 0; 431 return 0;
432} 432}
433 433
434static const struct platform_device_id vimc_sca_driver_ids[] = {
435 {
436 .name = VIMC_SCA_DRV_NAME,
437 },
438 { }
439};
440
434static struct platform_driver vimc_sca_pdrv = { 441static struct platform_driver vimc_sca_pdrv = {
435 .probe = vimc_sca_probe, 442 .probe = vimc_sca_probe,
436 .remove = vimc_sca_remove, 443 .remove = vimc_sca_remove,
444 .id_table = vimc_sca_driver_ids,
437 .driver = { 445 .driver = {
438 .name = VIMC_SCA_DRV_NAME, 446 .name = VIMC_SCA_DRV_NAME,
439 }, 447 },
440}; 448};
441 449
442static const struct platform_device_id vimc_sca_driver_ids[] = {
443 {
444 .name = VIMC_SCA_DRV_NAME,
445 },
446 { }
447};
448
449module_platform_driver(vimc_sca_pdrv); 450module_platform_driver(vimc_sca_pdrv);
450 451
451MODULE_DEVICE_TABLE(platform, vimc_sca_driver_ids); 452MODULE_DEVICE_TABLE(platform, vimc_sca_driver_ids);
diff --git a/drivers/media/platform/vimc/vimc-sensor.c b/drivers/media/platform/vimc/vimc-sensor.c
index ebdbbe8c05ed..615c2b18dcfc 100644
--- a/drivers/media/platform/vimc/vimc-sensor.c
+++ b/drivers/media/platform/vimc/vimc-sensor.c
@@ -365,21 +365,22 @@ static int vimc_sen_remove(struct platform_device *pdev)
365 return 0; 365 return 0;
366} 366}
367 367
368static const struct platform_device_id vimc_sen_driver_ids[] = {
369 {
370 .name = VIMC_SEN_DRV_NAME,
371 },
372 { }
373};
374
368static struct platform_driver vimc_sen_pdrv = { 375static struct platform_driver vimc_sen_pdrv = {
369 .probe = vimc_sen_probe, 376 .probe = vimc_sen_probe,
370 .remove = vimc_sen_remove, 377 .remove = vimc_sen_remove,
378 .id_table = vimc_sen_driver_ids,
371 .driver = { 379 .driver = {
372 .name = VIMC_SEN_DRV_NAME, 380 .name = VIMC_SEN_DRV_NAME,
373 }, 381 },
374}; 382};
375 383
376static const struct platform_device_id vimc_sen_driver_ids[] = {
377 {
378 .name = VIMC_SEN_DRV_NAME,
379 },
380 { }
381};
382
383module_platform_driver(vimc_sen_pdrv); 384module_platform_driver(vimc_sen_pdrv);
384 385
385MODULE_DEVICE_TABLE(platform, vimc_sen_driver_ids); 386MODULE_DEVICE_TABLE(platform, vimc_sen_driver_ids);
diff --git a/drivers/media/radio/radio-wl1273.c b/drivers/media/radio/radio-wl1273.c
index 7240223dc15a..17e82a9a0109 100644
--- a/drivers/media/radio/radio-wl1273.c
+++ b/drivers/media/radio/radio-wl1273.c
@@ -610,10 +610,21 @@ static int wl1273_fm_start(struct wl1273_device *radio, int new_mode)
610 } 610 }
611 } 611 }
612 612
613 if (radio->rds_on) 613 if (radio->rds_on) {
614 r = core->write(core, WL1273_RDS_DATA_ENB, 1); 614 r = core->write(core, WL1273_RDS_DATA_ENB, 1);
615 else 615 if (r) {
616 dev_err(dev, "%s: RDS_DATA_ENB ON fails\n",
617 __func__);
618 goto fail;
619 }
620 } else {
616 r = core->write(core, WL1273_RDS_DATA_ENB, 0); 621 r = core->write(core, WL1273_RDS_DATA_ENB, 0);
622 if (r) {
623 dev_err(dev, "%s: RDS_DATA_ENB OFF fails\n",
624 __func__);
625 goto fail;
626 }
627 }
617 } else { 628 } else {
618 dev_warn(dev, "%s: Illegal mode.\n", __func__); 629 dev_warn(dev, "%s: Illegal mode.\n", __func__);
619 } 630 }
diff --git a/drivers/media/rc/ir-lirc-codec.c b/drivers/media/rc/ir-lirc-codec.c
index a30af91710fe..d2223c04e9ad 100644
--- a/drivers/media/rc/ir-lirc-codec.c
+++ b/drivers/media/rc/ir-lirc-codec.c
@@ -266,7 +266,7 @@ static long ir_lirc_ioctl(struct file *filep, unsigned int cmd,
266 if (!dev->rx_resolution) 266 if (!dev->rx_resolution)
267 return -ENOTTY; 267 return -ENOTTY;
268 268
269 val = dev->rx_resolution; 269 val = dev->rx_resolution / 1000;
270 break; 270 break;
271 271
272 case LIRC_SET_WIDEBAND_RECEIVER: 272 case LIRC_SET_WIDEBAND_RECEIVER:
diff --git a/drivers/media/tuners/fc0011.c b/drivers/media/tuners/fc0011.c
index 192b1c7740df..145407dee3db 100644
--- a/drivers/media/tuners/fc0011.c
+++ b/drivers/media/tuners/fc0011.c
@@ -342,6 +342,7 @@ static int fc0011_set_params(struct dvb_frontend *fe)
342 switch (vco_sel) { 342 switch (vco_sel) {
343 default: 343 default:
344 WARN_ON(1); 344 WARN_ON(1);
345 return -EINVAL;
345 case 0: 346 case 0:
346 if (vco_cal < 8) { 347 if (vco_cal < 8) {
347 regs[FC11_REG_VCOSEL] &= ~(FC11_VCOSEL_1 | FC11_VCOSEL_2); 348 regs[FC11_REG_VCOSEL] &= ~(FC11_VCOSEL_1 | FC11_VCOSEL_2);
diff --git a/drivers/media/tuners/mxl5005s.c b/drivers/media/tuners/mxl5005s.c
index 353744fee053..dd59c2c0e4a5 100644
--- a/drivers/media/tuners/mxl5005s.c
+++ b/drivers/media/tuners/mxl5005s.c
@@ -2737,8 +2737,6 @@ static u16 MXL_TuneRF(struct dvb_frontend *fe, u32 RF_Freq)
2737 status += MXL_ControlWrite(fe, TG_LO_DIVVAL, 0x0); 2737 status += MXL_ControlWrite(fe, TG_LO_DIVVAL, 0x0);
2738 status += MXL_ControlWrite(fe, TG_LO_SELVAL, 0x7); 2738 status += MXL_ControlWrite(fe, TG_LO_SELVAL, 0x7);
2739 divider_val = 2 ; 2739 divider_val = 2 ;
2740 Fmax = FmaxBin ;
2741 Fmin = FminBin ;
2742 } 2740 }
2743 2741
2744 /* TG_DIV_VAL */ 2742 /* TG_DIV_VAL */
diff --git a/drivers/media/usb/au0828/au0828-input.c b/drivers/media/usb/au0828/au0828-input.c
index 9ec919c68482..9d82ec0a4b64 100644
--- a/drivers/media/usb/au0828/au0828-input.c
+++ b/drivers/media/usb/au0828/au0828-input.c
@@ -351,7 +351,7 @@ int au0828_rc_register(struct au0828_dev *dev)
351 if (err) 351 if (err)
352 goto error; 352 goto error;
353 353
354 pr_info("Remote controller %s initalized\n", ir->name); 354 pr_info("Remote controller %s initialized\n", ir->name);
355 355
356 return 0; 356 return 0;
357 357
diff --git a/drivers/media/usb/dvb-usb-v2/lmedm04.c b/drivers/media/usb/dvb-usb-v2/lmedm04.c
index 594360a63c18..a91fdad8f8d4 100644
--- a/drivers/media/usb/dvb-usb-v2/lmedm04.c
+++ b/drivers/media/usb/dvb-usb-v2/lmedm04.c
@@ -207,15 +207,13 @@ static int lme2510_stream_restart(struct dvb_usb_device *d)
207 struct lme2510_state *st = d->priv; 207 struct lme2510_state *st = d->priv;
208 u8 all_pids[] = LME_ALL_PIDS; 208 u8 all_pids[] = LME_ALL_PIDS;
209 u8 stream_on[] = LME_ST_ON_W; 209 u8 stream_on[] = LME_ST_ON_W;
210 int ret;
211 u8 rbuff[1]; 210 u8 rbuff[1];
212 if (st->pid_off) 211 if (st->pid_off)
213 ret = lme2510_usb_talk(d, all_pids, sizeof(all_pids), 212 lme2510_usb_talk(d, all_pids, sizeof(all_pids),
214 rbuff, sizeof(rbuff)); 213 rbuff, sizeof(rbuff));
215 /*Restart Stream Command*/ 214 /*Restart Stream Command*/
216 ret = lme2510_usb_talk(d, stream_on, sizeof(stream_on), 215 return lme2510_usb_talk(d, stream_on, sizeof(stream_on),
217 rbuff, sizeof(rbuff)); 216 rbuff, sizeof(rbuff));
218 return ret;
219} 217}
220 218
221static int lme2510_enable_pid(struct dvb_usb_device *d, u8 index, u16 pid_out) 219static int lme2510_enable_pid(struct dvb_usb_device *d, u8 index, u16 pid_out)
diff --git a/drivers/media/usb/dvb-usb/dib0700_core.c b/drivers/media/usb/dvb-usb/dib0700_core.c
index 08acdd32e412..bea1b4764a66 100644
--- a/drivers/media/usb/dvb-usb/dib0700_core.c
+++ b/drivers/media/usb/dvb-usb/dib0700_core.c
@@ -215,13 +215,14 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg,
215 USB_CTRL_GET_TIMEOUT); 215 USB_CTRL_GET_TIMEOUT);
216 if (result < 0) { 216 if (result < 0) {
217 deb_info("i2c read error (status = %d)\n", result); 217 deb_info("i2c read error (status = %d)\n", result);
218 break; 218 goto unlock;
219 } 219 }
220 220
221 if (msg[i].len > sizeof(st->buf)) { 221 if (msg[i].len > sizeof(st->buf)) {
222 deb_info("buffer too small to fit %d bytes\n", 222 deb_info("buffer too small to fit %d bytes\n",
223 msg[i].len); 223 msg[i].len);
224 return -EIO; 224 result = -EIO;
225 goto unlock;
225 } 226 }
226 227
227 memcpy(msg[i].buf, st->buf, msg[i].len); 228 memcpy(msg[i].buf, st->buf, msg[i].len);
@@ -233,8 +234,8 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg,
233 /* Write request */ 234 /* Write request */
234 if (mutex_lock_interruptible(&d->usb_mutex) < 0) { 235 if (mutex_lock_interruptible(&d->usb_mutex) < 0) {
235 err("could not acquire lock"); 236 err("could not acquire lock");
236 mutex_unlock(&d->i2c_mutex); 237 result = -EINTR;
237 return -EINTR; 238 goto unlock;
238 } 239 }
239 st->buf[0] = REQUEST_NEW_I2C_WRITE; 240 st->buf[0] = REQUEST_NEW_I2C_WRITE;
240 st->buf[1] = msg[i].addr << 1; 241 st->buf[1] = msg[i].addr << 1;
@@ -247,7 +248,9 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg,
247 if (msg[i].len > sizeof(st->buf) - 4) { 248 if (msg[i].len > sizeof(st->buf) - 4) {
248 deb_info("i2c message to big: %d\n", 249 deb_info("i2c message to big: %d\n",
249 msg[i].len); 250 msg[i].len);
250 return -EIO; 251 mutex_unlock(&d->usb_mutex);
252 result = -EIO;
253 goto unlock;
251 } 254 }
252 255
253 /* The Actual i2c payload */ 256 /* The Actual i2c payload */
@@ -269,8 +272,11 @@ static int dib0700_i2c_xfer_new(struct i2c_adapter *adap, struct i2c_msg *msg,
269 } 272 }
270 } 273 }
271 } 274 }
275 result = i;
276
277unlock:
272 mutex_unlock(&d->i2c_mutex); 278 mutex_unlock(&d->i2c_mutex);
273 return i; 279 return result;
274} 280}
275 281
276/* 282/*
@@ -281,7 +287,7 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap,
281{ 287{
282 struct dvb_usb_device *d = i2c_get_adapdata(adap); 288 struct dvb_usb_device *d = i2c_get_adapdata(adap);
283 struct dib0700_state *st = d->priv; 289 struct dib0700_state *st = d->priv;
284 int i,len; 290 int i, len, result;
285 291
286 if (mutex_lock_interruptible(&d->i2c_mutex) < 0) 292 if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
287 return -EINTR; 293 return -EINTR;
@@ -298,7 +304,8 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap,
298 if (msg[i].len > sizeof(st->buf) - 2) { 304 if (msg[i].len > sizeof(st->buf) - 2) {
299 deb_info("i2c xfer to big: %d\n", 305 deb_info("i2c xfer to big: %d\n",
300 msg[i].len); 306 msg[i].len);
301 return -EIO; 307 result = -EIO;
308 goto unlock;
302 } 309 }
303 memcpy(&st->buf[2], msg[i].buf, msg[i].len); 310 memcpy(&st->buf[2], msg[i].buf, msg[i].len);
304 311
@@ -313,13 +320,15 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap,
313 if (len <= 0) { 320 if (len <= 0) {
314 deb_info("I2C read failed on address 0x%02x\n", 321 deb_info("I2C read failed on address 0x%02x\n",
315 msg[i].addr); 322 msg[i].addr);
316 break; 323 result = -EIO;
324 goto unlock;
317 } 325 }
318 326
319 if (msg[i + 1].len > sizeof(st->buf)) { 327 if (msg[i + 1].len > sizeof(st->buf)) {
320 deb_info("i2c xfer buffer to small for %d\n", 328 deb_info("i2c xfer buffer to small for %d\n",
321 msg[i].len); 329 msg[i].len);
322 return -EIO; 330 result = -EIO;
331 goto unlock;
323 } 332 }
324 memcpy(msg[i + 1].buf, st->buf, msg[i + 1].len); 333 memcpy(msg[i + 1].buf, st->buf, msg[i + 1].len);
325 334
@@ -328,14 +337,17 @@ static int dib0700_i2c_xfer_legacy(struct i2c_adapter *adap,
328 i++; 337 i++;
329 } else { 338 } else {
330 st->buf[0] = REQUEST_I2C_WRITE; 339 st->buf[0] = REQUEST_I2C_WRITE;
331 if (dib0700_ctrl_wr(d, st->buf, msg[i].len + 2) < 0) 340 result = dib0700_ctrl_wr(d, st->buf, msg[i].len + 2);
332 break; 341 if (result < 0)
342 goto unlock;
333 } 343 }
334 } 344 }
345 result = i;
346unlock:
335 mutex_unlock(&d->usb_mutex); 347 mutex_unlock(&d->usb_mutex);
336 mutex_unlock(&d->i2c_mutex); 348 mutex_unlock(&d->i2c_mutex);
337 349
338 return i; 350 return result;
339} 351}
340 352
341static int dib0700_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msg, 353static int dib0700_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msg,
diff --git a/drivers/media/usb/em28xx/em28xx-cards.c b/drivers/media/usb/em28xx/em28xx-cards.c
index 146341aeb782..4c57fd7929cb 100644
--- a/drivers/media/usb/em28xx/em28xx-cards.c
+++ b/drivers/media/usb/em28xx/em28xx-cards.c
@@ -1193,6 +1193,22 @@ struct em28xx_board em28xx_boards[] = {
1193 .i2c_speed = EM28XX_I2C_CLK_WAIT_ENABLE | 1193 .i2c_speed = EM28XX_I2C_CLK_WAIT_ENABLE |
1194 EM28XX_I2C_FREQ_400_KHZ, 1194 EM28XX_I2C_FREQ_400_KHZ,
1195 }, 1195 },
1196 [EM2884_BOARD_TERRATEC_H6] = {
1197 .name = "Terratec Cinergy H6 rev. 2",
1198 .has_dvb = 1,
1199 .ir_codes = RC_MAP_NEC_TERRATEC_CINERGY_XS,
1200#if 0
1201 .tuner_type = TUNER_PHILIPS_TDA8290,
1202 .tuner_addr = 0x41,
1203 .dvb_gpio = terratec_h5_digital, /* FIXME: probably wrong */
1204 .tuner_gpio = terratec_h5_gpio,
1205#else
1206 .tuner_type = TUNER_ABSENT,
1207#endif
1208 .def_i2c_bus = 1,
1209 .i2c_speed = EM28XX_I2C_CLK_WAIT_ENABLE |
1210 EM28XX_I2C_FREQ_400_KHZ,
1211 },
1196 [EM2884_BOARD_HAUPPAUGE_WINTV_HVR_930C] = { 1212 [EM2884_BOARD_HAUPPAUGE_WINTV_HVR_930C] = {
1197 .name = "Hauppauge WinTV HVR 930C", 1213 .name = "Hauppauge WinTV HVR 930C",
1198 .has_dvb = 1, 1214 .has_dvb = 1,
@@ -2496,6 +2512,8 @@ struct usb_device_id em28xx_id_table[] = {
2496 .driver_info = EM2884_BOARD_TERRATEC_H5 }, 2512 .driver_info = EM2884_BOARD_TERRATEC_H5 },
2497 { USB_DEVICE(0x0ccd, 0x10b6), /* H5 Rev. 3 */ 2513 { USB_DEVICE(0x0ccd, 0x10b6), /* H5 Rev. 3 */
2498 .driver_info = EM2884_BOARD_TERRATEC_H5 }, 2514 .driver_info = EM2884_BOARD_TERRATEC_H5 },
2515 { USB_DEVICE(0x0ccd, 0x10b2), /* H6 */
2516 .driver_info = EM2884_BOARD_TERRATEC_H6 },
2499 { USB_DEVICE(0x0ccd, 0x0084), 2517 { USB_DEVICE(0x0ccd, 0x0084),
2500 .driver_info = EM2860_BOARD_TERRATEC_AV350 }, 2518 .driver_info = EM2860_BOARD_TERRATEC_AV350 },
2501 { USB_DEVICE(0x0ccd, 0x0096), 2519 { USB_DEVICE(0x0ccd, 0x0096),
diff --git a/drivers/media/usb/em28xx/em28xx-dvb.c b/drivers/media/usb/em28xx/em28xx-dvb.c
index 82edd37f0d73..4a7db623fe29 100644
--- a/drivers/media/usb/em28xx/em28xx-dvb.c
+++ b/drivers/media/usb/em28xx/em28xx-dvb.c
@@ -1522,6 +1522,7 @@ static int em28xx_dvb_init(struct em28xx *dev)
1522 break; 1522 break;
1523 case EM2884_BOARD_ELGATO_EYETV_HYBRID_2008: 1523 case EM2884_BOARD_ELGATO_EYETV_HYBRID_2008:
1524 case EM2884_BOARD_CINERGY_HTC_STICK: 1524 case EM2884_BOARD_CINERGY_HTC_STICK:
1525 case EM2884_BOARD_TERRATEC_H6:
1525 terratec_htc_stick_init(dev); 1526 terratec_htc_stick_init(dev);
1526 1527
1527 /* attach demodulator */ 1528 /* attach demodulator */
diff --git a/drivers/media/usb/em28xx/em28xx-i2c.c b/drivers/media/usb/em28xx/em28xx-i2c.c
index 8c472d5adb50..60b195c157b8 100644
--- a/drivers/media/usb/em28xx/em28xx-i2c.c
+++ b/drivers/media/usb/em28xx/em28xx-i2c.c
@@ -982,8 +982,6 @@ int em28xx_i2c_register(struct em28xx *dev, unsigned bus,
982 dev_err(&dev->intf->dev, 982 dev_err(&dev->intf->dev,
983 "%s: em28xx_i2_eeprom failed! retval [%d]\n", 983 "%s: em28xx_i2_eeprom failed! retval [%d]\n",
984 __func__, retval); 984 __func__, retval);
985
986 return retval;
987 } 985 }
988 } 986 }
989 987
diff --git a/drivers/media/usb/em28xx/em28xx-input.c b/drivers/media/usb/em28xx/em28xx-input.c
index eba75736e654..ca9673917ad5 100644
--- a/drivers/media/usb/em28xx/em28xx-input.c
+++ b/drivers/media/usb/em28xx/em28xx-input.c
@@ -821,7 +821,7 @@ static int em28xx_ir_init(struct em28xx *dev)
821 if (err) 821 if (err)
822 goto error; 822 goto error;
823 823
824 dev_info(&dev->intf->dev, "Input extension successfully initalized\n"); 824 dev_info(&dev->intf->dev, "Input extension successfully initialized\n");
825 825
826 return 0; 826 return 0;
827 827
diff --git a/drivers/media/usb/em28xx/em28xx.h b/drivers/media/usb/em28xx/em28xx.h
index e8d97d5ec161..88084f24f033 100644
--- a/drivers/media/usb/em28xx/em28xx.h
+++ b/drivers/media/usb/em28xx/em28xx.h
@@ -148,6 +148,7 @@
148#define EM28178_BOARD_PLEX_PX_BCUD 98 148#define EM28178_BOARD_PLEX_PX_BCUD 98
149#define EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_DVB 99 149#define EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_DVB 99
150#define EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_01595 100 150#define EM28174_BOARD_HAUPPAUGE_WINTV_DUALHD_01595 100
151#define EM2884_BOARD_TERRATEC_H6 101
151 152
152/* Limits minimum and default number of buffers */ 153/* Limits minimum and default number of buffers */
153#define EM28XX_MIN_BUF 4 154#define EM28XX_MIN_BUF 4
diff --git a/drivers/media/usb/pulse8-cec/pulse8-cec.c b/drivers/media/usb/pulse8-cec/pulse8-cec.c
index c843070f24c1..f9ed9c950247 100644
--- a/drivers/media/usb/pulse8-cec/pulse8-cec.c
+++ b/drivers/media/usb/pulse8-cec/pulse8-cec.c
@@ -51,7 +51,7 @@ MODULE_DESCRIPTION("Pulse Eight HDMI CEC driver");
51MODULE_LICENSE("GPL"); 51MODULE_LICENSE("GPL");
52 52
53static int debug; 53static int debug;
54static int persistent_config = 1; 54static int persistent_config;
55module_param(debug, int, 0644); 55module_param(debug, int, 0644);
56module_param(persistent_config, int, 0644); 56module_param(persistent_config, int, 0644);
57MODULE_PARM_DESC(debug, "debug level (0-1)"); 57MODULE_PARM_DESC(debug, "debug level (0-1)");
diff --git a/drivers/media/usb/rainshadow-cec/rainshadow-cec.c b/drivers/media/usb/rainshadow-cec/rainshadow-cec.c
index f203699e9c1b..65692576690f 100644
--- a/drivers/media/usb/rainshadow-cec/rainshadow-cec.c
+++ b/drivers/media/usb/rainshadow-cec/rainshadow-cec.c
@@ -116,21 +116,19 @@ static void rain_irq_work_handler(struct work_struct *work)
116 116
117 while (true) { 117 while (true) {
118 unsigned long flags; 118 unsigned long flags;
119 bool exit_loop = false;
120 char data; 119 char data;
121 120
122 spin_lock_irqsave(&rain->buf_lock, flags); 121 spin_lock_irqsave(&rain->buf_lock, flags);
123 if (rain->buf_len) { 122 if (!rain->buf_len) {
124 data = rain->buf[rain->buf_rd_idx]; 123 spin_unlock_irqrestore(&rain->buf_lock, flags);
125 rain->buf_len--; 124 break;
126 rain->buf_rd_idx = (rain->buf_rd_idx + 1) & 0xff;
127 } else {
128 exit_loop = true;
129 } 125 }
130 spin_unlock_irqrestore(&rain->buf_lock, flags);
131 126
132 if (exit_loop) 127 data = rain->buf[rain->buf_rd_idx];
133 break; 128 rain->buf_len--;
129 rain->buf_rd_idx = (rain->buf_rd_idx + 1) & 0xff;
130
131 spin_unlock_irqrestore(&rain->buf_lock, flags);
134 132
135 if (!rain->cmd_started && data != '?') 133 if (!rain->cmd_started && data != '?')
136 continue; 134 continue;
diff --git a/drivers/media/usb/stkwebcam/stk-sensor.c b/drivers/media/usb/stkwebcam/stk-sensor.c
index 985af9933c7e..c1d4505f84ea 100644
--- a/drivers/media/usb/stkwebcam/stk-sensor.c
+++ b/drivers/media/usb/stkwebcam/stk-sensor.c
@@ -41,6 +41,8 @@
41 41
42/* It seems the i2c bus is controlled with these registers */ 42/* It seems the i2c bus is controlled with these registers */
43 43
44#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
45
44#include "stk-webcam.h" 46#include "stk-webcam.h"
45 47
46#define STK_IIC_BASE (0x0200) 48#define STK_IIC_BASE (0x0200)
@@ -239,8 +241,8 @@ static int stk_sensor_outb(struct stk_camera *dev, u8 reg, u8 val)
239 } while (tmpval == 0 && i < MAX_RETRIES); 241 } while (tmpval == 0 && i < MAX_RETRIES);
240 if (tmpval != STK_IIC_STAT_TX_OK) { 242 if (tmpval != STK_IIC_STAT_TX_OK) {
241 if (tmpval) 243 if (tmpval)
242 STK_ERROR("stk_sensor_outb failed, status=0x%02x\n", 244 pr_err("stk_sensor_outb failed, status=0x%02x\n",
243 tmpval); 245 tmpval);
244 return 1; 246 return 1;
245 } else 247 } else
246 return 0; 248 return 0;
@@ -262,8 +264,8 @@ static int stk_sensor_inb(struct stk_camera *dev, u8 reg, u8 *val)
262 } while (tmpval == 0 && i < MAX_RETRIES); 264 } while (tmpval == 0 && i < MAX_RETRIES);
263 if (tmpval != STK_IIC_STAT_RX_OK) { 265 if (tmpval != STK_IIC_STAT_RX_OK) {
264 if (tmpval) 266 if (tmpval)
265 STK_ERROR("stk_sensor_inb failed, status=0x%02x\n", 267 pr_err("stk_sensor_inb failed, status=0x%02x\n",
266 tmpval); 268 tmpval);
267 return 1; 269 return 1;
268 } 270 }
269 271
@@ -366,29 +368,29 @@ int stk_sensor_init(struct stk_camera *dev)
366 if (stk_camera_write_reg(dev, STK_IIC_ENABLE, STK_IIC_ENABLE_YES) 368 if (stk_camera_write_reg(dev, STK_IIC_ENABLE, STK_IIC_ENABLE_YES)
367 || stk_camera_write_reg(dev, STK_IIC_ADDR, SENSOR_ADDRESS) 369 || stk_camera_write_reg(dev, STK_IIC_ADDR, SENSOR_ADDRESS)
368 || stk_sensor_outb(dev, REG_COM7, COM7_RESET)) { 370 || stk_sensor_outb(dev, REG_COM7, COM7_RESET)) {
369 STK_ERROR("Sensor resetting failed\n"); 371 pr_err("Sensor resetting failed\n");
370 return -ENODEV; 372 return -ENODEV;
371 } 373 }
372 msleep(10); 374 msleep(10);
373 /* Read the manufacturer ID: ov = 0x7FA2 */ 375 /* Read the manufacturer ID: ov = 0x7FA2 */
374 if (stk_sensor_inb(dev, REG_MIDH, &idh) 376 if (stk_sensor_inb(dev, REG_MIDH, &idh)
375 || stk_sensor_inb(dev, REG_MIDL, &idl)) { 377 || stk_sensor_inb(dev, REG_MIDL, &idl)) {
376 STK_ERROR("Strange error reading sensor ID\n"); 378 pr_err("Strange error reading sensor ID\n");
377 return -ENODEV; 379 return -ENODEV;
378 } 380 }
379 if (idh != 0x7f || idl != 0xa2) { 381 if (idh != 0x7f || idl != 0xa2) {
380 STK_ERROR("Huh? you don't have a sensor from ovt\n"); 382 pr_err("Huh? you don't have a sensor from ovt\n");
381 return -ENODEV; 383 return -ENODEV;
382 } 384 }
383 if (stk_sensor_inb(dev, REG_PID, &idh) 385 if (stk_sensor_inb(dev, REG_PID, &idh)
384 || stk_sensor_inb(dev, REG_VER, &idl)) { 386 || stk_sensor_inb(dev, REG_VER, &idl)) {
385 STK_ERROR("Could not read sensor model\n"); 387 pr_err("Could not read sensor model\n");
386 return -ENODEV; 388 return -ENODEV;
387 } 389 }
388 stk_sensor_write_regvals(dev, ov_initvals); 390 stk_sensor_write_regvals(dev, ov_initvals);
389 msleep(10); 391 msleep(10);
390 STK_INFO("OmniVision sensor detected, id %02X%02X at address %x\n", 392 pr_info("OmniVision sensor detected, id %02X%02X at address %x\n",
391 idh, idl, SENSOR_ADDRESS); 393 idh, idl, SENSOR_ADDRESS);
392 return 0; 394 return 0;
393} 395}
394 396
@@ -520,7 +522,8 @@ int stk_sensor_configure(struct stk_camera *dev)
520 case MODE_SXGA: com7 = COM7_FMT_SXGA; 522 case MODE_SXGA: com7 = COM7_FMT_SXGA;
521 dummylines = 0; 523 dummylines = 0;
522 break; 524 break;
523 default: STK_ERROR("Unsupported mode %d\n", dev->vsettings.mode); 525 default:
526 pr_err("Unsupported mode %d\n", dev->vsettings.mode);
524 return -EFAULT; 527 return -EFAULT;
525 } 528 }
526 switch (dev->vsettings.palette) { 529 switch (dev->vsettings.palette) {
@@ -544,7 +547,8 @@ int stk_sensor_configure(struct stk_camera *dev)
544 com7 |= COM7_PBAYER; 547 com7 |= COM7_PBAYER;
545 rv = ov_fmt_bayer; 548 rv = ov_fmt_bayer;
546 break; 549 break;
547 default: STK_ERROR("Unsupported colorspace\n"); 550 default:
551 pr_err("Unsupported colorspace\n");
548 return -EFAULT; 552 return -EFAULT;
549 } 553 }
550 /*FIXME sometimes the sensor go to a bad state 554 /*FIXME sometimes the sensor go to a bad state
@@ -564,7 +568,7 @@ int stk_sensor_configure(struct stk_camera *dev)
564 switch (dev->vsettings.mode) { 568 switch (dev->vsettings.mode) {
565 case MODE_VGA: 569 case MODE_VGA:
566 if (stk_sensor_set_hw(dev, 302, 1582, 6, 486)) 570 if (stk_sensor_set_hw(dev, 302, 1582, 6, 486))
567 STK_ERROR("stk_sensor_set_hw failed (VGA)\n"); 571 pr_err("stk_sensor_set_hw failed (VGA)\n");
568 break; 572 break;
569 case MODE_SXGA: 573 case MODE_SXGA:
570 case MODE_CIF: 574 case MODE_CIF:
@@ -572,7 +576,7 @@ int stk_sensor_configure(struct stk_camera *dev)
572 case MODE_QCIF: 576 case MODE_QCIF:
573 /*FIXME These settings seem ignored by the sensor 577 /*FIXME These settings seem ignored by the sensor
574 if (stk_sensor_set_hw(dev, 220, 1500, 10, 1034)) 578 if (stk_sensor_set_hw(dev, 220, 1500, 10, 1034))
575 STK_ERROR("stk_sensor_set_hw failed (SXGA)\n"); 579 pr_err("stk_sensor_set_hw failed (SXGA)\n");
576 */ 580 */
577 break; 581 break;
578 } 582 }
diff --git a/drivers/media/usb/stkwebcam/stk-webcam.c b/drivers/media/usb/stkwebcam/stk-webcam.c
index 6e7fc36b658f..90d4a08cda31 100644
--- a/drivers/media/usb/stkwebcam/stk-webcam.c
+++ b/drivers/media/usb/stkwebcam/stk-webcam.c
@@ -18,6 +18,8 @@
18 * GNU General Public License for more details. 18 * GNU General Public License for more details.
19 */ 19 */
20 20
21#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
22
21#include <linux/module.h> 23#include <linux/module.h>
22#include <linux/init.h> 24#include <linux/init.h>
23#include <linux/kernel.h> 25#include <linux/kernel.h>
@@ -175,15 +177,15 @@ static int stk_start_stream(struct stk_camera *dev)
175 if (!is_present(dev)) 177 if (!is_present(dev))
176 return -ENODEV; 178 return -ENODEV;
177 if (!is_memallocd(dev) || !is_initialised(dev)) { 179 if (!is_memallocd(dev) || !is_initialised(dev)) {
178 STK_ERROR("FIXME: Buffers are not allocated\n"); 180 pr_err("FIXME: Buffers are not allocated\n");
179 return -EFAULT; 181 return -EFAULT;
180 } 182 }
181 ret = usb_set_interface(dev->udev, 0, 5); 183 ret = usb_set_interface(dev->udev, 0, 5);
182 184
183 if (ret < 0) 185 if (ret < 0)
184 STK_ERROR("usb_set_interface failed !\n"); 186 pr_err("usb_set_interface failed !\n");
185 if (stk_sensor_wakeup(dev)) 187 if (stk_sensor_wakeup(dev))
186 STK_ERROR("error awaking the sensor\n"); 188 pr_err("error awaking the sensor\n");
187 189
188 stk_camera_read_reg(dev, 0x0116, &value_116); 190 stk_camera_read_reg(dev, 0x0116, &value_116);
189 stk_camera_read_reg(dev, 0x0117, &value_117); 191 stk_camera_read_reg(dev, 0x0117, &value_117);
@@ -224,9 +226,9 @@ static int stk_stop_stream(struct stk_camera *dev)
224 unset_streaming(dev); 226 unset_streaming(dev);
225 227
226 if (usb_set_interface(dev->udev, 0, 0)) 228 if (usb_set_interface(dev->udev, 0, 0))
227 STK_ERROR("usb_set_interface failed !\n"); 229 pr_err("usb_set_interface failed !\n");
228 if (stk_sensor_sleep(dev)) 230 if (stk_sensor_sleep(dev))
229 STK_ERROR("error suspending the sensor\n"); 231 pr_err("error suspending the sensor\n");
230 } 232 }
231 return 0; 233 return 0;
232} 234}
@@ -313,7 +315,7 @@ static void stk_isoc_handler(struct urb *urb)
313 dev = (struct stk_camera *) urb->context; 315 dev = (struct stk_camera *) urb->context;
314 316
315 if (dev == NULL) { 317 if (dev == NULL) {
316 STK_ERROR("isoc_handler called with NULL device !\n"); 318 pr_err("isoc_handler called with NULL device !\n");
317 return; 319 return;
318 } 320 }
319 321
@@ -326,14 +328,13 @@ static void stk_isoc_handler(struct urb *urb)
326 spin_lock_irqsave(&dev->spinlock, flags); 328 spin_lock_irqsave(&dev->spinlock, flags);
327 329
328 if (urb->status != -EINPROGRESS && urb->status != 0) { 330 if (urb->status != -EINPROGRESS && urb->status != 0) {
329 STK_ERROR("isoc_handler: urb->status == %d\n", urb->status); 331 pr_err("isoc_handler: urb->status == %d\n", urb->status);
330 goto resubmit; 332 goto resubmit;
331 } 333 }
332 334
333 if (list_empty(&dev->sio_avail)) { 335 if (list_empty(&dev->sio_avail)) {
334 /*FIXME Stop streaming after a while */ 336 /*FIXME Stop streaming after a while */
335 (void) (printk_ratelimit() && 337 pr_err_ratelimited("isoc_handler without available buffer!\n");
336 STK_ERROR("isoc_handler without available buffer!\n"));
337 goto resubmit; 338 goto resubmit;
338 } 339 }
339 fb = list_first_entry(&dev->sio_avail, 340 fb = list_first_entry(&dev->sio_avail,
@@ -343,8 +344,8 @@ static void stk_isoc_handler(struct urb *urb)
343 for (i = 0; i < urb->number_of_packets; i++) { 344 for (i = 0; i < urb->number_of_packets; i++) {
344 if (urb->iso_frame_desc[i].status != 0) { 345 if (urb->iso_frame_desc[i].status != 0) {
345 if (urb->iso_frame_desc[i].status != -EXDEV) 346 if (urb->iso_frame_desc[i].status != -EXDEV)
346 STK_ERROR("Frame %d has error %d\n", i, 347 pr_err("Frame %d has error %d\n",
347 urb->iso_frame_desc[i].status); 348 i, urb->iso_frame_desc[i].status);
348 continue; 349 continue;
349 } 350 }
350 framelen = urb->iso_frame_desc[i].actual_length; 351 framelen = urb->iso_frame_desc[i].actual_length;
@@ -368,9 +369,8 @@ static void stk_isoc_handler(struct urb *urb)
368 /* This marks a new frame */ 369 /* This marks a new frame */
369 if (fb->v4lbuf.bytesused != 0 370 if (fb->v4lbuf.bytesused != 0
370 && fb->v4lbuf.bytesused != dev->frame_size) { 371 && fb->v4lbuf.bytesused != dev->frame_size) {
371 (void) (printk_ratelimit() && 372 pr_err_ratelimited("frame %d, bytesused=%d, skipping\n",
372 STK_ERROR("frame %d, bytesused=%d, skipping\n", 373 i, fb->v4lbuf.bytesused);
373 i, fb->v4lbuf.bytesused));
374 fb->v4lbuf.bytesused = 0; 374 fb->v4lbuf.bytesused = 0;
375 fill = fb->buffer; 375 fill = fb->buffer;
376 } else if (fb->v4lbuf.bytesused == dev->frame_size) { 376 } else if (fb->v4lbuf.bytesused == dev->frame_size) {
@@ -395,8 +395,7 @@ static void stk_isoc_handler(struct urb *urb)
395 395
396 /* Our buffer is full !!! */ 396 /* Our buffer is full !!! */
397 if (framelen + fb->v4lbuf.bytesused > dev->frame_size) { 397 if (framelen + fb->v4lbuf.bytesused > dev->frame_size) {
398 (void) (printk_ratelimit() && 398 pr_err_ratelimited("Frame buffer overflow, lost sync\n");
399 STK_ERROR("Frame buffer overflow, lost sync\n"));
400 /*FIXME Do something here? */ 399 /*FIXME Do something here? */
401 continue; 400 continue;
402 } 401 }
@@ -414,8 +413,8 @@ resubmit:
414 urb->dev = dev->udev; 413 urb->dev = dev->udev;
415 ret = usb_submit_urb(urb, GFP_ATOMIC); 414 ret = usb_submit_urb(urb, GFP_ATOMIC);
416 if (ret != 0) { 415 if (ret != 0) {
417 STK_ERROR("Error (%d) re-submitting urb in stk_isoc_handler.\n", 416 pr_err("Error (%d) re-submitting urb in stk_isoc_handler\n",
418 ret); 417 ret);
419 } 418 }
420} 419}
421 420
@@ -433,32 +432,31 @@ static int stk_prepare_iso(struct stk_camera *dev)
433 udev = dev->udev; 432 udev = dev->udev;
434 433
435 if (dev->isobufs) 434 if (dev->isobufs)
436 STK_ERROR("isobufs already allocated. Bad\n"); 435 pr_err("isobufs already allocated. Bad\n");
437 else 436 else
438 dev->isobufs = kcalloc(MAX_ISO_BUFS, sizeof(*dev->isobufs), 437 dev->isobufs = kcalloc(MAX_ISO_BUFS, sizeof(*dev->isobufs),
439 GFP_KERNEL); 438 GFP_KERNEL);
440 if (dev->isobufs == NULL) { 439 if (dev->isobufs == NULL) {
441 STK_ERROR("Unable to allocate iso buffers\n"); 440 pr_err("Unable to allocate iso buffers\n");
442 return -ENOMEM; 441 return -ENOMEM;
443 } 442 }
444 for (i = 0; i < MAX_ISO_BUFS; i++) { 443 for (i = 0; i < MAX_ISO_BUFS; i++) {
445 if (dev->isobufs[i].data == NULL) { 444 if (dev->isobufs[i].data == NULL) {
446 kbuf = kzalloc(ISO_BUFFER_SIZE, GFP_KERNEL); 445 kbuf = kzalloc(ISO_BUFFER_SIZE, GFP_KERNEL);
447 if (kbuf == NULL) { 446 if (kbuf == NULL) {
448 STK_ERROR("Failed to allocate iso buffer %d\n", 447 pr_err("Failed to allocate iso buffer %d\n", i);
449 i);
450 goto isobufs_out; 448 goto isobufs_out;
451 } 449 }
452 dev->isobufs[i].data = kbuf; 450 dev->isobufs[i].data = kbuf;
453 } else 451 } else
454 STK_ERROR("isobuf data already allocated\n"); 452 pr_err("isobuf data already allocated\n");
455 if (dev->isobufs[i].urb == NULL) { 453 if (dev->isobufs[i].urb == NULL) {
456 urb = usb_alloc_urb(ISO_FRAMES_PER_DESC, GFP_KERNEL); 454 urb = usb_alloc_urb(ISO_FRAMES_PER_DESC, GFP_KERNEL);
457 if (urb == NULL) 455 if (urb == NULL)
458 goto isobufs_out; 456 goto isobufs_out;
459 dev->isobufs[i].urb = urb; 457 dev->isobufs[i].urb = urb;
460 } else { 458 } else {
461 STK_ERROR("Killing URB\n"); 459 pr_err("Killing URB\n");
462 usb_kill_urb(dev->isobufs[i].urb); 460 usb_kill_urb(dev->isobufs[i].urb);
463 urb = dev->isobufs[i].urb; 461 urb = dev->isobufs[i].urb;
464 } 462 }
@@ -567,7 +565,7 @@ static int stk_prepare_sio_buffers(struct stk_camera *dev, unsigned n_sbufs)
567{ 565{
568 int i; 566 int i;
569 if (dev->sio_bufs != NULL) 567 if (dev->sio_bufs != NULL)
570 STK_ERROR("sio_bufs already allocated\n"); 568 pr_err("sio_bufs already allocated\n");
571 else { 569 else {
572 dev->sio_bufs = kzalloc(n_sbufs * sizeof(struct stk_sio_buffer), 570 dev->sio_bufs = kzalloc(n_sbufs * sizeof(struct stk_sio_buffer),
573 GFP_KERNEL); 571 GFP_KERNEL);
@@ -690,7 +688,7 @@ static ssize_t stk_read(struct file *fp, char __user *buf,
690 spin_lock_irqsave(&dev->spinlock, flags); 688 spin_lock_irqsave(&dev->spinlock, flags);
691 if (list_empty(&dev->sio_full)) { 689 if (list_empty(&dev->sio_full)) {
692 spin_unlock_irqrestore(&dev->spinlock, flags); 690 spin_unlock_irqrestore(&dev->spinlock, flags);
693 STK_ERROR("BUG: No siobufs ready\n"); 691 pr_err("BUG: No siobufs ready\n");
694 return 0; 692 return 0;
695 } 693 }
696 sbuf = list_first_entry(&dev->sio_full, struct stk_sio_buffer, list); 694 sbuf = list_first_entry(&dev->sio_full, struct stk_sio_buffer, list);
@@ -907,7 +905,7 @@ static int stk_vidioc_g_fmt_vid_cap(struct file *filp,
907 stk_sizes[i].m != dev->vsettings.mode; i++) 905 stk_sizes[i].m != dev->vsettings.mode; i++)
908 ; 906 ;
909 if (i == ARRAY_SIZE(stk_sizes)) { 907 if (i == ARRAY_SIZE(stk_sizes)) {
910 STK_ERROR("ERROR: mode invalid\n"); 908 pr_err("ERROR: mode invalid\n");
911 return -EINVAL; 909 return -EINVAL;
912 } 910 }
913 pix_format->width = stk_sizes[i].w; 911 pix_format->width = stk_sizes[i].w;
@@ -985,7 +983,7 @@ static int stk_setup_format(struct stk_camera *dev)
985 stk_sizes[i].m != dev->vsettings.mode) 983 stk_sizes[i].m != dev->vsettings.mode)
986 i++; 984 i++;
987 if (i == ARRAY_SIZE(stk_sizes)) { 985 if (i == ARRAY_SIZE(stk_sizes)) {
988 STK_ERROR("Something is broken in %s\n", __func__); 986 pr_err("Something is broken in %s\n", __func__);
989 return -EFAULT; 987 return -EFAULT;
990 } 988 }
991 /* This registers controls some timings, not sure of what. */ 989 /* This registers controls some timings, not sure of what. */
@@ -1241,7 +1239,7 @@ static void stk_v4l_dev_release(struct video_device *vd)
1241 struct stk_camera *dev = vdev_to_camera(vd); 1239 struct stk_camera *dev = vdev_to_camera(vd);
1242 1240
1243 if (dev->sio_bufs != NULL || dev->isobufs != NULL) 1241 if (dev->sio_bufs != NULL || dev->isobufs != NULL)
1244 STK_ERROR("We are leaking memory\n"); 1242 pr_err("We are leaking memory\n");
1245 usb_put_intf(dev->interface); 1243 usb_put_intf(dev->interface);
1246 kfree(dev); 1244 kfree(dev);
1247} 1245}
@@ -1264,10 +1262,10 @@ static int stk_register_video_device(struct stk_camera *dev)
1264 video_set_drvdata(&dev->vdev, dev); 1262 video_set_drvdata(&dev->vdev, dev);
1265 err = video_register_device(&dev->vdev, VFL_TYPE_GRABBER, -1); 1263 err = video_register_device(&dev->vdev, VFL_TYPE_GRABBER, -1);
1266 if (err) 1264 if (err)
1267 STK_ERROR("v4l registration failed\n"); 1265 pr_err("v4l registration failed\n");
1268 else 1266 else
1269 STK_INFO("Syntek USB2.0 Camera is now controlling device %s\n", 1267 pr_info("Syntek USB2.0 Camera is now controlling device %s\n",
1270 video_device_node_name(&dev->vdev)); 1268 video_device_node_name(&dev->vdev));
1271 return err; 1269 return err;
1272} 1270}
1273 1271
@@ -1288,7 +1286,7 @@ static int stk_camera_probe(struct usb_interface *interface,
1288 1286
1289 dev = kzalloc(sizeof(struct stk_camera), GFP_KERNEL); 1287 dev = kzalloc(sizeof(struct stk_camera), GFP_KERNEL);
1290 if (dev == NULL) { 1288 if (dev == NULL) {
1291 STK_ERROR("Out of memory !\n"); 1289 pr_err("Out of memory !\n");
1292 return -ENOMEM; 1290 return -ENOMEM;
1293 } 1291 }
1294 err = v4l2_device_register(&interface->dev, &dev->v4l2_dev); 1292 err = v4l2_device_register(&interface->dev, &dev->v4l2_dev);
@@ -1352,7 +1350,7 @@ static int stk_camera_probe(struct usb_interface *interface,
1352 } 1350 }
1353 } 1351 }
1354 if (!dev->isoc_ep) { 1352 if (!dev->isoc_ep) {
1355 STK_ERROR("Could not find isoc-in endpoint"); 1353 pr_err("Could not find isoc-in endpoint\n");
1356 err = -ENODEV; 1354 err = -ENODEV;
1357 goto error; 1355 goto error;
1358 } 1356 }
@@ -1387,8 +1385,8 @@ static void stk_camera_disconnect(struct usb_interface *interface)
1387 1385
1388 wake_up_interruptible(&dev->wait_frame); 1386 wake_up_interruptible(&dev->wait_frame);
1389 1387
1390 STK_INFO("Syntek USB2.0 Camera release resources device %s\n", 1388 pr_info("Syntek USB2.0 Camera release resources device %s\n",
1391 video_device_node_name(&dev->vdev)); 1389 video_device_node_name(&dev->vdev));
1392 1390
1393 video_unregister_device(&dev->vdev); 1391 video_unregister_device(&dev->vdev);
1394 v4l2_ctrl_handler_free(&dev->hdl); 1392 v4l2_ctrl_handler_free(&dev->hdl);
diff --git a/drivers/media/usb/stkwebcam/stk-webcam.h b/drivers/media/usb/stkwebcam/stk-webcam.h
index 0284120ce246..5cecbdc97573 100644
--- a/drivers/media/usb/stkwebcam/stk-webcam.h
+++ b/drivers/media/usb/stkwebcam/stk-webcam.h
@@ -31,12 +31,6 @@
31#define ISO_MAX_FRAME_SIZE 3 * 1024 31#define ISO_MAX_FRAME_SIZE 3 * 1024
32#define ISO_BUFFER_SIZE (ISO_FRAMES_PER_DESC * ISO_MAX_FRAME_SIZE) 32#define ISO_BUFFER_SIZE (ISO_FRAMES_PER_DESC * ISO_MAX_FRAME_SIZE)
33 33
34
35#define PREFIX "stkwebcam: "
36#define STK_INFO(str, args...) printk(KERN_INFO PREFIX str, ##args)
37#define STK_ERROR(str, args...) printk(KERN_ERR PREFIX str, ##args)
38#define STK_WARNING(str, args...) printk(KERN_WARNING PREFIX str, ##args)
39
40struct stk_iso_buf { 34struct stk_iso_buf {
41 void *data; 35 void *data;
42 int length; 36 int length;
diff --git a/drivers/media/v4l2-core/tuner-core.c b/drivers/media/v4l2-core/tuner-core.c
index e48b7c032c95..8db45dfc271b 100644
--- a/drivers/media/v4l2-core/tuner-core.c
+++ b/drivers/media/v4l2-core/tuner-core.c
@@ -43,8 +43,6 @@
43 43
44#define UNSET (-1U) 44#define UNSET (-1U)
45 45
46#define PREFIX (t->i2c->dev.driver->name)
47
48/* 46/*
49 * Driver modprobe parameters 47 * Driver modprobe parameters
50 */ 48 */
diff --git a/drivers/mmc/core/block.c b/drivers/mmc/core/block.c
index 8ac59dc80f23..e5938c791330 100644
--- a/drivers/mmc/core/block.c
+++ b/drivers/mmc/core/block.c
@@ -2170,6 +2170,7 @@ static void mmc_blk_remove_req(struct mmc_blk_data *md)
2170 * from being accepted. 2170 * from being accepted.
2171 */ 2171 */
2172 card = md->queue.card; 2172 card = md->queue.card;
2173 queue_flag_set(QUEUE_FLAG_BYPASS, md->queue.queue);
2173 blk_set_queue_dying(md->queue.queue); 2174 blk_set_queue_dying(md->queue.queue);
2174 mmc_cleanup_queue(&md->queue); 2175 mmc_cleanup_queue(&md->queue);
2175 if (md->disk->flags & GENHD_FL_UP) { 2176 if (md->disk->flags & GENHD_FL_UP) {
diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
index a9dfb26972f2..250dc6ec4c82 100644
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -2957,7 +2957,7 @@ static struct dw_mci_board *dw_mci_parse_dt(struct dw_mci *host)
2957 } 2957 }
2958 2958
2959 /* find out number of slots supported */ 2959 /* find out number of slots supported */
2960 if (device_property_read_u32(dev, "num-slots", &pdata->num_slots)) 2960 if (!device_property_read_u32(dev, "num-slots", &pdata->num_slots))
2961 dev_info(dev, "'num-slots' was deprecated.\n"); 2961 dev_info(dev, "'num-slots' was deprecated.\n");
2962 2962
2963 if (device_property_read_u32(dev, "fifo-depth", &pdata->fifo_depth)) 2963 if (device_property_read_u32(dev, "fifo-depth", &pdata->fifo_depth))
diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
index 7c12f3715676..04ff3c97a535 100644
--- a/drivers/mmc/host/omap_hsmmc.c
+++ b/drivers/mmc/host/omap_hsmmc.c
@@ -356,9 +356,6 @@ static int omap_hsmmc_set_power(struct omap_hsmmc_host *host, int power_on,
356 struct mmc_host *mmc = host->mmc; 356 struct mmc_host *mmc = host->mmc;
357 int ret = 0; 357 int ret = 0;
358 358
359 if (mmc_pdata(host)->set_power)
360 return mmc_pdata(host)->set_power(host->dev, power_on, vdd);
361
362 /* 359 /*
363 * If we don't see a Vcc regulator, assume it's a fixed 360 * If we don't see a Vcc regulator, assume it's a fixed
364 * voltage always-on regulator. 361 * voltage always-on regulator.
@@ -366,9 +363,6 @@ static int omap_hsmmc_set_power(struct omap_hsmmc_host *host, int power_on,
366 if (IS_ERR(mmc->supply.vmmc)) 363 if (IS_ERR(mmc->supply.vmmc))
367 return 0; 364 return 0;
368 365
369 if (mmc_pdata(host)->before_set_reg)
370 mmc_pdata(host)->before_set_reg(host->dev, power_on, vdd);
371
372 ret = omap_hsmmc_set_pbias(host, false, 0); 366 ret = omap_hsmmc_set_pbias(host, false, 0);
373 if (ret) 367 if (ret)
374 return ret; 368 return ret;
@@ -400,9 +394,6 @@ static int omap_hsmmc_set_power(struct omap_hsmmc_host *host, int power_on,
400 return ret; 394 return ret;
401 } 395 }
402 396
403 if (mmc_pdata(host)->after_set_reg)
404 mmc_pdata(host)->after_set_reg(host->dev, power_on, vdd);
405
406 return 0; 397 return 0;
407 398
408err_set_voltage: 399err_set_voltage:
@@ -469,8 +460,6 @@ static int omap_hsmmc_reg_get(struct omap_hsmmc_host *host)
469 int ret; 460 int ret;
470 struct mmc_host *mmc = host->mmc; 461 struct mmc_host *mmc = host->mmc;
471 462
472 if (mmc_pdata(host)->set_power)
473 return 0;
474 463
475 ret = mmc_regulator_get_supply(mmc); 464 ret = mmc_regulator_get_supply(mmc);
476 if (ret == -EPROBE_DEFER) 465 if (ret == -EPROBE_DEFER)
diff --git a/drivers/mmc/host/sdhci-of-at91.c b/drivers/mmc/host/sdhci-of-at91.c
index 7611fd679f1a..1485530c3592 100644
--- a/drivers/mmc/host/sdhci-of-at91.c
+++ b/drivers/mmc/host/sdhci-of-at91.c
@@ -31,6 +31,7 @@
31 31
32#define SDMMC_MC1R 0x204 32#define SDMMC_MC1R 0x204
33#define SDMMC_MC1R_DDR BIT(3) 33#define SDMMC_MC1R_DDR BIT(3)
34#define SDMMC_MC1R_FCD BIT(7)
34#define SDMMC_CACR 0x230 35#define SDMMC_CACR 0x230
35#define SDMMC_CACR_CAPWREN BIT(0) 36#define SDMMC_CACR_CAPWREN BIT(0)
36#define SDMMC_CACR_KEY (0x46 << 8) 37#define SDMMC_CACR_KEY (0x46 << 8)
@@ -43,6 +44,15 @@ struct sdhci_at91_priv {
43 struct clk *mainck; 44 struct clk *mainck;
44}; 45};
45 46
47static void sdhci_at91_set_force_card_detect(struct sdhci_host *host)
48{
49 u8 mc1r;
50
51 mc1r = readb(host->ioaddr + SDMMC_MC1R);
52 mc1r |= SDMMC_MC1R_FCD;
53 writeb(mc1r, host->ioaddr + SDMMC_MC1R);
54}
55
46static void sdhci_at91_set_clock(struct sdhci_host *host, unsigned int clock) 56static void sdhci_at91_set_clock(struct sdhci_host *host, unsigned int clock)
47{ 57{
48 u16 clk; 58 u16 clk;
@@ -110,10 +120,18 @@ void sdhci_at91_set_uhs_signaling(struct sdhci_host *host, unsigned int timing)
110 sdhci_set_uhs_signaling(host, timing); 120 sdhci_set_uhs_signaling(host, timing);
111} 121}
112 122
123static void sdhci_at91_reset(struct sdhci_host *host, u8 mask)
124{
125 sdhci_reset(host, mask);
126
127 if (host->mmc->caps & MMC_CAP_NONREMOVABLE)
128 sdhci_at91_set_force_card_detect(host);
129}
130
113static const struct sdhci_ops sdhci_at91_sama5d2_ops = { 131static const struct sdhci_ops sdhci_at91_sama5d2_ops = {
114 .set_clock = sdhci_at91_set_clock, 132 .set_clock = sdhci_at91_set_clock,
115 .set_bus_width = sdhci_set_bus_width, 133 .set_bus_width = sdhci_set_bus_width,
116 .reset = sdhci_reset, 134 .reset = sdhci_at91_reset,
117 .set_uhs_signaling = sdhci_at91_set_uhs_signaling, 135 .set_uhs_signaling = sdhci_at91_set_uhs_signaling,
118 .set_power = sdhci_at91_set_power, 136 .set_power = sdhci_at91_set_power,
119}; 137};
@@ -324,6 +342,21 @@ static int sdhci_at91_probe(struct platform_device *pdev)
324 host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION; 342 host->quirks &= ~SDHCI_QUIRK_BROKEN_CARD_DETECTION;
325 } 343 }
326 344
345 /*
346 * If the device attached to the MMC bus is not removable, it is safer
347 * to set the Force Card Detect bit. People often don't connect the
348 * card detect signal and use this pin for another purpose. If the card
349 * detect pin is not muxed to SDHCI controller, a default value is
350 * used. This value can be different from a SoC revision to another
351 * one. Problems come when this default value is not card present. To
352 * avoid this case, if the device is non removable then the card
353 * detection procedure using the SDMCC_CD signal is bypassed.
354 * This bit is reset when a software reset for all command is performed
355 * so we need to implement our own reset function to set back this bit.
356 */
357 if (host->mmc->caps & MMC_CAP_NONREMOVABLE)
358 sdhci_at91_set_force_card_detect(host);
359
327 pm_runtime_put_autosuspend(&pdev->dev); 360 pm_runtime_put_autosuspend(&pdev->dev);
328 361
329 return 0; 362 return 0;
diff --git a/drivers/mmc/host/sunxi-mmc.c b/drivers/mmc/host/sunxi-mmc.c
index d6fa2214aaae..0fb4e4c119e1 100644
--- a/drivers/mmc/host/sunxi-mmc.c
+++ b/drivers/mmc/host/sunxi-mmc.c
@@ -793,8 +793,12 @@ static int sunxi_mmc_clk_set_rate(struct sunxi_mmc_host *host,
793 } 793 }
794 mmc_writel(host, REG_CLKCR, rval); 794 mmc_writel(host, REG_CLKCR, rval);
795 795
796 if (host->cfg->needs_new_timings) 796 if (host->cfg->needs_new_timings) {
797 mmc_writel(host, REG_SD_NTSR, SDXC_2X_TIMING_MODE); 797 /* Don't touch the delay bits */
798 rval = mmc_readl(host, REG_SD_NTSR);
799 rval |= SDXC_2X_TIMING_MODE;
800 mmc_writel(host, REG_SD_NTSR, rval);
801 }
798 802
799 ret = sunxi_mmc_clk_set_phase(host, ios, rate); 803 ret = sunxi_mmc_clk_set_phase(host, ios, rate);
800 if (ret) 804 if (ret)
diff --git a/drivers/mtd/nand/atmel/nand-controller.c b/drivers/mtd/nand/atmel/nand-controller.c
index d922a88e407f..2c8baa0c2c4e 100644
--- a/drivers/mtd/nand/atmel/nand-controller.c
+++ b/drivers/mtd/nand/atmel/nand-controller.c
@@ -1201,7 +1201,7 @@ static int atmel_smc_nand_prepare_smcconf(struct atmel_nand *nand,
1201 * tRC < 30ns implies EDO mode. This controller does not support this 1201 * tRC < 30ns implies EDO mode. This controller does not support this
1202 * mode. 1202 * mode.
1203 */ 1203 */
1204 if (conf->timings.sdr.tRC_min < 30) 1204 if (conf->timings.sdr.tRC_min < 30000)
1205 return -ENOTSUPP; 1205 return -ENOTSUPP;
1206 1206
1207 atmel_smc_cs_conf_init(smcconf); 1207 atmel_smc_cs_conf_init(smcconf);
diff --git a/drivers/mtd/nand/atmel/pmecc.c b/drivers/mtd/nand/atmel/pmecc.c
index 55a8ee5306ea..8c210a5776bc 100644
--- a/drivers/mtd/nand/atmel/pmecc.c
+++ b/drivers/mtd/nand/atmel/pmecc.c
@@ -945,6 +945,7 @@ struct atmel_pmecc *devm_atmel_pmecc_get(struct device *userdev)
945 */ 945 */
946 struct platform_device *pdev = to_platform_device(userdev); 946 struct platform_device *pdev = to_platform_device(userdev);
947 const struct atmel_pmecc_caps *caps; 947 const struct atmel_pmecc_caps *caps;
948 const struct of_device_id *match;
948 949
949 /* No PMECC engine available. */ 950 /* No PMECC engine available. */
950 if (!of_property_read_bool(userdev->of_node, 951 if (!of_property_read_bool(userdev->of_node,
@@ -953,21 +954,11 @@ struct atmel_pmecc *devm_atmel_pmecc_get(struct device *userdev)
953 954
954 caps = &at91sam9g45_caps; 955 caps = &at91sam9g45_caps;
955 956
956 /* 957 /* Find the caps associated to the NAND dev node. */
957 * Try to find the NFC subnode and extract the associated caps 958 match = of_match_node(atmel_pmecc_legacy_match,
958 * from there. 959 userdev->of_node);
959 */ 960 if (match && match->data)
960 np = of_find_compatible_node(userdev->of_node, NULL, 961 caps = match->data;
961 "atmel,sama5d3-nfc");
962 if (np) {
963 const struct of_device_id *match;
964
965 match = of_match_node(atmel_pmecc_legacy_match, np);
966 if (match && match->data)
967 caps = match->data;
968
969 of_node_put(np);
970 }
971 962
972 pmecc = atmel_pmecc_create(pdev, caps, 1, 2); 963 pmecc = atmel_pmecc_create(pdev, caps, 1, 2);
973 } 964 }
diff --git a/drivers/mtd/nand/nand_base.c b/drivers/mtd/nand/nand_base.c
index 5fa5ddc94834..c6c18b82f8f4 100644
--- a/drivers/mtd/nand/nand_base.c
+++ b/drivers/mtd/nand/nand_base.c
@@ -65,8 +65,14 @@ static int nand_ooblayout_ecc_sp(struct mtd_info *mtd, int section,
65 65
66 if (!section) { 66 if (!section) {
67 oobregion->offset = 0; 67 oobregion->offset = 0;
68 oobregion->length = 4; 68 if (mtd->oobsize == 16)
69 oobregion->length = 4;
70 else
71 oobregion->length = 3;
69 } else { 72 } else {
73 if (mtd->oobsize == 8)
74 return -ERANGE;
75
70 oobregion->offset = 6; 76 oobregion->offset = 6;
71 oobregion->length = ecc->total - 4; 77 oobregion->length = ecc->total - 4;
72 } 78 }
@@ -1125,7 +1131,9 @@ static int nand_setup_data_interface(struct nand_chip *chip, int chipnr)
1125 * Ensure the timing mode has been changed on the chip side 1131 * Ensure the timing mode has been changed on the chip side
1126 * before changing timings on the controller side. 1132 * before changing timings on the controller side.
1127 */ 1133 */
1128 if (chip->onfi_version) { 1134 if (chip->onfi_version &&
1135 (le16_to_cpu(chip->onfi_params.opt_cmd) &
1136 ONFI_OPT_CMD_SET_GET_FEATURES)) {
1129 u8 tmode_param[ONFI_SUBFEATURE_PARAM_LEN] = { 1137 u8 tmode_param[ONFI_SUBFEATURE_PARAM_LEN] = {
1130 chip->onfi_timing_mode_default, 1138 chip->onfi_timing_mode_default,
1131 }; 1139 };
@@ -2741,7 +2749,6 @@ static int nand_write_page_syndrome(struct mtd_info *mtd,
2741 * @buf: the data to write 2749 * @buf: the data to write
2742 * @oob_required: must write chip->oob_poi to OOB 2750 * @oob_required: must write chip->oob_poi to OOB
2743 * @page: page number to write 2751 * @page: page number to write
2744 * @cached: cached programming
2745 * @raw: use _raw version of write_page 2752 * @raw: use _raw version of write_page
2746 */ 2753 */
2747static int nand_write_page(struct mtd_info *mtd, struct nand_chip *chip, 2754static int nand_write_page(struct mtd_info *mtd, struct nand_chip *chip,
diff --git a/drivers/mtd/nand/nand_timings.c b/drivers/mtd/nand/nand_timings.c
index f06312df3669..7e36d7d13c26 100644
--- a/drivers/mtd/nand/nand_timings.c
+++ b/drivers/mtd/nand/nand_timings.c
@@ -311,9 +311,9 @@ int onfi_init_data_interface(struct nand_chip *chip,
311 struct nand_sdr_timings *timings = &iface->timings.sdr; 311 struct nand_sdr_timings *timings = &iface->timings.sdr;
312 312
313 /* microseconds -> picoseconds */ 313 /* microseconds -> picoseconds */
314 timings->tPROG_max = 1000000UL * le16_to_cpu(params->t_prog); 314 timings->tPROG_max = 1000000ULL * le16_to_cpu(params->t_prog);
315 timings->tBERS_max = 1000000UL * le16_to_cpu(params->t_bers); 315 timings->tBERS_max = 1000000ULL * le16_to_cpu(params->t_bers);
316 timings->tR_max = 1000000UL * le16_to_cpu(params->t_r); 316 timings->tR_max = 1000000ULL * le16_to_cpu(params->t_r);
317 317
318 /* nanoseconds -> picoseconds */ 318 /* nanoseconds -> picoseconds */
319 timings->tCCS_min = 1000UL * le16_to_cpu(params->t_ccs); 319 timings->tCCS_min = 1000UL * le16_to_cpu(params->t_ccs);
diff --git a/drivers/mtd/nand/sunxi_nand.c b/drivers/mtd/nand/sunxi_nand.c
index d0b6f8f9f297..6abd142b1324 100644
--- a/drivers/mtd/nand/sunxi_nand.c
+++ b/drivers/mtd/nand/sunxi_nand.c
@@ -1728,6 +1728,10 @@ static int sunxi_nfc_setup_data_interface(struct mtd_info *mtd, int csline,
1728 */ 1728 */
1729 chip->clk_rate = NSEC_PER_SEC / min_clk_period; 1729 chip->clk_rate = NSEC_PER_SEC / min_clk_period;
1730 real_clk_rate = clk_round_rate(nfc->mod_clk, chip->clk_rate); 1730 real_clk_rate = clk_round_rate(nfc->mod_clk, chip->clk_rate);
1731 if (real_clk_rate <= 0) {
1732 dev_err(nfc->dev, "Unable to round clk %lu\n", chip->clk_rate);
1733 return -EINVAL;
1734 }
1731 1735
1732 /* 1736 /*
1733 * ONFI specification 3.1, paragraph 4.15.2 dictates that EDO data 1737 * ONFI specification 3.1, paragraph 4.15.2 dictates that EDO data
diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
index 181839d6fbea..9bee6c1c70cc 100644
--- a/drivers/net/bonding/bond_main.c
+++ b/drivers/net/bonding/bond_main.c
@@ -2050,6 +2050,7 @@ static int bond_miimon_inspect(struct bonding *bond)
2050 continue; 2050 continue;
2051 2051
2052 bond_propose_link_state(slave, BOND_LINK_FAIL); 2052 bond_propose_link_state(slave, BOND_LINK_FAIL);
2053 commit++;
2053 slave->delay = bond->params.downdelay; 2054 slave->delay = bond->params.downdelay;
2054 if (slave->delay) { 2055 if (slave->delay) {
2055 netdev_info(bond->dev, "link status down for %sinterface %s, disabling it in %d ms\n", 2056 netdev_info(bond->dev, "link status down for %sinterface %s, disabling it in %d ms\n",
@@ -2088,6 +2089,7 @@ static int bond_miimon_inspect(struct bonding *bond)
2088 continue; 2089 continue;
2089 2090
2090 bond_propose_link_state(slave, BOND_LINK_BACK); 2091 bond_propose_link_state(slave, BOND_LINK_BACK);
2092 commit++;
2091 slave->delay = bond->params.updelay; 2093 slave->delay = bond->params.updelay;
2092 2094
2093 if (slave->delay) { 2095 if (slave->delay) {
diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c
index 1e46418a3b74..264b281eb86b 100644
--- a/drivers/net/dsa/mt7530.c
+++ b/drivers/net/dsa/mt7530.c
@@ -625,6 +625,44 @@ static void mt7530_adjust_link(struct dsa_switch *ds, int port,
625 * all finished. 625 * all finished.
626 */ 626 */
627 mt7623_pad_clk_setup(ds); 627 mt7623_pad_clk_setup(ds);
628 } else {
629 u16 lcl_adv = 0, rmt_adv = 0;
630 u8 flowctrl;
631 u32 mcr = PMCR_USERP_LINK | PMCR_FORCE_MODE;
632
633 switch (phydev->speed) {
634 case SPEED_1000:
635 mcr |= PMCR_FORCE_SPEED_1000;
636 break;
637 case SPEED_100:
638 mcr |= PMCR_FORCE_SPEED_100;
639 break;
640 };
641
642 if (phydev->link)
643 mcr |= PMCR_FORCE_LNK;
644
645 if (phydev->duplex) {
646 mcr |= PMCR_FORCE_FDX;
647
648 if (phydev->pause)
649 rmt_adv = LPA_PAUSE_CAP;
650 if (phydev->asym_pause)
651 rmt_adv |= LPA_PAUSE_ASYM;
652
653 if (phydev->advertising & ADVERTISED_Pause)
654 lcl_adv |= ADVERTISE_PAUSE_CAP;
655 if (phydev->advertising & ADVERTISED_Asym_Pause)
656 lcl_adv |= ADVERTISE_PAUSE_ASYM;
657
658 flowctrl = mii_resolve_flowctrl_fdx(lcl_adv, rmt_adv);
659
660 if (flowctrl & FLOW_CTRL_TX)
661 mcr |= PMCR_TX_FC_EN;
662 if (flowctrl & FLOW_CTRL_RX)
663 mcr |= PMCR_RX_FC_EN;
664 }
665 mt7530_write(priv, MT7530_PMCR_P(port), mcr);
628 } 666 }
629} 667}
630 668
diff --git a/drivers/net/dsa/mt7530.h b/drivers/net/dsa/mt7530.h
index b83d76b99802..74db9822eb40 100644
--- a/drivers/net/dsa/mt7530.h
+++ b/drivers/net/dsa/mt7530.h
@@ -151,6 +151,7 @@ enum mt7530_stp_state {
151#define PMCR_TX_FC_EN BIT(5) 151#define PMCR_TX_FC_EN BIT(5)
152#define PMCR_RX_FC_EN BIT(4) 152#define PMCR_RX_FC_EN BIT(4)
153#define PMCR_FORCE_SPEED_1000 BIT(3) 153#define PMCR_FORCE_SPEED_1000 BIT(3)
154#define PMCR_FORCE_SPEED_100 BIT(2)
154#define PMCR_FORCE_FDX BIT(1) 155#define PMCR_FORCE_FDX BIT(1)
155#define PMCR_FORCE_LNK BIT(0) 156#define PMCR_FORCE_LNK BIT(0)
156#define PMCR_COMMON_LINK (PMCR_IFG_XMIT(1) | PMCR_MAC_MODE | \ 157#define PMCR_COMMON_LINK (PMCR_IFG_XMIT(1) | PMCR_MAC_MODE | \
diff --git a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c
index 86058a9f3417..1d307f2def2d 100644
--- a/drivers/net/ethernet/apm/xgene/xgene_enet_main.c
+++ b/drivers/net/ethernet/apm/xgene/xgene_enet_main.c
@@ -1785,9 +1785,9 @@ static int xgene_enet_get_resources(struct xgene_enet_pdata *pdata)
1785 1785
1786 xgene_enet_gpiod_get(pdata); 1786 xgene_enet_gpiod_get(pdata);
1787 1787
1788 if (pdata->phy_mode != PHY_INTERFACE_MODE_SGMII) { 1788 pdata->clk = devm_clk_get(&pdev->dev, NULL);
1789 pdata->clk = devm_clk_get(&pdev->dev, NULL); 1789 if (IS_ERR(pdata->clk)) {
1790 if (IS_ERR(pdata->clk)) { 1790 if (pdata->phy_mode != PHY_INTERFACE_MODE_SGMII) {
1791 /* Abort if the clock is defined but couldn't be 1791 /* Abort if the clock is defined but couldn't be
1792 * retrived. Always abort if the clock is missing on 1792 * retrived. Always abort if the clock is missing on
1793 * DT system as the driver can't cope with this case. 1793 * DT system as the driver can't cope with this case.
diff --git a/drivers/net/ethernet/aurora/nb8800.c b/drivers/net/ethernet/aurora/nb8800.c
index 041cfb7952f8..e94159507847 100644
--- a/drivers/net/ethernet/aurora/nb8800.c
+++ b/drivers/net/ethernet/aurora/nb8800.c
@@ -609,7 +609,7 @@ static void nb8800_mac_config(struct net_device *dev)
609 mac_mode |= HALF_DUPLEX; 609 mac_mode |= HALF_DUPLEX;
610 610
611 if (gigabit) { 611 if (gigabit) {
612 if (priv->phy_mode == PHY_INTERFACE_MODE_RGMII) 612 if (phy_interface_is_rgmii(dev->phydev))
613 mac_mode |= RGMII_MODE; 613 mac_mode |= RGMII_MODE;
614 614
615 mac_mode |= GMAC_MODE; 615 mac_mode |= GMAC_MODE;
@@ -1268,11 +1268,10 @@ static int nb8800_tangox_init(struct net_device *dev)
1268 break; 1268 break;
1269 1269
1270 case PHY_INTERFACE_MODE_RGMII: 1270 case PHY_INTERFACE_MODE_RGMII:
1271 pad_mode = PAD_MODE_RGMII; 1271 case PHY_INTERFACE_MODE_RGMII_ID:
1272 break; 1272 case PHY_INTERFACE_MODE_RGMII_RXID:
1273
1274 case PHY_INTERFACE_MODE_RGMII_TXID: 1273 case PHY_INTERFACE_MODE_RGMII_TXID:
1275 pad_mode = PAD_MODE_RGMII | PAD_MODE_GTX_CLK_DELAY; 1274 pad_mode = PAD_MODE_RGMII;
1276 break; 1275 break;
1277 1276
1278 default: 1277 default:
diff --git a/drivers/net/ethernet/broadcom/b44.c b/drivers/net/ethernet/broadcom/b44.c
index f411936b744c..a1125d10c825 100644
--- a/drivers/net/ethernet/broadcom/b44.c
+++ b/drivers/net/ethernet/broadcom/b44.c
@@ -2368,6 +2368,7 @@ static int b44_init_one(struct ssb_device *sdev,
2368 bp->msg_enable = netif_msg_init(b44_debug, B44_DEF_MSG_ENABLE); 2368 bp->msg_enable = netif_msg_init(b44_debug, B44_DEF_MSG_ENABLE);
2369 2369
2370 spin_lock_init(&bp->lock); 2370 spin_lock_init(&bp->lock);
2371 u64_stats_init(&bp->hw_stats.syncp);
2371 2372
2372 bp->rx_pending = B44_DEF_RX_RING_PENDING; 2373 bp->rx_pending = B44_DEF_RX_RING_PENDING;
2373 bp->tx_pending = B44_DEF_TX_RING_PENDING; 2374 bp->tx_pending = B44_DEF_TX_RING_PENDING;
diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
index 7b0b399aaedd..a981c4ee9d72 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c
@@ -3669,7 +3669,7 @@ static int bcmgenet_resume(struct device *d)
3669 3669
3670 phy_init_hw(priv->phydev); 3670 phy_init_hw(priv->phydev);
3671 /* Speed settings must be restored */ 3671 /* Speed settings must be restored */
3672 bcmgenet_mii_config(priv->dev); 3672 bcmgenet_mii_config(priv->dev, false);
3673 3673
3674 /* disable ethernet MAC while updating its registers */ 3674 /* disable ethernet MAC while updating its registers */
3675 umac_enable_set(priv, CMD_TX_EN | CMD_RX_EN, false); 3675 umac_enable_set(priv, CMD_TX_EN | CMD_RX_EN, false);
diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.h b/drivers/net/ethernet/broadcom/genet/bcmgenet.h
index b9344de669f8..3a34fdba5301 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmgenet.h
+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.h
@@ -698,7 +698,7 @@ GENET_IO_MACRO(rbuf, GENET_RBUF_OFF);
698 698
699/* MDIO routines */ 699/* MDIO routines */
700int bcmgenet_mii_init(struct net_device *dev); 700int bcmgenet_mii_init(struct net_device *dev);
701int bcmgenet_mii_config(struct net_device *dev); 701int bcmgenet_mii_config(struct net_device *dev, bool init);
702int bcmgenet_mii_probe(struct net_device *dev); 702int bcmgenet_mii_probe(struct net_device *dev);
703void bcmgenet_mii_exit(struct net_device *dev); 703void bcmgenet_mii_exit(struct net_device *dev);
704void bcmgenet_mii_reset(struct net_device *dev); 704void bcmgenet_mii_reset(struct net_device *dev);
diff --git a/drivers/net/ethernet/broadcom/genet/bcmmii.c b/drivers/net/ethernet/broadcom/genet/bcmmii.c
index 071fcbd14e6a..30cb97b4a1d7 100644
--- a/drivers/net/ethernet/broadcom/genet/bcmmii.c
+++ b/drivers/net/ethernet/broadcom/genet/bcmmii.c
@@ -238,7 +238,7 @@ static void bcmgenet_moca_phy_setup(struct bcmgenet_priv *priv)
238 bcmgenet_fixed_phy_link_update); 238 bcmgenet_fixed_phy_link_update);
239} 239}
240 240
241int bcmgenet_mii_config(struct net_device *dev) 241int bcmgenet_mii_config(struct net_device *dev, bool init)
242{ 242{
243 struct bcmgenet_priv *priv = netdev_priv(dev); 243 struct bcmgenet_priv *priv = netdev_priv(dev);
244 struct phy_device *phydev = priv->phydev; 244 struct phy_device *phydev = priv->phydev;
@@ -327,7 +327,8 @@ int bcmgenet_mii_config(struct net_device *dev)
327 bcmgenet_ext_writel(priv, reg, EXT_RGMII_OOB_CTRL); 327 bcmgenet_ext_writel(priv, reg, EXT_RGMII_OOB_CTRL);
328 } 328 }
329 329
330 dev_info_once(kdev, "configuring instance for %s\n", phy_name); 330 if (init)
331 dev_info(kdev, "configuring instance for %s\n", phy_name);
331 332
332 return 0; 333 return 0;
333} 334}
@@ -375,7 +376,7 @@ int bcmgenet_mii_probe(struct net_device *dev)
375 * PHY speed which is needed for bcmgenet_mii_config() to configure 376 * PHY speed which is needed for bcmgenet_mii_config() to configure
376 * things appropriately. 377 * things appropriately.
377 */ 378 */
378 ret = bcmgenet_mii_config(dev); 379 ret = bcmgenet_mii_config(dev, true);
379 if (ret) { 380 if (ret) {
380 phy_disconnect(priv->phydev); 381 phy_disconnect(priv->phydev);
381 return ret; 382 return ret;
diff --git a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
index 79112563a25a..5e5c4d7796b8 100644
--- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
+++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
@@ -292,11 +292,30 @@ static void bgx_sgmii_change_link_state(struct lmac *lmac)
292 u64 cmr_cfg; 292 u64 cmr_cfg;
293 u64 port_cfg = 0; 293 u64 port_cfg = 0;
294 u64 misc_ctl = 0; 294 u64 misc_ctl = 0;
295 bool tx_en, rx_en;
295 296
296 cmr_cfg = bgx_reg_read(bgx, lmac->lmacid, BGX_CMRX_CFG); 297 cmr_cfg = bgx_reg_read(bgx, lmac->lmacid, BGX_CMRX_CFG);
297 cmr_cfg &= ~CMR_EN; 298 tx_en = cmr_cfg & CMR_PKT_TX_EN;
299 rx_en = cmr_cfg & CMR_PKT_RX_EN;
300 cmr_cfg &= ~(CMR_PKT_RX_EN | CMR_PKT_TX_EN);
298 bgx_reg_write(bgx, lmac->lmacid, BGX_CMRX_CFG, cmr_cfg); 301 bgx_reg_write(bgx, lmac->lmacid, BGX_CMRX_CFG, cmr_cfg);
299 302
303 /* Wait for BGX RX to be idle */
304 if (bgx_poll_reg(bgx, lmac->lmacid, BGX_GMP_GMI_PRTX_CFG,
305 GMI_PORT_CFG_RX_IDLE, false)) {
306 dev_err(&bgx->pdev->dev, "BGX%d LMAC%d GMI RX not idle\n",
307 bgx->bgx_id, lmac->lmacid);
308 return;
309 }
310
311 /* Wait for BGX TX to be idle */
312 if (bgx_poll_reg(bgx, lmac->lmacid, BGX_GMP_GMI_PRTX_CFG,
313 GMI_PORT_CFG_TX_IDLE, false)) {
314 dev_err(&bgx->pdev->dev, "BGX%d LMAC%d GMI TX not idle\n",
315 bgx->bgx_id, lmac->lmacid);
316 return;
317 }
318
300 port_cfg = bgx_reg_read(bgx, lmac->lmacid, BGX_GMP_GMI_PRTX_CFG); 319 port_cfg = bgx_reg_read(bgx, lmac->lmacid, BGX_GMP_GMI_PRTX_CFG);
301 misc_ctl = bgx_reg_read(bgx, lmac->lmacid, BGX_GMP_PCS_MISCX_CTL); 320 misc_ctl = bgx_reg_read(bgx, lmac->lmacid, BGX_GMP_PCS_MISCX_CTL);
302 321
@@ -347,10 +366,8 @@ static void bgx_sgmii_change_link_state(struct lmac *lmac)
347 bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_PCS_MISCX_CTL, misc_ctl); 366 bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_PCS_MISCX_CTL, misc_ctl);
348 bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_GMI_PRTX_CFG, port_cfg); 367 bgx_reg_write(bgx, lmac->lmacid, BGX_GMP_GMI_PRTX_CFG, port_cfg);
349 368
350 port_cfg = bgx_reg_read(bgx, lmac->lmacid, BGX_GMP_GMI_PRTX_CFG); 369 /* Restore CMR config settings */
351 370 cmr_cfg |= (rx_en ? CMR_PKT_RX_EN : 0) | (tx_en ? CMR_PKT_TX_EN : 0);
352 /* Re-enable lmac */
353 cmr_cfg |= CMR_EN;
354 bgx_reg_write(bgx, lmac->lmacid, BGX_CMRX_CFG, cmr_cfg); 371 bgx_reg_write(bgx, lmac->lmacid, BGX_CMRX_CFG, cmr_cfg);
355 372
356 if (bgx->is_rgx && (cmr_cfg & (CMR_PKT_RX_EN | CMR_PKT_TX_EN))) 373 if (bgx->is_rgx && (cmr_cfg & (CMR_PKT_RX_EN | CMR_PKT_TX_EN)))
diff --git a/drivers/net/ethernet/cavium/thunder/thunder_bgx.h b/drivers/net/ethernet/cavium/thunder/thunder_bgx.h
index 6b7fe6fdd13b..23acdc5ab896 100644
--- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.h
+++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.h
@@ -170,6 +170,8 @@
170#define GMI_PORT_CFG_DUPLEX BIT_ULL(2) 170#define GMI_PORT_CFG_DUPLEX BIT_ULL(2)
171#define GMI_PORT_CFG_SLOT_TIME BIT_ULL(3) 171#define GMI_PORT_CFG_SLOT_TIME BIT_ULL(3)
172#define GMI_PORT_CFG_SPEED_MSB BIT_ULL(8) 172#define GMI_PORT_CFG_SPEED_MSB BIT_ULL(8)
173#define GMI_PORT_CFG_RX_IDLE BIT_ULL(12)
174#define GMI_PORT_CFG_TX_IDLE BIT_ULL(13)
173#define BGX_GMP_GMI_RXX_JABBER 0x38038 175#define BGX_GMP_GMI_RXX_JABBER 0x38038
174#define BGX_GMP_GMI_TXX_THRESH 0x38210 176#define BGX_GMP_GMI_TXX_THRESH 0x38210
175#define BGX_GMP_GMI_TXX_APPEND 0x38218 177#define BGX_GMP_GMI_TXX_APPEND 0x38218
diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c
index 95bf5e89cfd1..34dae51effd4 100644
--- a/drivers/net/ethernet/faraday/ftgmac100.c
+++ b/drivers/net/ethernet/faraday/ftgmac100.c
@@ -125,7 +125,7 @@ static int ftgmac100_reset_mac(struct ftgmac100 *priv, u32 maccr)
125 iowrite32(maccr, priv->base + FTGMAC100_OFFSET_MACCR); 125 iowrite32(maccr, priv->base + FTGMAC100_OFFSET_MACCR);
126 iowrite32(maccr | FTGMAC100_MACCR_SW_RST, 126 iowrite32(maccr | FTGMAC100_MACCR_SW_RST,
127 priv->base + FTGMAC100_OFFSET_MACCR); 127 priv->base + FTGMAC100_OFFSET_MACCR);
128 for (i = 0; i < 50; i++) { 128 for (i = 0; i < 200; i++) {
129 unsigned int maccr; 129 unsigned int maccr;
130 130
131 maccr = ioread32(priv->base + FTGMAC100_OFFSET_MACCR); 131 maccr = ioread32(priv->base + FTGMAC100_OFFSET_MACCR);
@@ -392,7 +392,7 @@ static int ftgmac100_alloc_rx_buf(struct ftgmac100 *priv, unsigned int entry,
392 struct net_device *netdev = priv->netdev; 392 struct net_device *netdev = priv->netdev;
393 struct sk_buff *skb; 393 struct sk_buff *skb;
394 dma_addr_t map; 394 dma_addr_t map;
395 int err; 395 int err = 0;
396 396
397 skb = netdev_alloc_skb_ip_align(netdev, RX_BUF_SIZE); 397 skb = netdev_alloc_skb_ip_align(netdev, RX_BUF_SIZE);
398 if (unlikely(!skb)) { 398 if (unlikely(!skb)) {
@@ -428,7 +428,7 @@ static int ftgmac100_alloc_rx_buf(struct ftgmac100 *priv, unsigned int entry,
428 else 428 else
429 rxdes->rxdes0 = 0; 429 rxdes->rxdes0 = 0;
430 430
431 return 0; 431 return err;
432} 432}
433 433
434static unsigned int ftgmac100_next_rx_pointer(struct ftgmac100 *priv, 434static unsigned int ftgmac100_next_rx_pointer(struct ftgmac100 *priv,
@@ -1682,6 +1682,7 @@ static int ftgmac100_setup_mdio(struct net_device *netdev)
1682 priv->mii_bus->name = "ftgmac100_mdio"; 1682 priv->mii_bus->name = "ftgmac100_mdio";
1683 snprintf(priv->mii_bus->id, MII_BUS_ID_SIZE, "%s-%d", 1683 snprintf(priv->mii_bus->id, MII_BUS_ID_SIZE, "%s-%d",
1684 pdev->name, pdev->id); 1684 pdev->name, pdev->id);
1685 priv->mii_bus->parent = priv->dev;
1685 priv->mii_bus->priv = priv->netdev; 1686 priv->mii_bus->priv = priv->netdev;
1686 priv->mii_bus->read = ftgmac100_mdiobus_read; 1687 priv->mii_bus->read = ftgmac100_mdiobus_read;
1687 priv->mii_bus->write = ftgmac100_mdiobus_write; 1688 priv->mii_bus->write = ftgmac100_mdiobus_write;
diff --git a/drivers/net/ethernet/ibm/ibmvnic.c b/drivers/net/ethernet/ibm/ibmvnic.c
index a3e694679635..c45e8e3b82d3 100644
--- a/drivers/net/ethernet/ibm/ibmvnic.c
+++ b/drivers/net/ethernet/ibm/ibmvnic.c
@@ -111,6 +111,7 @@ static void send_request_map(struct ibmvnic_adapter *, dma_addr_t, __be32, u8);
111static void send_request_unmap(struct ibmvnic_adapter *, u8); 111static void send_request_unmap(struct ibmvnic_adapter *, u8);
112static void send_login(struct ibmvnic_adapter *adapter); 112static void send_login(struct ibmvnic_adapter *adapter);
113static void send_cap_queries(struct ibmvnic_adapter *adapter); 113static void send_cap_queries(struct ibmvnic_adapter *adapter);
114static int init_sub_crqs(struct ibmvnic_adapter *);
114static int init_sub_crq_irqs(struct ibmvnic_adapter *adapter); 115static int init_sub_crq_irqs(struct ibmvnic_adapter *adapter);
115static int ibmvnic_init(struct ibmvnic_adapter *); 116static int ibmvnic_init(struct ibmvnic_adapter *);
116static void release_crq_queue(struct ibmvnic_adapter *); 117static void release_crq_queue(struct ibmvnic_adapter *);
@@ -651,6 +652,7 @@ static int ibmvnic_login(struct net_device *netdev)
651 struct ibmvnic_adapter *adapter = netdev_priv(netdev); 652 struct ibmvnic_adapter *adapter = netdev_priv(netdev);
652 unsigned long timeout = msecs_to_jiffies(30000); 653 unsigned long timeout = msecs_to_jiffies(30000);
653 struct device *dev = &adapter->vdev->dev; 654 struct device *dev = &adapter->vdev->dev;
655 int rc;
654 656
655 do { 657 do {
656 if (adapter->renegotiate) { 658 if (adapter->renegotiate) {
@@ -664,6 +666,18 @@ static int ibmvnic_login(struct net_device *netdev)
664 dev_err(dev, "Capabilities query timeout\n"); 666 dev_err(dev, "Capabilities query timeout\n");
665 return -1; 667 return -1;
666 } 668 }
669 rc = init_sub_crqs(adapter);
670 if (rc) {
671 dev_err(dev,
672 "Initialization of SCRQ's failed\n");
673 return -1;
674 }
675 rc = init_sub_crq_irqs(adapter);
676 if (rc) {
677 dev_err(dev,
678 "Initialization of SCRQ's irqs failed\n");
679 return -1;
680 }
667 } 681 }
668 682
669 reinit_completion(&adapter->init_done); 683 reinit_completion(&adapter->init_done);
@@ -3004,7 +3018,6 @@ static void handle_request_cap_rsp(union ibmvnic_crq *crq,
3004 *req_value, 3018 *req_value,
3005 (long int)be64_to_cpu(crq->request_capability_rsp. 3019 (long int)be64_to_cpu(crq->request_capability_rsp.
3006 number), name); 3020 number), name);
3007 release_sub_crqs(adapter);
3008 *req_value = be64_to_cpu(crq->request_capability_rsp.number); 3021 *req_value = be64_to_cpu(crq->request_capability_rsp.number);
3009 ibmvnic_send_req_caps(adapter, 1); 3022 ibmvnic_send_req_caps(adapter, 1);
3010 return; 3023 return;
diff --git a/drivers/net/ethernet/intel/i40e/i40e_txrx.c b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
index b936febc315a..2194960d5855 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_txrx.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_txrx.c
@@ -1113,6 +1113,8 @@ int i40e_setup_tx_descriptors(struct i40e_ring *tx_ring)
1113 if (!tx_ring->tx_bi) 1113 if (!tx_ring->tx_bi)
1114 goto err; 1114 goto err;
1115 1115
1116 u64_stats_init(&tx_ring->syncp);
1117
1116 /* round up to nearest 4K */ 1118 /* round up to nearest 4K */
1117 tx_ring->size = tx_ring->count * sizeof(struct i40e_tx_desc); 1119 tx_ring->size = tx_ring->count * sizeof(struct i40e_tx_desc);
1118 /* add u32 for head writeback, align after this takes care of 1120 /* add u32 for head writeback, align after this takes care of
diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
index 084c53582793..032f8ac06357 100644
--- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
+++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
@@ -2988,6 +2988,8 @@ int ixgbevf_setup_tx_resources(struct ixgbevf_ring *tx_ring)
2988 if (!tx_ring->tx_buffer_info) 2988 if (!tx_ring->tx_buffer_info)
2989 goto err; 2989 goto err;
2990 2990
2991 u64_stats_init(&tx_ring->syncp);
2992
2991 /* round up to nearest 4K */ 2993 /* round up to nearest 4K */
2992 tx_ring->size = tx_ring->count * sizeof(union ixgbe_adv_tx_desc); 2994 tx_ring->size = tx_ring->count * sizeof(union ixgbe_adv_tx_desc);
2993 tx_ring->size = ALIGN(tx_ring->size, 4096); 2995 tx_ring->size = ALIGN(tx_ring->size, 4096);
@@ -3046,6 +3048,8 @@ int ixgbevf_setup_rx_resources(struct ixgbevf_ring *rx_ring)
3046 if (!rx_ring->rx_buffer_info) 3048 if (!rx_ring->rx_buffer_info)
3047 goto err; 3049 goto err;
3048 3050
3051 u64_stats_init(&rx_ring->syncp);
3052
3049 /* Round up to nearest 4K */ 3053 /* Round up to nearest 4K */
3050 rx_ring->size = rx_ring->count * sizeof(union ixgbe_adv_rx_desc); 3054 rx_ring->size = rx_ring->count * sizeof(union ixgbe_adv_rx_desc);
3051 rx_ring->size = ALIGN(rx_ring->size, 4096); 3055 rx_ring->size = ALIGN(rx_ring->size, 4096);
diff --git a/drivers/net/ethernet/marvell/mv643xx_eth.c b/drivers/net/ethernet/marvell/mv643xx_eth.c
index 5794d98d946f..9c94ea9b2b80 100644
--- a/drivers/net/ethernet/marvell/mv643xx_eth.c
+++ b/drivers/net/ethernet/marvell/mv643xx_eth.c
@@ -2734,7 +2734,7 @@ static int mv643xx_eth_shared_of_add_port(struct platform_device *pdev,
2734 ppd.shared = pdev; 2734 ppd.shared = pdev;
2735 2735
2736 memset(&res, 0, sizeof(res)); 2736 memset(&res, 0, sizeof(res));
2737 if (!of_irq_to_resource(pnp, 0, &res)) { 2737 if (of_irq_to_resource(pnp, 0, &res) <= 0) {
2738 dev_err(&pdev->dev, "missing interrupt on %s\n", pnp->name); 2738 dev_err(&pdev->dev, "missing interrupt on %s\n", pnp->name);
2739 return -EINVAL; 2739 return -EINVAL;
2740 } 2740 }
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index b3d0c2e6347a..e588a0cdb074 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -22,6 +22,7 @@
22#include <linux/if_vlan.h> 22#include <linux/if_vlan.h>
23#include <linux/reset.h> 23#include <linux/reset.h>
24#include <linux/tcp.h> 24#include <linux/tcp.h>
25#include <linux/interrupt.h>
25 26
26#include "mtk_eth_soc.h" 27#include "mtk_eth_soc.h"
27 28
@@ -947,6 +948,10 @@ static int mtk_poll_rx(struct napi_struct *napi, int budget,
947 RX_DMA_FPORT_MASK; 948 RX_DMA_FPORT_MASK;
948 mac--; 949 mac--;
949 950
951 if (unlikely(mac < 0 || mac >= MTK_MAC_COUNT ||
952 !eth->netdev[mac]))
953 goto release_desc;
954
950 netdev = eth->netdev[mac]; 955 netdev = eth->netdev[mac];
951 956
952 if (unlikely(test_bit(MTK_RESETTING, &eth->state))) 957 if (unlikely(test_bit(MTK_RESETTING, &eth->state)))
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
index c751a1d434ad..3d4e4a5d00d1 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_ethtool.c
@@ -223,6 +223,7 @@ static void mlx4_en_get_wol(struct net_device *netdev,
223 struct ethtool_wolinfo *wol) 223 struct ethtool_wolinfo *wol)
224{ 224{
225 struct mlx4_en_priv *priv = netdev_priv(netdev); 225 struct mlx4_en_priv *priv = netdev_priv(netdev);
226 struct mlx4_caps *caps = &priv->mdev->dev->caps;
226 int err = 0; 227 int err = 0;
227 u64 config = 0; 228 u64 config = 0;
228 u64 mask; 229 u64 mask;
@@ -235,24 +236,24 @@ static void mlx4_en_get_wol(struct net_device *netdev,
235 mask = (priv->port == 1) ? MLX4_DEV_CAP_FLAG_WOL_PORT1 : 236 mask = (priv->port == 1) ? MLX4_DEV_CAP_FLAG_WOL_PORT1 :
236 MLX4_DEV_CAP_FLAG_WOL_PORT2; 237 MLX4_DEV_CAP_FLAG_WOL_PORT2;
237 238
238 if (!(priv->mdev->dev->caps.flags & mask)) { 239 if (!(caps->flags & mask)) {
239 wol->supported = 0; 240 wol->supported = 0;
240 wol->wolopts = 0; 241 wol->wolopts = 0;
241 return; 242 return;
242 } 243 }
243 244
245 if (caps->wol_port[priv->port])
246 wol->supported = WAKE_MAGIC;
247 else
248 wol->supported = 0;
249
244 err = mlx4_wol_read(priv->mdev->dev, &config, priv->port); 250 err = mlx4_wol_read(priv->mdev->dev, &config, priv->port);
245 if (err) { 251 if (err) {
246 en_err(priv, "Failed to get WoL information\n"); 252 en_err(priv, "Failed to get WoL information\n");
247 return; 253 return;
248 } 254 }
249 255
250 if (config & MLX4_EN_WOL_MAGIC) 256 if ((config & MLX4_EN_WOL_ENABLED) && (config & MLX4_EN_WOL_MAGIC))
251 wol->supported = WAKE_MAGIC;
252 else
253 wol->supported = 0;
254
255 if (config & MLX4_EN_WOL_ENABLED)
256 wol->wolopts = WAKE_MAGIC; 257 wol->wolopts = WAKE_MAGIC;
257 else 258 else
258 wol->wolopts = 0; 259 wol->wolopts = 0;
diff --git a/drivers/net/ethernet/mellanox/mlx4/en_rx.c b/drivers/net/ethernet/mellanox/mlx4/en_rx.c
index 436f7689a032..bf1638044a7a 100644
--- a/drivers/net/ethernet/mellanox/mlx4/en_rx.c
+++ b/drivers/net/ethernet/mellanox/mlx4/en_rx.c
@@ -574,16 +574,21 @@ static inline __wsum get_fixed_vlan_csum(__wsum hw_checksum,
574 * header, the HW adds it. To address that, we are subtracting the pseudo 574 * header, the HW adds it. To address that, we are subtracting the pseudo
575 * header checksum from the checksum value provided by the HW. 575 * header checksum from the checksum value provided by the HW.
576 */ 576 */
577static void get_fixed_ipv4_csum(__wsum hw_checksum, struct sk_buff *skb, 577static int get_fixed_ipv4_csum(__wsum hw_checksum, struct sk_buff *skb,
578 struct iphdr *iph) 578 struct iphdr *iph)
579{ 579{
580 __u16 length_for_csum = 0; 580 __u16 length_for_csum = 0;
581 __wsum csum_pseudo_header = 0; 581 __wsum csum_pseudo_header = 0;
582 __u8 ipproto = iph->protocol;
583
584 if (unlikely(ipproto == IPPROTO_SCTP))
585 return -1;
582 586
583 length_for_csum = (be16_to_cpu(iph->tot_len) - (iph->ihl << 2)); 587 length_for_csum = (be16_to_cpu(iph->tot_len) - (iph->ihl << 2));
584 csum_pseudo_header = csum_tcpudp_nofold(iph->saddr, iph->daddr, 588 csum_pseudo_header = csum_tcpudp_nofold(iph->saddr, iph->daddr,
585 length_for_csum, iph->protocol, 0); 589 length_for_csum, ipproto, 0);
586 skb->csum = csum_sub(hw_checksum, csum_pseudo_header); 590 skb->csum = csum_sub(hw_checksum, csum_pseudo_header);
591 return 0;
587} 592}
588 593
589#if IS_ENABLED(CONFIG_IPV6) 594#if IS_ENABLED(CONFIG_IPV6)
@@ -594,17 +599,20 @@ static void get_fixed_ipv4_csum(__wsum hw_checksum, struct sk_buff *skb,
594static int get_fixed_ipv6_csum(__wsum hw_checksum, struct sk_buff *skb, 599static int get_fixed_ipv6_csum(__wsum hw_checksum, struct sk_buff *skb,
595 struct ipv6hdr *ipv6h) 600 struct ipv6hdr *ipv6h)
596{ 601{
602 __u8 nexthdr = ipv6h->nexthdr;
597 __wsum csum_pseudo_hdr = 0; 603 __wsum csum_pseudo_hdr = 0;
598 604
599 if (unlikely(ipv6h->nexthdr == IPPROTO_FRAGMENT || 605 if (unlikely(nexthdr == IPPROTO_FRAGMENT ||
600 ipv6h->nexthdr == IPPROTO_HOPOPTS)) 606 nexthdr == IPPROTO_HOPOPTS ||
607 nexthdr == IPPROTO_SCTP))
601 return -1; 608 return -1;
602 hw_checksum = csum_add(hw_checksum, (__force __wsum)htons(ipv6h->nexthdr)); 609 hw_checksum = csum_add(hw_checksum, (__force __wsum)htons(nexthdr));
603 610
604 csum_pseudo_hdr = csum_partial(&ipv6h->saddr, 611 csum_pseudo_hdr = csum_partial(&ipv6h->saddr,
605 sizeof(ipv6h->saddr) + sizeof(ipv6h->daddr), 0); 612 sizeof(ipv6h->saddr) + sizeof(ipv6h->daddr), 0);
606 csum_pseudo_hdr = csum_add(csum_pseudo_hdr, (__force __wsum)ipv6h->payload_len); 613 csum_pseudo_hdr = csum_add(csum_pseudo_hdr, (__force __wsum)ipv6h->payload_len);
607 csum_pseudo_hdr = csum_add(csum_pseudo_hdr, (__force __wsum)ntohs(ipv6h->nexthdr)); 614 csum_pseudo_hdr = csum_add(csum_pseudo_hdr,
615 (__force __wsum)htons(nexthdr));
608 616
609 skb->csum = csum_sub(hw_checksum, csum_pseudo_hdr); 617 skb->csum = csum_sub(hw_checksum, csum_pseudo_hdr);
610 skb->csum = csum_add(skb->csum, csum_partial(ipv6h, sizeof(struct ipv6hdr), 0)); 618 skb->csum = csum_add(skb->csum, csum_partial(ipv6h, sizeof(struct ipv6hdr), 0));
@@ -627,11 +635,10 @@ static int check_csum(struct mlx4_cqe *cqe, struct sk_buff *skb, void *va,
627 } 635 }
628 636
629 if (cqe->status & cpu_to_be16(MLX4_CQE_STATUS_IPV4)) 637 if (cqe->status & cpu_to_be16(MLX4_CQE_STATUS_IPV4))
630 get_fixed_ipv4_csum(hw_checksum, skb, hdr); 638 return get_fixed_ipv4_csum(hw_checksum, skb, hdr);
631#if IS_ENABLED(CONFIG_IPV6) 639#if IS_ENABLED(CONFIG_IPV6)
632 else if (cqe->status & cpu_to_be16(MLX4_CQE_STATUS_IPV6)) 640 if (cqe->status & cpu_to_be16(MLX4_CQE_STATUS_IPV6))
633 if (unlikely(get_fixed_ipv6_csum(hw_checksum, skb, hdr))) 641 return get_fixed_ipv6_csum(hw_checksum, skb, hdr);
634 return -1;
635#endif 642#endif
636 return 0; 643 return 0;
637} 644}
diff --git a/drivers/net/ethernet/mellanox/mlx4/fw.c b/drivers/net/ethernet/mellanox/mlx4/fw.c
index 37e84a59e751..041c0ed65929 100644
--- a/drivers/net/ethernet/mellanox/mlx4/fw.c
+++ b/drivers/net/ethernet/mellanox/mlx4/fw.c
@@ -159,8 +159,9 @@ static void dump_dev_cap_flags2(struct mlx4_dev *dev, u64 flags)
159 [32] = "Loopback source checks support", 159 [32] = "Loopback source checks support",
160 [33] = "RoCEv2 support", 160 [33] = "RoCEv2 support",
161 [34] = "DMFS Sniffer support (UC & MC)", 161 [34] = "DMFS Sniffer support (UC & MC)",
162 [35] = "QinQ VST mode support", 162 [35] = "Diag counters per port",
163 [36] = "sl to vl mapping table change event support" 163 [36] = "QinQ VST mode support",
164 [37] = "sl to vl mapping table change event support",
164 }; 165 };
165 int i; 166 int i;
166 167
@@ -764,6 +765,7 @@ int mlx4_QUERY_DEV_CAP(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap)
764#define QUERY_DEV_CAP_CQ_TS_SUPPORT_OFFSET 0x3e 765#define QUERY_DEV_CAP_CQ_TS_SUPPORT_OFFSET 0x3e
765#define QUERY_DEV_CAP_MAX_PKEY_OFFSET 0x3f 766#define QUERY_DEV_CAP_MAX_PKEY_OFFSET 0x3f
766#define QUERY_DEV_CAP_EXT_FLAGS_OFFSET 0x40 767#define QUERY_DEV_CAP_EXT_FLAGS_OFFSET 0x40
768#define QUERY_DEV_CAP_WOL_OFFSET 0x43
767#define QUERY_DEV_CAP_FLAGS_OFFSET 0x44 769#define QUERY_DEV_CAP_FLAGS_OFFSET 0x44
768#define QUERY_DEV_CAP_RSVD_UAR_OFFSET 0x48 770#define QUERY_DEV_CAP_RSVD_UAR_OFFSET 0x48
769#define QUERY_DEV_CAP_UAR_SZ_OFFSET 0x49 771#define QUERY_DEV_CAP_UAR_SZ_OFFSET 0x49
@@ -920,6 +922,9 @@ int mlx4_QUERY_DEV_CAP(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap)
920 MLX4_GET(ext_flags, outbox, QUERY_DEV_CAP_EXT_FLAGS_OFFSET); 922 MLX4_GET(ext_flags, outbox, QUERY_DEV_CAP_EXT_FLAGS_OFFSET);
921 MLX4_GET(flags, outbox, QUERY_DEV_CAP_FLAGS_OFFSET); 923 MLX4_GET(flags, outbox, QUERY_DEV_CAP_FLAGS_OFFSET);
922 dev_cap->flags = flags | (u64)ext_flags << 32; 924 dev_cap->flags = flags | (u64)ext_flags << 32;
925 MLX4_GET(field, outbox, QUERY_DEV_CAP_WOL_OFFSET);
926 dev_cap->wol_port[1] = !!(field & 0x20);
927 dev_cap->wol_port[2] = !!(field & 0x40);
923 MLX4_GET(field, outbox, QUERY_DEV_CAP_RSVD_UAR_OFFSET); 928 MLX4_GET(field, outbox, QUERY_DEV_CAP_RSVD_UAR_OFFSET);
924 dev_cap->reserved_uars = field >> 4; 929 dev_cap->reserved_uars = field >> 4;
925 MLX4_GET(field, outbox, QUERY_DEV_CAP_UAR_SZ_OFFSET); 930 MLX4_GET(field, outbox, QUERY_DEV_CAP_UAR_SZ_OFFSET);
diff --git a/drivers/net/ethernet/mellanox/mlx4/fw.h b/drivers/net/ethernet/mellanox/mlx4/fw.h
index 5343a0599253..b52ba01aa486 100644
--- a/drivers/net/ethernet/mellanox/mlx4/fw.h
+++ b/drivers/net/ethernet/mellanox/mlx4/fw.h
@@ -129,6 +129,7 @@ struct mlx4_dev_cap {
129 u32 dmfs_high_rate_qpn_range; 129 u32 dmfs_high_rate_qpn_range;
130 struct mlx4_rate_limit_caps rl_caps; 130 struct mlx4_rate_limit_caps rl_caps;
131 struct mlx4_port_cap port_cap[MLX4_MAX_PORTS + 1]; 131 struct mlx4_port_cap port_cap[MLX4_MAX_PORTS + 1];
132 bool wol_port[MLX4_MAX_PORTS + 1];
132}; 133};
133 134
134struct mlx4_func_cap { 135struct mlx4_func_cap {
diff --git a/drivers/net/ethernet/mellanox/mlx4/main.c b/drivers/net/ethernet/mellanox/mlx4/main.c
index a27c9c13a36e..09b9bc17bce9 100644
--- a/drivers/net/ethernet/mellanox/mlx4/main.c
+++ b/drivers/net/ethernet/mellanox/mlx4/main.c
@@ -424,6 +424,8 @@ static int mlx4_dev_cap(struct mlx4_dev *dev, struct mlx4_dev_cap *dev_cap)
424 dev->caps.stat_rate_support = dev_cap->stat_rate_support; 424 dev->caps.stat_rate_support = dev_cap->stat_rate_support;
425 dev->caps.max_gso_sz = dev_cap->max_gso_sz; 425 dev->caps.max_gso_sz = dev_cap->max_gso_sz;
426 dev->caps.max_rss_tbl_sz = dev_cap->max_rss_tbl_sz; 426 dev->caps.max_rss_tbl_sz = dev_cap->max_rss_tbl_sz;
427 dev->caps.wol_port[1] = dev_cap->wol_port[1];
428 dev->caps.wol_port[2] = dev_cap->wol_port[2];
427 429
428 /* Save uar page shift */ 430 /* Save uar page shift */
429 if (!mlx4_is_slave(dev)) { 431 if (!mlx4_is_slave(dev)) {
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/cmd.c b/drivers/net/ethernet/mellanox/mlx5/core/cmd.c
index f5a2c605749f..31cbe5e86a01 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/cmd.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/cmd.c
@@ -786,6 +786,10 @@ static void cb_timeout_handler(struct work_struct *work)
786 mlx5_cmd_comp_handler(dev, 1UL << ent->idx, true); 786 mlx5_cmd_comp_handler(dev, 1UL << ent->idx, true);
787} 787}
788 788
789static void free_msg(struct mlx5_core_dev *dev, struct mlx5_cmd_msg *msg);
790static void mlx5_free_cmd_msg(struct mlx5_core_dev *dev,
791 struct mlx5_cmd_msg *msg);
792
789static void cmd_work_handler(struct work_struct *work) 793static void cmd_work_handler(struct work_struct *work)
790{ 794{
791 struct mlx5_cmd_work_ent *ent = container_of(work, struct mlx5_cmd_work_ent, work); 795 struct mlx5_cmd_work_ent *ent = container_of(work, struct mlx5_cmd_work_ent, work);
@@ -796,17 +800,28 @@ static void cmd_work_handler(struct work_struct *work)
796 struct semaphore *sem; 800 struct semaphore *sem;
797 unsigned long flags; 801 unsigned long flags;
798 bool poll_cmd = ent->polling; 802 bool poll_cmd = ent->polling;
803 int alloc_ret;
799 804
800 805
801 sem = ent->page_queue ? &cmd->pages_sem : &cmd->sem; 806 sem = ent->page_queue ? &cmd->pages_sem : &cmd->sem;
802 down(sem); 807 down(sem);
803 if (!ent->page_queue) { 808 if (!ent->page_queue) {
804 ent->idx = alloc_ent(cmd); 809 alloc_ret = alloc_ent(cmd);
805 if (ent->idx < 0) { 810 if (alloc_ret < 0) {
806 mlx5_core_err(dev, "failed to allocate command entry\n"); 811 mlx5_core_err(dev, "failed to allocate command entry\n");
812 if (ent->callback) {
813 ent->callback(-EAGAIN, ent->context);
814 mlx5_free_cmd_msg(dev, ent->out);
815 free_msg(dev, ent->in);
816 free_cmd(ent);
817 } else {
818 ent->ret = -EAGAIN;
819 complete(&ent->done);
820 }
807 up(sem); 821 up(sem);
808 return; 822 return;
809 } 823 }
824 ent->idx = alloc_ret;
810 } else { 825 } else {
811 ent->idx = cmd->max_reg_cmds; 826 ent->idx = cmd->max_reg_cmds;
812 spin_lock_irqsave(&cmd->alloc_lock, flags); 827 spin_lock_irqsave(&cmd->alloc_lock, flags);
@@ -967,7 +982,7 @@ static int mlx5_cmd_invoke(struct mlx5_core_dev *dev, struct mlx5_cmd_msg *in,
967 982
968 err = wait_func(dev, ent); 983 err = wait_func(dev, ent);
969 if (err == -ETIMEDOUT) 984 if (err == -ETIMEDOUT)
970 goto out_free; 985 goto out;
971 986
972 ds = ent->ts2 - ent->ts1; 987 ds = ent->ts2 - ent->ts1;
973 op = MLX5_GET(mbox_in, in->first.data, opcode); 988 op = MLX5_GET(mbox_in, in->first.data, opcode);
@@ -1430,6 +1445,7 @@ void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, u64 vec, bool forced)
1430 mlx5_core_err(dev, "Command completion arrived after timeout (entry idx = %d).\n", 1445 mlx5_core_err(dev, "Command completion arrived after timeout (entry idx = %d).\n",
1431 ent->idx); 1446 ent->idx);
1432 free_ent(cmd, ent->idx); 1447 free_ent(cmd, ent->idx);
1448 free_cmd(ent);
1433 } 1449 }
1434 continue; 1450 continue;
1435 } 1451 }
@@ -1488,7 +1504,8 @@ void mlx5_cmd_comp_handler(struct mlx5_core_dev *dev, u64 vec, bool forced)
1488 free_msg(dev, ent->in); 1504 free_msg(dev, ent->in);
1489 1505
1490 err = err ? err : ent->status; 1506 err = err ? err : ent->status;
1491 free_cmd(ent); 1507 if (!forced)
1508 free_cmd(ent);
1492 callback(err, context); 1509 callback(err, context);
1493 } else { 1510 } else {
1494 complete(&ent->done); 1511 complete(&ent->done);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en.h b/drivers/net/ethernet/mellanox/mlx5/core/en.h
index e1b7ddfecd01..0039b4725405 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en.h
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en.h
@@ -266,6 +266,14 @@ struct mlx5e_dcbx {
266}; 266};
267#endif 267#endif
268 268
269#define MAX_PIN_NUM 8
270struct mlx5e_pps {
271 u8 pin_caps[MAX_PIN_NUM];
272 struct work_struct out_work;
273 u64 start[MAX_PIN_NUM];
274 u8 enabled;
275};
276
269struct mlx5e_tstamp { 277struct mlx5e_tstamp {
270 rwlock_t lock; 278 rwlock_t lock;
271 struct cyclecounter cycles; 279 struct cyclecounter cycles;
@@ -277,7 +285,7 @@ struct mlx5e_tstamp {
277 struct mlx5_core_dev *mdev; 285 struct mlx5_core_dev *mdev;
278 struct ptp_clock *ptp; 286 struct ptp_clock *ptp;
279 struct ptp_clock_info ptp_info; 287 struct ptp_clock_info ptp_info;
280 u8 *pps_pin_caps; 288 struct mlx5e_pps pps_info;
281}; 289};
282 290
283enum { 291enum {
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_clock.c b/drivers/net/ethernet/mellanox/mlx5/core/en_clock.c
index 66f432385dbb..84dd63e74041 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_clock.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_clock.c
@@ -53,6 +53,15 @@ enum {
53 MLX5E_EVENT_MODE_ONCE_TILL_ARM = 0x2, 53 MLX5E_EVENT_MODE_ONCE_TILL_ARM = 0x2,
54}; 54};
55 55
56enum {
57 MLX5E_MTPPS_FS_ENABLE = BIT(0x0),
58 MLX5E_MTPPS_FS_PATTERN = BIT(0x2),
59 MLX5E_MTPPS_FS_PIN_MODE = BIT(0x3),
60 MLX5E_MTPPS_FS_TIME_STAMP = BIT(0x4),
61 MLX5E_MTPPS_FS_OUT_PULSE_DURATION = BIT(0x5),
62 MLX5E_MTPPS_FS_ENH_OUT_PER_ADJ = BIT(0x7),
63};
64
56void mlx5e_fill_hwstamp(struct mlx5e_tstamp *tstamp, u64 timestamp, 65void mlx5e_fill_hwstamp(struct mlx5e_tstamp *tstamp, u64 timestamp,
57 struct skb_shared_hwtstamps *hwts) 66 struct skb_shared_hwtstamps *hwts)
58{ 67{
@@ -73,17 +82,46 @@ static u64 mlx5e_read_internal_timer(const struct cyclecounter *cc)
73 return mlx5_read_internal_timer(tstamp->mdev) & cc->mask; 82 return mlx5_read_internal_timer(tstamp->mdev) & cc->mask;
74} 83}
75 84
85static void mlx5e_pps_out(struct work_struct *work)
86{
87 struct mlx5e_pps *pps_info = container_of(work, struct mlx5e_pps,
88 out_work);
89 struct mlx5e_tstamp *tstamp = container_of(pps_info, struct mlx5e_tstamp,
90 pps_info);
91 u32 in[MLX5_ST_SZ_DW(mtpps_reg)] = {0};
92 unsigned long flags;
93 int i;
94
95 for (i = 0; i < tstamp->ptp_info.n_pins; i++) {
96 u64 tstart;
97
98 write_lock_irqsave(&tstamp->lock, flags);
99 tstart = tstamp->pps_info.start[i];
100 tstamp->pps_info.start[i] = 0;
101 write_unlock_irqrestore(&tstamp->lock, flags);
102 if (!tstart)
103 continue;
104
105 MLX5_SET(mtpps_reg, in, pin, i);
106 MLX5_SET64(mtpps_reg, in, time_stamp, tstart);
107 MLX5_SET(mtpps_reg, in, field_select, MLX5E_MTPPS_FS_TIME_STAMP);
108 mlx5_set_mtpps(tstamp->mdev, in, sizeof(in));
109 }
110}
111
76static void mlx5e_timestamp_overflow(struct work_struct *work) 112static void mlx5e_timestamp_overflow(struct work_struct *work)
77{ 113{
78 struct delayed_work *dwork = to_delayed_work(work); 114 struct delayed_work *dwork = to_delayed_work(work);
79 struct mlx5e_tstamp *tstamp = container_of(dwork, struct mlx5e_tstamp, 115 struct mlx5e_tstamp *tstamp = container_of(dwork, struct mlx5e_tstamp,
80 overflow_work); 116 overflow_work);
117 struct mlx5e_priv *priv = container_of(tstamp, struct mlx5e_priv, tstamp);
81 unsigned long flags; 118 unsigned long flags;
82 119
83 write_lock_irqsave(&tstamp->lock, flags); 120 write_lock_irqsave(&tstamp->lock, flags);
84 timecounter_read(&tstamp->clock); 121 timecounter_read(&tstamp->clock);
85 write_unlock_irqrestore(&tstamp->lock, flags); 122 write_unlock_irqrestore(&tstamp->lock, flags);
86 schedule_delayed_work(&tstamp->overflow_work, tstamp->overflow_period); 123 queue_delayed_work(priv->wq, &tstamp->overflow_work,
124 msecs_to_jiffies(tstamp->overflow_period * 1000));
87} 125}
88 126
89int mlx5e_hwstamp_set(struct mlx5e_priv *priv, struct ifreq *ifr) 127int mlx5e_hwstamp_set(struct mlx5e_priv *priv, struct ifreq *ifr)
@@ -213,18 +251,6 @@ static int mlx5e_ptp_adjfreq(struct ptp_clock_info *ptp, s32 delta)
213 int neg_adj = 0; 251 int neg_adj = 0;
214 struct mlx5e_tstamp *tstamp = container_of(ptp, struct mlx5e_tstamp, 252 struct mlx5e_tstamp *tstamp = container_of(ptp, struct mlx5e_tstamp,
215 ptp_info); 253 ptp_info);
216 struct mlx5e_priv *priv =
217 container_of(tstamp, struct mlx5e_priv, tstamp);
218
219 if (MLX5_CAP_GEN(priv->mdev, pps_modify)) {
220 u32 in[MLX5_ST_SZ_DW(mtpps_reg)] = {0};
221
222 /* For future use need to add a loop for finding all 1PPS out pins */
223 MLX5_SET(mtpps_reg, in, pin_mode, MLX5E_PIN_MODE_OUT);
224 MLX5_SET(mtpps_reg, in, out_periodic_adjustment, delta & 0xFFFF);
225
226 mlx5_set_mtpps(priv->mdev, in, sizeof(in));
227 }
228 254
229 if (delta < 0) { 255 if (delta < 0) {
230 neg_adj = 1; 256 neg_adj = 1;
@@ -253,12 +279,13 @@ static int mlx5e_extts_configure(struct ptp_clock_info *ptp,
253 struct mlx5e_priv *priv = 279 struct mlx5e_priv *priv =
254 container_of(tstamp, struct mlx5e_priv, tstamp); 280 container_of(tstamp, struct mlx5e_priv, tstamp);
255 u32 in[MLX5_ST_SZ_DW(mtpps_reg)] = {0}; 281 u32 in[MLX5_ST_SZ_DW(mtpps_reg)] = {0};
282 u32 field_select = 0;
283 u8 pin_mode = 0;
256 u8 pattern = 0; 284 u8 pattern = 0;
257 int pin = -1; 285 int pin = -1;
258 int err = 0; 286 int err = 0;
259 287
260 if (!MLX5_CAP_GEN(priv->mdev, pps) || 288 if (!MLX5_PPS_CAP(priv->mdev))
261 !MLX5_CAP_GEN(priv->mdev, pps_modify))
262 return -EOPNOTSUPP; 289 return -EOPNOTSUPP;
263 290
264 if (rq->extts.index >= tstamp->ptp_info.n_pins) 291 if (rq->extts.index >= tstamp->ptp_info.n_pins)
@@ -268,15 +295,21 @@ static int mlx5e_extts_configure(struct ptp_clock_info *ptp,
268 pin = ptp_find_pin(tstamp->ptp, PTP_PF_EXTTS, rq->extts.index); 295 pin = ptp_find_pin(tstamp->ptp, PTP_PF_EXTTS, rq->extts.index);
269 if (pin < 0) 296 if (pin < 0)
270 return -EBUSY; 297 return -EBUSY;
298 pin_mode = MLX5E_PIN_MODE_IN;
299 pattern = !!(rq->extts.flags & PTP_FALLING_EDGE);
300 field_select = MLX5E_MTPPS_FS_PIN_MODE |
301 MLX5E_MTPPS_FS_PATTERN |
302 MLX5E_MTPPS_FS_ENABLE;
303 } else {
304 pin = rq->extts.index;
305 field_select = MLX5E_MTPPS_FS_ENABLE;
271 } 306 }
272 307
273 if (rq->extts.flags & PTP_FALLING_EDGE)
274 pattern = 1;
275
276 MLX5_SET(mtpps_reg, in, pin, pin); 308 MLX5_SET(mtpps_reg, in, pin, pin);
277 MLX5_SET(mtpps_reg, in, pin_mode, MLX5E_PIN_MODE_IN); 309 MLX5_SET(mtpps_reg, in, pin_mode, pin_mode);
278 MLX5_SET(mtpps_reg, in, pattern, pattern); 310 MLX5_SET(mtpps_reg, in, pattern, pattern);
279 MLX5_SET(mtpps_reg, in, enable, on); 311 MLX5_SET(mtpps_reg, in, enable, on);
312 MLX5_SET(mtpps_reg, in, field_select, field_select);
280 313
281 err = mlx5_set_mtpps(priv->mdev, in, sizeof(in)); 314 err = mlx5_set_mtpps(priv->mdev, in, sizeof(in));
282 if (err) 315 if (err)
@@ -295,14 +328,18 @@ static int mlx5e_perout_configure(struct ptp_clock_info *ptp,
295 struct mlx5e_priv *priv = 328 struct mlx5e_priv *priv =
296 container_of(tstamp, struct mlx5e_priv, tstamp); 329 container_of(tstamp, struct mlx5e_priv, tstamp);
297 u32 in[MLX5_ST_SZ_DW(mtpps_reg)] = {0}; 330 u32 in[MLX5_ST_SZ_DW(mtpps_reg)] = {0};
298 u64 nsec_now, nsec_delta, time_stamp; 331 u64 nsec_now, nsec_delta, time_stamp = 0;
299 u64 cycles_now, cycles_delta; 332 u64 cycles_now, cycles_delta;
300 struct timespec64 ts; 333 struct timespec64 ts;
301 unsigned long flags; 334 unsigned long flags;
335 u32 field_select = 0;
336 u8 pin_mode = 0;
337 u8 pattern = 0;
302 int pin = -1; 338 int pin = -1;
339 int err = 0;
303 s64 ns; 340 s64 ns;
304 341
305 if (!MLX5_CAP_GEN(priv->mdev, pps_modify)) 342 if (!MLX5_PPS_CAP(priv->mdev))
306 return -EOPNOTSUPP; 343 return -EOPNOTSUPP;
307 344
308 if (rq->perout.index >= tstamp->ptp_info.n_pins) 345 if (rq->perout.index >= tstamp->ptp_info.n_pins)
@@ -313,32 +350,60 @@ static int mlx5e_perout_configure(struct ptp_clock_info *ptp,
313 rq->perout.index); 350 rq->perout.index);
314 if (pin < 0) 351 if (pin < 0)
315 return -EBUSY; 352 return -EBUSY;
316 }
317 353
318 ts.tv_sec = rq->perout.period.sec; 354 pin_mode = MLX5E_PIN_MODE_OUT;
319 ts.tv_nsec = rq->perout.period.nsec; 355 pattern = MLX5E_OUT_PATTERN_PERIODIC;
320 ns = timespec64_to_ns(&ts); 356 ts.tv_sec = rq->perout.period.sec;
321 if (on) 357 ts.tv_nsec = rq->perout.period.nsec;
358 ns = timespec64_to_ns(&ts);
359
322 if ((ns >> 1) != 500000000LL) 360 if ((ns >> 1) != 500000000LL)
323 return -EINVAL; 361 return -EINVAL;
324 ts.tv_sec = rq->perout.start.sec; 362
325 ts.tv_nsec = rq->perout.start.nsec; 363 ts.tv_sec = rq->perout.start.sec;
326 ns = timespec64_to_ns(&ts); 364 ts.tv_nsec = rq->perout.start.nsec;
327 cycles_now = mlx5_read_internal_timer(tstamp->mdev); 365 ns = timespec64_to_ns(&ts);
328 write_lock_irqsave(&tstamp->lock, flags); 366 cycles_now = mlx5_read_internal_timer(tstamp->mdev);
329 nsec_now = timecounter_cyc2time(&tstamp->clock, cycles_now); 367 write_lock_irqsave(&tstamp->lock, flags);
330 nsec_delta = ns - nsec_now; 368 nsec_now = timecounter_cyc2time(&tstamp->clock, cycles_now);
331 cycles_delta = div64_u64(nsec_delta << tstamp->cycles.shift, 369 nsec_delta = ns - nsec_now;
332 tstamp->cycles.mult); 370 cycles_delta = div64_u64(nsec_delta << tstamp->cycles.shift,
333 write_unlock_irqrestore(&tstamp->lock, flags); 371 tstamp->cycles.mult);
334 time_stamp = cycles_now + cycles_delta; 372 write_unlock_irqrestore(&tstamp->lock, flags);
373 time_stamp = cycles_now + cycles_delta;
374 field_select = MLX5E_MTPPS_FS_PIN_MODE |
375 MLX5E_MTPPS_FS_PATTERN |
376 MLX5E_MTPPS_FS_ENABLE |
377 MLX5E_MTPPS_FS_TIME_STAMP;
378 } else {
379 pin = rq->perout.index;
380 field_select = MLX5E_MTPPS_FS_ENABLE;
381 }
382
335 MLX5_SET(mtpps_reg, in, pin, pin); 383 MLX5_SET(mtpps_reg, in, pin, pin);
336 MLX5_SET(mtpps_reg, in, pin_mode, MLX5E_PIN_MODE_OUT); 384 MLX5_SET(mtpps_reg, in, pin_mode, pin_mode);
337 MLX5_SET(mtpps_reg, in, pattern, MLX5E_OUT_PATTERN_PERIODIC); 385 MLX5_SET(mtpps_reg, in, pattern, pattern);
338 MLX5_SET(mtpps_reg, in, enable, on); 386 MLX5_SET(mtpps_reg, in, enable, on);
339 MLX5_SET64(mtpps_reg, in, time_stamp, time_stamp); 387 MLX5_SET64(mtpps_reg, in, time_stamp, time_stamp);
388 MLX5_SET(mtpps_reg, in, field_select, field_select);
389
390 err = mlx5_set_mtpps(priv->mdev, in, sizeof(in));
391 if (err)
392 return err;
340 393
341 return mlx5_set_mtpps(priv->mdev, in, sizeof(in)); 394 return mlx5_set_mtppse(priv->mdev, pin, 0,
395 MLX5E_EVENT_MODE_REPETETIVE & on);
396}
397
398static int mlx5e_pps_configure(struct ptp_clock_info *ptp,
399 struct ptp_clock_request *rq,
400 int on)
401{
402 struct mlx5e_tstamp *tstamp =
403 container_of(ptp, struct mlx5e_tstamp, ptp_info);
404
405 tstamp->pps_info.enabled = !!on;
406 return 0;
342} 407}
343 408
344static int mlx5e_ptp_enable(struct ptp_clock_info *ptp, 409static int mlx5e_ptp_enable(struct ptp_clock_info *ptp,
@@ -350,6 +415,8 @@ static int mlx5e_ptp_enable(struct ptp_clock_info *ptp,
350 return mlx5e_extts_configure(ptp, rq, on); 415 return mlx5e_extts_configure(ptp, rq, on);
351 case PTP_CLK_REQ_PEROUT: 416 case PTP_CLK_REQ_PEROUT:
352 return mlx5e_perout_configure(ptp, rq, on); 417 return mlx5e_perout_configure(ptp, rq, on);
418 case PTP_CLK_REQ_PPS:
419 return mlx5e_pps_configure(ptp, rq, on);
353 default: 420 default:
354 return -EOPNOTSUPP; 421 return -EOPNOTSUPP;
355 } 422 }
@@ -395,6 +462,7 @@ static int mlx5e_init_pin_config(struct mlx5e_tstamp *tstamp)
395 return -ENOMEM; 462 return -ENOMEM;
396 tstamp->ptp_info.enable = mlx5e_ptp_enable; 463 tstamp->ptp_info.enable = mlx5e_ptp_enable;
397 tstamp->ptp_info.verify = mlx5e_ptp_verify; 464 tstamp->ptp_info.verify = mlx5e_ptp_verify;
465 tstamp->ptp_info.pps = 1;
398 466
399 for (i = 0; i < tstamp->ptp_info.n_pins; i++) { 467 for (i = 0; i < tstamp->ptp_info.n_pins; i++) {
400 snprintf(tstamp->ptp_info.pin_config[i].name, 468 snprintf(tstamp->ptp_info.pin_config[i].name,
@@ -422,22 +490,56 @@ static void mlx5e_get_pps_caps(struct mlx5e_priv *priv,
422 tstamp->ptp_info.n_per_out = MLX5_GET(mtpps_reg, out, 490 tstamp->ptp_info.n_per_out = MLX5_GET(mtpps_reg, out,
423 cap_max_num_of_pps_out_pins); 491 cap_max_num_of_pps_out_pins);
424 492
425 tstamp->pps_pin_caps[0] = MLX5_GET(mtpps_reg, out, cap_pin_0_mode); 493 tstamp->pps_info.pin_caps[0] = MLX5_GET(mtpps_reg, out, cap_pin_0_mode);
426 tstamp->pps_pin_caps[1] = MLX5_GET(mtpps_reg, out, cap_pin_1_mode); 494 tstamp->pps_info.pin_caps[1] = MLX5_GET(mtpps_reg, out, cap_pin_1_mode);
427 tstamp->pps_pin_caps[2] = MLX5_GET(mtpps_reg, out, cap_pin_2_mode); 495 tstamp->pps_info.pin_caps[2] = MLX5_GET(mtpps_reg, out, cap_pin_2_mode);
428 tstamp->pps_pin_caps[3] = MLX5_GET(mtpps_reg, out, cap_pin_3_mode); 496 tstamp->pps_info.pin_caps[3] = MLX5_GET(mtpps_reg, out, cap_pin_3_mode);
429 tstamp->pps_pin_caps[4] = MLX5_GET(mtpps_reg, out, cap_pin_4_mode); 497 tstamp->pps_info.pin_caps[4] = MLX5_GET(mtpps_reg, out, cap_pin_4_mode);
430 tstamp->pps_pin_caps[5] = MLX5_GET(mtpps_reg, out, cap_pin_5_mode); 498 tstamp->pps_info.pin_caps[5] = MLX5_GET(mtpps_reg, out, cap_pin_5_mode);
431 tstamp->pps_pin_caps[6] = MLX5_GET(mtpps_reg, out, cap_pin_6_mode); 499 tstamp->pps_info.pin_caps[6] = MLX5_GET(mtpps_reg, out, cap_pin_6_mode);
432 tstamp->pps_pin_caps[7] = MLX5_GET(mtpps_reg, out, cap_pin_7_mode); 500 tstamp->pps_info.pin_caps[7] = MLX5_GET(mtpps_reg, out, cap_pin_7_mode);
433} 501}
434 502
435void mlx5e_pps_event_handler(struct mlx5e_priv *priv, 503void mlx5e_pps_event_handler(struct mlx5e_priv *priv,
436 struct ptp_clock_event *event) 504 struct ptp_clock_event *event)
437{ 505{
506 struct net_device *netdev = priv->netdev;
438 struct mlx5e_tstamp *tstamp = &priv->tstamp; 507 struct mlx5e_tstamp *tstamp = &priv->tstamp;
508 struct timespec64 ts;
509 u64 nsec_now, nsec_delta;
510 u64 cycles_now, cycles_delta;
511 int pin = event->index;
512 s64 ns;
513 unsigned long flags;
439 514
440 ptp_clock_event(tstamp->ptp, event); 515 switch (tstamp->ptp_info.pin_config[pin].func) {
516 case PTP_PF_EXTTS:
517 if (tstamp->pps_info.enabled) {
518 event->type = PTP_CLOCK_PPSUSR;
519 event->pps_times.ts_real = ns_to_timespec64(event->timestamp);
520 } else {
521 event->type = PTP_CLOCK_EXTTS;
522 }
523 ptp_clock_event(tstamp->ptp, event);
524 break;
525 case PTP_PF_PEROUT:
526 mlx5e_ptp_gettime(&tstamp->ptp_info, &ts);
527 cycles_now = mlx5_read_internal_timer(tstamp->mdev);
528 ts.tv_sec += 1;
529 ts.tv_nsec = 0;
530 ns = timespec64_to_ns(&ts);
531 write_lock_irqsave(&tstamp->lock, flags);
532 nsec_now = timecounter_cyc2time(&tstamp->clock, cycles_now);
533 nsec_delta = ns - nsec_now;
534 cycles_delta = div64_u64(nsec_delta << tstamp->cycles.shift,
535 tstamp->cycles.mult);
536 tstamp->pps_info.start[pin] = cycles_now + cycles_delta;
537 queue_work(priv->wq, &tstamp->pps_info.out_work);
538 write_unlock_irqrestore(&tstamp->lock, flags);
539 break;
540 default:
541 netdev_err(netdev, "%s: Unhandled event\n", __func__);
542 }
441} 543}
442 544
443void mlx5e_timestamp_init(struct mlx5e_priv *priv) 545void mlx5e_timestamp_init(struct mlx5e_priv *priv)
@@ -473,9 +575,10 @@ void mlx5e_timestamp_init(struct mlx5e_priv *priv)
473 do_div(ns, NSEC_PER_SEC / 2 / HZ); 575 do_div(ns, NSEC_PER_SEC / 2 / HZ);
474 tstamp->overflow_period = ns; 576 tstamp->overflow_period = ns;
475 577
578 INIT_WORK(&tstamp->pps_info.out_work, mlx5e_pps_out);
476 INIT_DELAYED_WORK(&tstamp->overflow_work, mlx5e_timestamp_overflow); 579 INIT_DELAYED_WORK(&tstamp->overflow_work, mlx5e_timestamp_overflow);
477 if (tstamp->overflow_period) 580 if (tstamp->overflow_period)
478 schedule_delayed_work(&tstamp->overflow_work, 0); 581 queue_delayed_work(priv->wq, &tstamp->overflow_work, 0);
479 else 582 else
480 mlx5_core_warn(priv->mdev, "invalid overflow period, overflow_work is not scheduled\n"); 583 mlx5_core_warn(priv->mdev, "invalid overflow period, overflow_work is not scheduled\n");
481 584
@@ -484,16 +587,10 @@ void mlx5e_timestamp_init(struct mlx5e_priv *priv)
484 snprintf(tstamp->ptp_info.name, 16, "mlx5 ptp"); 587 snprintf(tstamp->ptp_info.name, 16, "mlx5 ptp");
485 588
486 /* Initialize 1PPS data structures */ 589 /* Initialize 1PPS data structures */
487#define MAX_PIN_NUM 8 590 if (MLX5_PPS_CAP(priv->mdev))
488 tstamp->pps_pin_caps = kzalloc(sizeof(u8) * MAX_PIN_NUM, GFP_KERNEL); 591 mlx5e_get_pps_caps(priv, tstamp);
489 if (tstamp->pps_pin_caps) { 592 if (tstamp->ptp_info.n_pins)
490 if (MLX5_CAP_GEN(priv->mdev, pps)) 593 mlx5e_init_pin_config(tstamp);
491 mlx5e_get_pps_caps(priv, tstamp);
492 if (tstamp->ptp_info.n_pins)
493 mlx5e_init_pin_config(tstamp);
494 } else {
495 mlx5_core_warn(priv->mdev, "1PPS initialization failed\n");
496 }
497 594
498 tstamp->ptp = ptp_clock_register(&tstamp->ptp_info, 595 tstamp->ptp = ptp_clock_register(&tstamp->ptp_info,
499 &priv->mdev->pdev->dev); 596 &priv->mdev->pdev->dev);
@@ -516,8 +613,7 @@ void mlx5e_timestamp_cleanup(struct mlx5e_priv *priv)
516 priv->tstamp.ptp = NULL; 613 priv->tstamp.ptp = NULL;
517 } 614 }
518 615
519 kfree(tstamp->pps_pin_caps); 616 cancel_work_sync(&tstamp->pps_info.out_work);
520 kfree(tstamp->ptp_info.pin_config);
521
522 cancel_delayed_work_sync(&tstamp->overflow_work); 617 cancel_delayed_work_sync(&tstamp->overflow_work);
618 kfree(tstamp->ptp_info.pin_config);
523} 619}
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
index bdd82c9b3992..eafc59280ada 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_fs_ethtool.c
@@ -276,7 +276,7 @@ static void add_rule_to_list(struct mlx5e_priv *priv,
276 276
277static bool outer_header_zero(u32 *match_criteria) 277static bool outer_header_zero(u32 *match_criteria)
278{ 278{
279 int size = MLX5_ST_SZ_BYTES(fte_match_param); 279 int size = MLX5_FLD_SZ_BYTES(fte_match_param, outer_headers);
280 char *outer_headers_c = MLX5_ADDR_OF(fte_match_param, match_criteria, 280 char *outer_headers_c = MLX5_ADDR_OF(fte_match_param, match_criteria,
281 outer_headers); 281 outer_headers);
282 282
@@ -320,7 +320,7 @@ add_ethtool_flow_rule(struct mlx5e_priv *priv,
320 320
321 spec->match_criteria_enable = (!outer_header_zero(spec->match_criteria)); 321 spec->match_criteria_enable = (!outer_header_zero(spec->match_criteria));
322 flow_act.flow_tag = MLX5_FS_DEFAULT_FLOW_TAG; 322 flow_act.flow_tag = MLX5_FS_DEFAULT_FLOW_TAG;
323 rule = mlx5_add_flow_rules(ft, spec, &flow_act, dst, 1); 323 rule = mlx5_add_flow_rules(ft, spec, &flow_act, dst, dst ? 1 : 0);
324 if (IS_ERR(rule)) { 324 if (IS_ERR(rule)) {
325 err = PTR_ERR(rule); 325 err = PTR_ERR(rule);
326 netdev_err(priv->netdev, "%s: failed to add ethtool steering rule: %d\n", 326 netdev_err(priv->netdev, "%s: failed to add ethtool steering rule: %d\n",
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
index 1eac5003084f..57f31fa478ce 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
@@ -377,7 +377,6 @@ static void mlx5e_async_event(struct mlx5_core_dev *mdev, void *vpriv,
377 break; 377 break;
378 case MLX5_DEV_EVENT_PPS: 378 case MLX5_DEV_EVENT_PPS:
379 eqe = (struct mlx5_eqe *)param; 379 eqe = (struct mlx5_eqe *)param;
380 ptp_event.type = PTP_CLOCK_EXTTS;
381 ptp_event.index = eqe->data.pps.pin; 380 ptp_event.index = eqe->data.pps.pin;
382 ptp_event.timestamp = 381 ptp_event.timestamp =
383 timecounter_cyc2time(&priv->tstamp.clock, 382 timecounter_cyc2time(&priv->tstamp.clock,
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eq.c b/drivers/net/ethernet/mellanox/mlx5/core/eq.c
index af51a5d2b912..52b9a64cd3a2 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eq.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eq.c
@@ -698,7 +698,7 @@ int mlx5_start_eqs(struct mlx5_core_dev *dev)
698 else 698 else
699 mlx5_core_dbg(dev, "port_module_event is not set\n"); 699 mlx5_core_dbg(dev, "port_module_event is not set\n");
700 700
701 if (MLX5_CAP_GEN(dev, pps)) 701 if (MLX5_PPS_CAP(dev))
702 async_event_mask |= (1ull << MLX5_EVENT_TYPE_PPS_EVENT); 702 async_event_mask |= (1ull << MLX5_EVENT_TYPE_PPS_EVENT);
703 703
704 if (MLX5_CAP_GEN(dev, fpga)) 704 if (MLX5_CAP_GEN(dev, fpga))
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
index 89bfda419efe..8b18cc9ec026 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/eswitch.c
@@ -1668,7 +1668,8 @@ void mlx5_eswitch_disable_sriov(struct mlx5_eswitch *esw)
1668 int i; 1668 int i;
1669 1669
1670 if (!esw || !MLX5_CAP_GEN(esw->dev, vport_group_manager) || 1670 if (!esw || !MLX5_CAP_GEN(esw->dev, vport_group_manager) ||
1671 MLX5_CAP_GEN(esw->dev, port_type) != MLX5_CAP_PORT_TYPE_ETH) 1671 MLX5_CAP_GEN(esw->dev, port_type) != MLX5_CAP_PORT_TYPE_ETH ||
1672 esw->mode == SRIOV_NONE)
1672 return; 1673 return;
1673 1674
1674 esw_info(esw->dev, "disable SRIOV: active vports(%d) mode(%d)\n", 1675 esw_info(esw->dev, "disable SRIOV: active vports(%d) mode(%d)\n",
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c b/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c
index 1ee5bce85901..85298051a3e4 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/ipoib/ipoib.c
@@ -178,8 +178,6 @@ out:
178 178
179static void mlx5i_destroy_underlay_qp(struct mlx5_core_dev *mdev, struct mlx5_core_qp *qp) 179static void mlx5i_destroy_underlay_qp(struct mlx5_core_dev *mdev, struct mlx5_core_qp *qp)
180{ 180{
181 mlx5_fs_remove_rx_underlay_qpn(mdev, qp->qpn);
182
183 mlx5_core_destroy_qp(mdev, qp); 181 mlx5_core_destroy_qp(mdev, qp);
184} 182}
185 183
@@ -194,8 +192,6 @@ static int mlx5i_init_tx(struct mlx5e_priv *priv)
194 return err; 192 return err;
195 } 193 }
196 194
197 mlx5_fs_add_rx_underlay_qpn(priv->mdev, ipriv->qp.qpn);
198
199 err = mlx5e_create_tis(priv->mdev, 0 /* tc */, ipriv->qp.qpn, &priv->tisn[0]); 195 err = mlx5e_create_tis(priv->mdev, 0 /* tc */, ipriv->qp.qpn, &priv->tisn[0]);
200 if (err) { 196 if (err) {
201 mlx5_core_warn(priv->mdev, "create tis failed, %d\n", err); 197 mlx5_core_warn(priv->mdev, "create tis failed, %d\n", err);
@@ -253,6 +249,7 @@ static void mlx5i_destroy_flow_steering(struct mlx5e_priv *priv)
253 249
254static int mlx5i_init_rx(struct mlx5e_priv *priv) 250static int mlx5i_init_rx(struct mlx5e_priv *priv)
255{ 251{
252 struct mlx5i_priv *ipriv = priv->ppriv;
256 int err; 253 int err;
257 254
258 err = mlx5e_create_indirect_rqt(priv); 255 err = mlx5e_create_indirect_rqt(priv);
@@ -271,12 +268,18 @@ static int mlx5i_init_rx(struct mlx5e_priv *priv)
271 if (err) 268 if (err)
272 goto err_destroy_indirect_tirs; 269 goto err_destroy_indirect_tirs;
273 270
274 err = mlx5i_create_flow_steering(priv); 271 err = mlx5_fs_add_rx_underlay_qpn(priv->mdev, ipriv->qp.qpn);
275 if (err) 272 if (err)
276 goto err_destroy_direct_tirs; 273 goto err_destroy_direct_tirs;
277 274
275 err = mlx5i_create_flow_steering(priv);
276 if (err)
277 goto err_remove_rx_underlay_qpn;
278
278 return 0; 279 return 0;
279 280
281err_remove_rx_underlay_qpn:
282 mlx5_fs_remove_rx_underlay_qpn(priv->mdev, ipriv->qp.qpn);
280err_destroy_direct_tirs: 283err_destroy_direct_tirs:
281 mlx5e_destroy_direct_tirs(priv); 284 mlx5e_destroy_direct_tirs(priv);
282err_destroy_indirect_tirs: 285err_destroy_indirect_tirs:
@@ -290,6 +293,9 @@ err_destroy_indirect_rqts:
290 293
291static void mlx5i_cleanup_rx(struct mlx5e_priv *priv) 294static void mlx5i_cleanup_rx(struct mlx5e_priv *priv)
292{ 295{
296 struct mlx5i_priv *ipriv = priv->ppriv;
297
298 mlx5_fs_remove_rx_underlay_qpn(priv->mdev, ipriv->qp.qpn);
293 mlx5i_destroy_flow_steering(priv); 299 mlx5i_destroy_flow_steering(priv);
294 mlx5e_destroy_direct_tirs(priv); 300 mlx5e_destroy_direct_tirs(priv);
295 mlx5e_destroy_indirect_tirs(priv); 301 mlx5e_destroy_indirect_tirs(priv);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/lag.c b/drivers/net/ethernet/mellanox/mlx5/core/lag.c
index a3a836bdcfd2..f26f97fe4666 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/lag.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/lag.c
@@ -162,22 +162,17 @@ static bool mlx5_lag_is_bonded(struct mlx5_lag *ldev)
162static void mlx5_infer_tx_affinity_mapping(struct lag_tracker *tracker, 162static void mlx5_infer_tx_affinity_mapping(struct lag_tracker *tracker,
163 u8 *port1, u8 *port2) 163 u8 *port1, u8 *port2)
164{ 164{
165 if (tracker->tx_type == NETDEV_LAG_TX_TYPE_ACTIVEBACKUP) { 165 *port1 = 1;
166 if (tracker->netdev_state[0].tx_enabled) { 166 *port2 = 2;
167 *port1 = 1; 167 if (!tracker->netdev_state[0].tx_enabled ||
168 *port2 = 1; 168 !tracker->netdev_state[0].link_up) {
169 } else { 169 *port1 = 2;
170 *port1 = 2; 170 return;
171 *port2 = 2;
172 }
173 } else {
174 *port1 = 1;
175 *port2 = 2;
176 if (!tracker->netdev_state[0].link_up)
177 *port1 = 2;
178 else if (!tracker->netdev_state[1].link_up)
179 *port2 = 1;
180 } 171 }
172
173 if (!tracker->netdev_state[1].tx_enabled ||
174 !tracker->netdev_state[1].link_up)
175 *port2 = 1;
181} 176}
182 177
183static void mlx5_activate_lag(struct mlx5_lag *ldev, 178static void mlx5_activate_lag(struct mlx5_lag *ldev,
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h b/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h
index 6a3d6bef7dd4..6a263e8d883a 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h
+++ b/drivers/net/ethernet/mellanox/mlx5/core/mlx5_core.h
@@ -154,6 +154,11 @@ int mlx5_set_mtpps(struct mlx5_core_dev *mdev, u32 *mtpps, u32 mtpps_size);
154int mlx5_query_mtppse(struct mlx5_core_dev *mdev, u8 pin, u8 *arm, u8 *mode); 154int mlx5_query_mtppse(struct mlx5_core_dev *mdev, u8 pin, u8 *arm, u8 *mode);
155int mlx5_set_mtppse(struct mlx5_core_dev *mdev, u8 pin, u8 arm, u8 mode); 155int mlx5_set_mtppse(struct mlx5_core_dev *mdev, u8 pin, u8 arm, u8 mode);
156 156
157#define MLX5_PPS_CAP(mdev) (MLX5_CAP_GEN((mdev), pps) && \
158 MLX5_CAP_GEN((mdev), pps_modify) && \
159 MLX5_CAP_MCAM_FEATURE((mdev), mtpps_fs) && \
160 MLX5_CAP_MCAM_FEATURE((mdev), mtpps_enh_out_per_adj))
161
157int mlx5_firmware_flash(struct mlx5_core_dev *dev, const struct firmware *fw); 162int mlx5_firmware_flash(struct mlx5_core_dev *dev, const struct firmware *fw);
158 163
159void mlx5e_init(void); 164void mlx5e_init(void);
diff --git a/drivers/net/ethernet/mellanox/mlx5/core/sriov.c b/drivers/net/ethernet/mellanox/mlx5/core/sriov.c
index bcdf7779c48d..bf99d40e30b4 100644
--- a/drivers/net/ethernet/mellanox/mlx5/core/sriov.c
+++ b/drivers/net/ethernet/mellanox/mlx5/core/sriov.c
@@ -88,7 +88,11 @@ static void mlx5_device_disable_sriov(struct mlx5_core_dev *dev)
88 int vf; 88 int vf;
89 89
90 if (!sriov->enabled_vfs) 90 if (!sriov->enabled_vfs)
91#ifdef CONFIG_MLX5_CORE_EN
92 goto disable_sriov_resources;
93#else
91 return; 94 return;
95#endif
92 96
93 for (vf = 0; vf < sriov->num_vfs; vf++) { 97 for (vf = 0; vf < sriov->num_vfs; vf++) {
94 if (!sriov->vfs_ctx[vf].enabled) 98 if (!sriov->vfs_ctx[vf].enabled)
@@ -103,6 +107,7 @@ static void mlx5_device_disable_sriov(struct mlx5_core_dev *dev)
103 } 107 }
104 108
105#ifdef CONFIG_MLX5_CORE_EN 109#ifdef CONFIG_MLX5_CORE_EN
110disable_sriov_resources:
106 mlx5_eswitch_disable_sriov(dev->priv.eswitch); 111 mlx5_eswitch_disable_sriov(dev->priv.eswitch);
107#endif 112#endif
108 113
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
index 383fef5a8e24..4b2e0fd7d51e 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_router.c
@@ -1512,6 +1512,10 @@ mlxsw_sp_nexthop_group_mac_update(struct mlxsw_sp *mlxsw_sp,
1512static int mlxsw_sp_fib_entry_update(struct mlxsw_sp *mlxsw_sp, 1512static int mlxsw_sp_fib_entry_update(struct mlxsw_sp *mlxsw_sp,
1513 struct mlxsw_sp_fib_entry *fib_entry); 1513 struct mlxsw_sp_fib_entry *fib_entry);
1514 1514
1515static bool
1516mlxsw_sp_fib_node_entry_is_first(const struct mlxsw_sp_fib_node *fib_node,
1517 const struct mlxsw_sp_fib_entry *fib_entry);
1518
1515static int 1519static int
1516mlxsw_sp_nexthop_fib_entries_update(struct mlxsw_sp *mlxsw_sp, 1520mlxsw_sp_nexthop_fib_entries_update(struct mlxsw_sp *mlxsw_sp,
1517 struct mlxsw_sp_nexthop_group *nh_grp) 1521 struct mlxsw_sp_nexthop_group *nh_grp)
@@ -1520,6 +1524,9 @@ mlxsw_sp_nexthop_fib_entries_update(struct mlxsw_sp *mlxsw_sp,
1520 int err; 1524 int err;
1521 1525
1522 list_for_each_entry(fib_entry, &nh_grp->fib_list, nexthop_group_node) { 1526 list_for_each_entry(fib_entry, &nh_grp->fib_list, nexthop_group_node) {
1527 if (!mlxsw_sp_fib_node_entry_is_first(fib_entry->fib_node,
1528 fib_entry))
1529 continue;
1523 err = mlxsw_sp_fib_entry_update(mlxsw_sp, fib_entry); 1530 err = mlxsw_sp_fib_entry_update(mlxsw_sp, fib_entry);
1524 if (err) 1531 if (err)
1525 return err; 1532 return err;
diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c
index 656b2d3f1bee..5eb1606765c5 100644
--- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c
+++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_switchdev.c
@@ -626,8 +626,8 @@ static int mlxsw_sp_port_attr_br_flags_set(struct mlxsw_sp_port *mlxsw_sp_port,
626 626
627 bridge_port = mlxsw_sp_bridge_port_find(mlxsw_sp_port->mlxsw_sp->bridge, 627 bridge_port = mlxsw_sp_bridge_port_find(mlxsw_sp_port->mlxsw_sp->bridge,
628 orig_dev); 628 orig_dev);
629 if (WARN_ON(!bridge_port)) 629 if (!bridge_port)
630 return -EINVAL; 630 return 0;
631 631
632 err = mlxsw_sp_bridge_port_flood_table_set(mlxsw_sp_port, bridge_port, 632 err = mlxsw_sp_bridge_port_flood_table_set(mlxsw_sp_port, bridge_port,
633 MLXSW_SP_FLOOD_TYPE_UC, 633 MLXSW_SP_FLOOD_TYPE_UC,
@@ -711,8 +711,8 @@ static int mlxsw_sp_port_attr_mc_router_set(struct mlxsw_sp_port *mlxsw_sp_port,
711 711
712 bridge_port = mlxsw_sp_bridge_port_find(mlxsw_sp_port->mlxsw_sp->bridge, 712 bridge_port = mlxsw_sp_bridge_port_find(mlxsw_sp_port->mlxsw_sp->bridge,
713 orig_dev); 713 orig_dev);
714 if (WARN_ON(!bridge_port)) 714 if (!bridge_port)
715 return -EINVAL; 715 return 0;
716 716
717 if (!bridge_port->bridge_device->multicast_enabled) 717 if (!bridge_port->bridge_device->multicast_enabled)
718 return 0; 718 return 0;
@@ -1283,15 +1283,15 @@ static int mlxsw_sp_port_mdb_add(struct mlxsw_sp_port *mlxsw_sp_port,
1283 return 0; 1283 return 0;
1284 1284
1285 bridge_port = mlxsw_sp_bridge_port_find(mlxsw_sp->bridge, orig_dev); 1285 bridge_port = mlxsw_sp_bridge_port_find(mlxsw_sp->bridge, orig_dev);
1286 if (WARN_ON(!bridge_port)) 1286 if (!bridge_port)
1287 return -EINVAL; 1287 return 0;
1288 1288
1289 bridge_device = bridge_port->bridge_device; 1289 bridge_device = bridge_port->bridge_device;
1290 mlxsw_sp_port_vlan = mlxsw_sp_port_vlan_find_by_bridge(mlxsw_sp_port, 1290 mlxsw_sp_port_vlan = mlxsw_sp_port_vlan_find_by_bridge(mlxsw_sp_port,
1291 bridge_device, 1291 bridge_device,
1292 mdb->vid); 1292 mdb->vid);
1293 if (WARN_ON(!mlxsw_sp_port_vlan)) 1293 if (!mlxsw_sp_port_vlan)
1294 return -EINVAL; 1294 return 0;
1295 1295
1296 fid_index = mlxsw_sp_fid_index(mlxsw_sp_port_vlan->fid); 1296 fid_index = mlxsw_sp_fid_index(mlxsw_sp_port_vlan->fid);
1297 1297
@@ -1407,15 +1407,15 @@ static int mlxsw_sp_port_mdb_del(struct mlxsw_sp_port *mlxsw_sp_port,
1407 int err = 0; 1407 int err = 0;
1408 1408
1409 bridge_port = mlxsw_sp_bridge_port_find(mlxsw_sp->bridge, orig_dev); 1409 bridge_port = mlxsw_sp_bridge_port_find(mlxsw_sp->bridge, orig_dev);
1410 if (WARN_ON(!bridge_port)) 1410 if (!bridge_port)
1411 return -EINVAL; 1411 return 0;
1412 1412
1413 bridge_device = bridge_port->bridge_device; 1413 bridge_device = bridge_port->bridge_device;
1414 mlxsw_sp_port_vlan = mlxsw_sp_port_vlan_find_by_bridge(mlxsw_sp_port, 1414 mlxsw_sp_port_vlan = mlxsw_sp_port_vlan_find_by_bridge(mlxsw_sp_port,
1415 bridge_device, 1415 bridge_device,
1416 mdb->vid); 1416 mdb->vid);
1417 if (WARN_ON(!mlxsw_sp_port_vlan)) 1417 if (!mlxsw_sp_port_vlan)
1418 return -EINVAL; 1418 return 0;
1419 1419
1420 fid_index = mlxsw_sp_fid_index(mlxsw_sp_port_vlan->fid); 1420 fid_index = mlxsw_sp_fid_index(mlxsw_sp_port_vlan->fid);
1421 1421
@@ -1974,6 +1974,17 @@ static void mlxsw_sp_fdb_fini(struct mlxsw_sp *mlxsw_sp)
1974 1974
1975} 1975}
1976 1976
1977static void mlxsw_sp_mids_fini(struct mlxsw_sp *mlxsw_sp)
1978{
1979 struct mlxsw_sp_mid *mid, *tmp;
1980
1981 list_for_each_entry_safe(mid, tmp, &mlxsw_sp->bridge->mids_list, list) {
1982 list_del(&mid->list);
1983 clear_bit(mid->mid, mlxsw_sp->bridge->mids_bitmap);
1984 kfree(mid);
1985 }
1986}
1987
1977int mlxsw_sp_switchdev_init(struct mlxsw_sp *mlxsw_sp) 1988int mlxsw_sp_switchdev_init(struct mlxsw_sp *mlxsw_sp)
1978{ 1989{
1979 struct mlxsw_sp_bridge *bridge; 1990 struct mlxsw_sp_bridge *bridge;
@@ -1996,7 +2007,7 @@ int mlxsw_sp_switchdev_init(struct mlxsw_sp *mlxsw_sp)
1996void mlxsw_sp_switchdev_fini(struct mlxsw_sp *mlxsw_sp) 2007void mlxsw_sp_switchdev_fini(struct mlxsw_sp *mlxsw_sp)
1997{ 2008{
1998 mlxsw_sp_fdb_fini(mlxsw_sp); 2009 mlxsw_sp_fdb_fini(mlxsw_sp);
1999 WARN_ON(!list_empty(&mlxsw_sp->bridge->mids_list)); 2010 mlxsw_sp_mids_fini(mlxsw_sp);
2000 WARN_ON(!list_empty(&mlxsw_sp->bridge->bridges_list)); 2011 WARN_ON(!list_empty(&mlxsw_sp->bridge->bridges_list));
2001 kfree(mlxsw_sp->bridge); 2012 kfree(mlxsw_sp->bridge);
2002} 2013}
diff --git a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
index 18750ff0ede6..4631ca8b8eb2 100644
--- a/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
+++ b/drivers/net/ethernet/netronome/nfp/nfp_net_common.c
@@ -513,6 +513,7 @@ nfp_net_tx_ring_init(struct nfp_net_tx_ring *tx_ring,
513 tx_ring->idx = idx; 513 tx_ring->idx = idx;
514 tx_ring->r_vec = r_vec; 514 tx_ring->r_vec = r_vec;
515 tx_ring->is_xdp = is_xdp; 515 tx_ring->is_xdp = is_xdp;
516 u64_stats_init(&tx_ring->r_vec->tx_sync);
516 517
517 tx_ring->qcidx = tx_ring->idx * nn->stride_tx; 518 tx_ring->qcidx = tx_ring->idx * nn->stride_tx;
518 tx_ring->qcp_q = nn->tx_bar + NFP_QCP_QUEUE_OFF(tx_ring->qcidx); 519 tx_ring->qcp_q = nn->tx_bar + NFP_QCP_QUEUE_OFF(tx_ring->qcidx);
@@ -532,6 +533,7 @@ nfp_net_rx_ring_init(struct nfp_net_rx_ring *rx_ring,
532 533
533 rx_ring->idx = idx; 534 rx_ring->idx = idx;
534 rx_ring->r_vec = r_vec; 535 rx_ring->r_vec = r_vec;
536 u64_stats_init(&rx_ring->r_vec->rx_sync);
535 537
536 rx_ring->fl_qcidx = rx_ring->idx * nn->stride_rx; 538 rx_ring->fl_qcidx = rx_ring->idx * nn->stride_rx;
537 rx_ring->qcp_fl = nn->rx_bar + NFP_QCP_QUEUE_OFF(rx_ring->fl_qcidx); 539 rx_ring->qcp_fl = nn->rx_bar + NFP_QCP_QUEUE_OFF(rx_ring->fl_qcidx);
diff --git a/drivers/net/ethernet/qlogic/qed/qed_mcp.c b/drivers/net/ethernet/qlogic/qed/qed_mcp.c
index 9da91045d167..3eb241657368 100644
--- a/drivers/net/ethernet/qlogic/qed/qed_mcp.c
+++ b/drivers/net/ethernet/qlogic/qed/qed_mcp.c
@@ -253,7 +253,7 @@ int qed_mcp_cmd_init(struct qed_hwfn *p_hwfn, struct qed_ptt *p_ptt)
253 size = MFW_DRV_MSG_MAX_DWORDS(p_info->mfw_mb_length) * sizeof(u32); 253 size = MFW_DRV_MSG_MAX_DWORDS(p_info->mfw_mb_length) * sizeof(u32);
254 p_info->mfw_mb_cur = kzalloc(size, GFP_KERNEL); 254 p_info->mfw_mb_cur = kzalloc(size, GFP_KERNEL);
255 p_info->mfw_mb_shadow = kzalloc(size, GFP_KERNEL); 255 p_info->mfw_mb_shadow = kzalloc(size, GFP_KERNEL);
256 if (!p_info->mfw_mb_shadow || !p_info->mfw_mb_addr) 256 if (!p_info->mfw_mb_cur || !p_info->mfw_mb_shadow)
257 goto err; 257 goto err;
258 258
259 return 0; 259 return 0;
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac1000_dma.c b/drivers/net/ethernet/stmicro/stmmac/dwmac1000_dma.c
index 22cf6353ba04..7ecf549c7f1c 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac1000_dma.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac1000_dma.c
@@ -205,7 +205,7 @@ static void dwmac1000_dump_dma_regs(void __iomem *ioaddr, u32 *reg_space)
205{ 205{
206 int i; 206 int i;
207 207
208 for (i = 0; i < 23; i++) 208 for (i = 0; i < NUM_DWMAC1000_DMA_REGS; i++)
209 if ((i < 12) || (i > 17)) 209 if ((i < 12) || (i > 17))
210 reg_space[DMA_BUS_MODE / 4 + i] = 210 reg_space[DMA_BUS_MODE / 4 + i] =
211 readl(ioaddr + DMA_BUS_MODE + i * 4); 211 readl(ioaddr + DMA_BUS_MODE + i * 4);
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac100_dma.c b/drivers/net/ethernet/stmicro/stmmac/dwmac100_dma.c
index eef2f222ce9a..6502b9aa3bf5 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac100_dma.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac100_dma.c
@@ -70,7 +70,7 @@ static void dwmac100_dump_dma_regs(void __iomem *ioaddr, u32 *reg_space)
70{ 70{
71 int i; 71 int i;
72 72
73 for (i = 0; i < 9; i++) 73 for (i = 0; i < NUM_DWMAC100_DMA_REGS; i++)
74 reg_space[DMA_BUS_MODE / 4 + i] = 74 reg_space[DMA_BUS_MODE / 4 + i] =
75 readl(ioaddr + DMA_BUS_MODE + i * 4); 75 readl(ioaddr + DMA_BUS_MODE + i * 4);
76 76
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h b/drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
index 9091df86723a..adc54006f884 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac_dma.h
@@ -136,6 +136,9 @@
136#define DMA_STATUS_TI 0x00000001 /* Transmit Interrupt */ 136#define DMA_STATUS_TI 0x00000001 /* Transmit Interrupt */
137#define DMA_CONTROL_FTF 0x00100000 /* Flush transmit FIFO */ 137#define DMA_CONTROL_FTF 0x00100000 /* Flush transmit FIFO */
138 138
139#define NUM_DWMAC100_DMA_REGS 9
140#define NUM_DWMAC1000_DMA_REGS 23
141
139void dwmac_enable_dma_transmission(void __iomem *ioaddr); 142void dwmac_enable_dma_transmission(void __iomem *ioaddr);
140void dwmac_enable_dma_irq(void __iomem *ioaddr, u32 chan); 143void dwmac_enable_dma_irq(void __iomem *ioaddr, u32 chan);
141void dwmac_disable_dma_irq(void __iomem *ioaddr, u32 chan); 144void dwmac_disable_dma_irq(void __iomem *ioaddr, u32 chan);
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
index babb39c646ff..af30b4857c3b 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_ethtool.c
@@ -33,6 +33,8 @@
33#define MAC100_ETHTOOL_NAME "st_mac100" 33#define MAC100_ETHTOOL_NAME "st_mac100"
34#define GMAC_ETHTOOL_NAME "st_gmac" 34#define GMAC_ETHTOOL_NAME "st_gmac"
35 35
36#define ETHTOOL_DMA_OFFSET 55
37
36struct stmmac_stats { 38struct stmmac_stats {
37 char stat_string[ETH_GSTRING_LEN]; 39 char stat_string[ETH_GSTRING_LEN];
38 int sizeof_stat; 40 int sizeof_stat;
@@ -442,6 +444,9 @@ static void stmmac_ethtool_gregs(struct net_device *dev,
442 444
443 priv->hw->mac->dump_regs(priv->hw, reg_space); 445 priv->hw->mac->dump_regs(priv->hw, reg_space);
444 priv->hw->dma->dump_regs(priv->ioaddr, reg_space); 446 priv->hw->dma->dump_regs(priv->ioaddr, reg_space);
447 /* Copy DMA registers to where ethtool expects them */
448 memcpy(&reg_space[ETHTOOL_DMA_OFFSET], &reg_space[DMA_BUS_MODE / 4],
449 NUM_DWMAC1000_DMA_REGS * 4);
445} 450}
446 451
447static void 452static void
diff --git a/drivers/net/ethernet/sun/sunhme.h b/drivers/net/ethernet/sun/sunhme.h
index 3af540adb3c5..fca1bca7f69d 100644
--- a/drivers/net/ethernet/sun/sunhme.h
+++ b/drivers/net/ethernet/sun/sunhme.h
@@ -13,9 +13,9 @@
13/* Happy Meal global registers. */ 13/* Happy Meal global registers. */
14#define GREG_SWRESET 0x000UL /* Software Reset */ 14#define GREG_SWRESET 0x000UL /* Software Reset */
15#define GREG_CFG 0x004UL /* Config Register */ 15#define GREG_CFG 0x004UL /* Config Register */
16#define GREG_STAT 0x108UL /* Status */ 16#define GREG_STAT 0x100UL /* Status */
17#define GREG_IMASK 0x10cUL /* Interrupt Mask */ 17#define GREG_IMASK 0x104UL /* Interrupt Mask */
18#define GREG_REG_SIZE 0x110UL 18#define GREG_REG_SIZE 0x108UL
19 19
20/* Global reset register. */ 20/* Global reset register. */
21#define GREG_RESET_ETX 0x01 21#define GREG_RESET_ETX 0x01
diff --git a/drivers/net/ethernet/ti/cpts.c b/drivers/net/ethernet/ti/cpts.c
index 32279d21c836..c2121d214f08 100644
--- a/drivers/net/ethernet/ti/cpts.c
+++ b/drivers/net/ethernet/ti/cpts.c
@@ -31,9 +31,18 @@
31 31
32#include "cpts.h" 32#include "cpts.h"
33 33
34#define CPTS_SKB_TX_WORK_TIMEOUT 1 /* jiffies */
35
36struct cpts_skb_cb_data {
37 unsigned long tmo;
38};
39
34#define cpts_read32(c, r) readl_relaxed(&c->reg->r) 40#define cpts_read32(c, r) readl_relaxed(&c->reg->r)
35#define cpts_write32(c, v, r) writel_relaxed(v, &c->reg->r) 41#define cpts_write32(c, v, r) writel_relaxed(v, &c->reg->r)
36 42
43static int cpts_match(struct sk_buff *skb, unsigned int ptp_class,
44 u16 ts_seqid, u8 ts_msgtype);
45
37static int event_expired(struct cpts_event *event) 46static int event_expired(struct cpts_event *event)
38{ 47{
39 return time_after(jiffies, event->tmo); 48 return time_after(jiffies, event->tmo);
@@ -77,6 +86,47 @@ static int cpts_purge_events(struct cpts *cpts)
77 return removed ? 0 : -1; 86 return removed ? 0 : -1;
78} 87}
79 88
89static bool cpts_match_tx_ts(struct cpts *cpts, struct cpts_event *event)
90{
91 struct sk_buff *skb, *tmp;
92 u16 seqid;
93 u8 mtype;
94 bool found = false;
95
96 mtype = (event->high >> MESSAGE_TYPE_SHIFT) & MESSAGE_TYPE_MASK;
97 seqid = (event->high >> SEQUENCE_ID_SHIFT) & SEQUENCE_ID_MASK;
98
99 /* no need to grab txq.lock as access is always done under cpts->lock */
100 skb_queue_walk_safe(&cpts->txq, skb, tmp) {
101 struct skb_shared_hwtstamps ssh;
102 unsigned int class = ptp_classify_raw(skb);
103 struct cpts_skb_cb_data *skb_cb =
104 (struct cpts_skb_cb_data *)skb->cb;
105
106 if (cpts_match(skb, class, seqid, mtype)) {
107 u64 ns = timecounter_cyc2time(&cpts->tc, event->low);
108
109 memset(&ssh, 0, sizeof(ssh));
110 ssh.hwtstamp = ns_to_ktime(ns);
111 skb_tstamp_tx(skb, &ssh);
112 found = true;
113 __skb_unlink(skb, &cpts->txq);
114 dev_consume_skb_any(skb);
115 dev_dbg(cpts->dev, "match tx timestamp mtype %u seqid %04x\n",
116 mtype, seqid);
117 } else if (time_after(jiffies, skb_cb->tmo)) {
118 /* timeout any expired skbs over 1s */
119 dev_dbg(cpts->dev,
120 "expiring tx timestamp mtype %u seqid %04x\n",
121 mtype, seqid);
122 __skb_unlink(skb, &cpts->txq);
123 dev_consume_skb_any(skb);
124 }
125 }
126
127 return found;
128}
129
80/* 130/*
81 * Returns zero if matching event type was found. 131 * Returns zero if matching event type was found.
82 */ 132 */
@@ -101,9 +151,15 @@ static int cpts_fifo_read(struct cpts *cpts, int match)
101 event->low = lo; 151 event->low = lo;
102 type = event_type(event); 152 type = event_type(event);
103 switch (type) { 153 switch (type) {
154 case CPTS_EV_TX:
155 if (cpts_match_tx_ts(cpts, event)) {
156 /* if the new event matches an existing skb,
157 * then don't queue it
158 */
159 break;
160 }
104 case CPTS_EV_PUSH: 161 case CPTS_EV_PUSH:
105 case CPTS_EV_RX: 162 case CPTS_EV_RX:
106 case CPTS_EV_TX:
107 list_del_init(&event->list); 163 list_del_init(&event->list);
108 list_add_tail(&event->list, &cpts->events); 164 list_add_tail(&event->list, &cpts->events);
109 break; 165 break;
@@ -224,6 +280,24 @@ static int cpts_ptp_enable(struct ptp_clock_info *ptp,
224 return -EOPNOTSUPP; 280 return -EOPNOTSUPP;
225} 281}
226 282
283static long cpts_overflow_check(struct ptp_clock_info *ptp)
284{
285 struct cpts *cpts = container_of(ptp, struct cpts, info);
286 unsigned long delay = cpts->ov_check_period;
287 struct timespec64 ts;
288 unsigned long flags;
289
290 spin_lock_irqsave(&cpts->lock, flags);
291 ts = ns_to_timespec64(timecounter_read(&cpts->tc));
292
293 if (!skb_queue_empty(&cpts->txq))
294 delay = CPTS_SKB_TX_WORK_TIMEOUT;
295 spin_unlock_irqrestore(&cpts->lock, flags);
296
297 pr_debug("cpts overflow check at %lld.%09lu\n", ts.tv_sec, ts.tv_nsec);
298 return (long)delay;
299}
300
227static struct ptp_clock_info cpts_info = { 301static struct ptp_clock_info cpts_info = {
228 .owner = THIS_MODULE, 302 .owner = THIS_MODULE,
229 .name = "CTPS timer", 303 .name = "CTPS timer",
@@ -236,18 +310,9 @@ static struct ptp_clock_info cpts_info = {
236 .gettime64 = cpts_ptp_gettime, 310 .gettime64 = cpts_ptp_gettime,
237 .settime64 = cpts_ptp_settime, 311 .settime64 = cpts_ptp_settime,
238 .enable = cpts_ptp_enable, 312 .enable = cpts_ptp_enable,
313 .do_aux_work = cpts_overflow_check,
239}; 314};
240 315
241static void cpts_overflow_check(struct work_struct *work)
242{
243 struct timespec64 ts;
244 struct cpts *cpts = container_of(work, struct cpts, overflow_work.work);
245
246 cpts_ptp_gettime(&cpts->info, &ts);
247 pr_debug("cpts overflow check at %lld.%09lu\n", ts.tv_sec, ts.tv_nsec);
248 schedule_delayed_work(&cpts->overflow_work, cpts->ov_check_period);
249}
250
251static int cpts_match(struct sk_buff *skb, unsigned int ptp_class, 316static int cpts_match(struct sk_buff *skb, unsigned int ptp_class,
252 u16 ts_seqid, u8 ts_msgtype) 317 u16 ts_seqid, u8 ts_msgtype)
253{ 318{
@@ -299,7 +364,7 @@ static u64 cpts_find_ts(struct cpts *cpts, struct sk_buff *skb, int ev_type)
299 return 0; 364 return 0;
300 365
301 spin_lock_irqsave(&cpts->lock, flags); 366 spin_lock_irqsave(&cpts->lock, flags);
302 cpts_fifo_read(cpts, CPTS_EV_PUSH); 367 cpts_fifo_read(cpts, -1);
303 list_for_each_safe(this, next, &cpts->events) { 368 list_for_each_safe(this, next, &cpts->events) {
304 event = list_entry(this, struct cpts_event, list); 369 event = list_entry(this, struct cpts_event, list);
305 if (event_expired(event)) { 370 if (event_expired(event)) {
@@ -317,6 +382,19 @@ static u64 cpts_find_ts(struct cpts *cpts, struct sk_buff *skb, int ev_type)
317 break; 382 break;
318 } 383 }
319 } 384 }
385
386 if (ev_type == CPTS_EV_TX && !ns) {
387 struct cpts_skb_cb_data *skb_cb =
388 (struct cpts_skb_cb_data *)skb->cb;
389 /* Not found, add frame to queue for processing later.
390 * The periodic FIFO check will handle this.
391 */
392 skb_get(skb);
393 /* get the timestamp for timeouts */
394 skb_cb->tmo = jiffies + msecs_to_jiffies(100);
395 __skb_queue_tail(&cpts->txq, skb);
396 ptp_schedule_worker(cpts->clock, 0);
397 }
320 spin_unlock_irqrestore(&cpts->lock, flags); 398 spin_unlock_irqrestore(&cpts->lock, flags);
321 399
322 return ns; 400 return ns;
@@ -358,6 +436,7 @@ int cpts_register(struct cpts *cpts)
358{ 436{
359 int err, i; 437 int err, i;
360 438
439 skb_queue_head_init(&cpts->txq);
361 INIT_LIST_HEAD(&cpts->events); 440 INIT_LIST_HEAD(&cpts->events);
362 INIT_LIST_HEAD(&cpts->pool); 441 INIT_LIST_HEAD(&cpts->pool);
363 for (i = 0; i < CPTS_MAX_EVENTS; i++) 442 for (i = 0; i < CPTS_MAX_EVENTS; i++)
@@ -378,7 +457,7 @@ int cpts_register(struct cpts *cpts)
378 } 457 }
379 cpts->phc_index = ptp_clock_index(cpts->clock); 458 cpts->phc_index = ptp_clock_index(cpts->clock);
380 459
381 schedule_delayed_work(&cpts->overflow_work, cpts->ov_check_period); 460 ptp_schedule_worker(cpts->clock, cpts->ov_check_period);
382 return 0; 461 return 0;
383 462
384err_ptp: 463err_ptp:
@@ -392,14 +471,15 @@ void cpts_unregister(struct cpts *cpts)
392 if (WARN_ON(!cpts->clock)) 471 if (WARN_ON(!cpts->clock))
393 return; 472 return;
394 473
395 cancel_delayed_work_sync(&cpts->overflow_work);
396
397 ptp_clock_unregister(cpts->clock); 474 ptp_clock_unregister(cpts->clock);
398 cpts->clock = NULL; 475 cpts->clock = NULL;
399 476
400 cpts_write32(cpts, 0, int_enable); 477 cpts_write32(cpts, 0, int_enable);
401 cpts_write32(cpts, 0, control); 478 cpts_write32(cpts, 0, control);
402 479
480 /* Drop all packet */
481 skb_queue_purge(&cpts->txq);
482
403 clk_disable(cpts->refclk); 483 clk_disable(cpts->refclk);
404} 484}
405EXPORT_SYMBOL_GPL(cpts_unregister); 485EXPORT_SYMBOL_GPL(cpts_unregister);
@@ -476,7 +556,6 @@ struct cpts *cpts_create(struct device *dev, void __iomem *regs,
476 cpts->dev = dev; 556 cpts->dev = dev;
477 cpts->reg = (struct cpsw_cpts __iomem *)regs; 557 cpts->reg = (struct cpsw_cpts __iomem *)regs;
478 spin_lock_init(&cpts->lock); 558 spin_lock_init(&cpts->lock);
479 INIT_DELAYED_WORK(&cpts->overflow_work, cpts_overflow_check);
480 559
481 ret = cpts_of_parse(cpts, node); 560 ret = cpts_of_parse(cpts, node);
482 if (ret) 561 if (ret)
diff --git a/drivers/net/ethernet/ti/cpts.h b/drivers/net/ethernet/ti/cpts.h
index 01ea82ba9cdc..73d73faf0f38 100644
--- a/drivers/net/ethernet/ti/cpts.h
+++ b/drivers/net/ethernet/ti/cpts.h
@@ -119,13 +119,13 @@ struct cpts {
119 u32 cc_mult; /* for the nominal frequency */ 119 u32 cc_mult; /* for the nominal frequency */
120 struct cyclecounter cc; 120 struct cyclecounter cc;
121 struct timecounter tc; 121 struct timecounter tc;
122 struct delayed_work overflow_work;
123 int phc_index; 122 int phc_index;
124 struct clk *refclk; 123 struct clk *refclk;
125 struct list_head events; 124 struct list_head events;
126 struct list_head pool; 125 struct list_head pool;
127 struct cpts_event pool_data[CPTS_MAX_EVENTS]; 126 struct cpts_event pool_data[CPTS_MAX_EVENTS];
128 unsigned long ov_check_period; 127 unsigned long ov_check_period;
128 struct sk_buff_head txq;
129}; 129};
130 130
131void cpts_rx_timestamp(struct cpts *cpts, struct sk_buff *skb); 131void cpts_rx_timestamp(struct cpts *cpts, struct sk_buff *skb);
diff --git a/drivers/net/ethernet/toshiba/tc35815.c b/drivers/net/ethernet/toshiba/tc35815.c
index d9db8a06afd2..cce9c9ed46aa 100644
--- a/drivers/net/ethernet/toshiba/tc35815.c
+++ b/drivers/net/ethernet/toshiba/tc35815.c
@@ -1338,7 +1338,7 @@ static int tc35815_send_packet(struct sk_buff *skb, struct net_device *dev)
1338static void tc35815_fatal_error_interrupt(struct net_device *dev, u32 status) 1338static void tc35815_fatal_error_interrupt(struct net_device *dev, u32 status)
1339{ 1339{
1340 static int count; 1340 static int count;
1341 printk(KERN_WARNING "%s: Fatal Error Intterrupt (%#x):", 1341 printk(KERN_WARNING "%s: Fatal Error Interrupt (%#x):",
1342 dev->name, status); 1342 dev->name, status);
1343 if (status & Int_IntPCI) 1343 if (status & Int_IntPCI)
1344 printk(" IntPCI"); 1344 printk(" IntPCI");
diff --git a/drivers/net/gtp.c b/drivers/net/gtp.c
index 1542e837fdfa..f38e32a7ec9c 100644
--- a/drivers/net/gtp.c
+++ b/drivers/net/gtp.c
@@ -364,7 +364,7 @@ static int gtp_dev_init(struct net_device *dev)
364 364
365 gtp->dev = dev; 365 gtp->dev = dev;
366 366
367 dev->tstats = alloc_percpu(struct pcpu_sw_netstats); 367 dev->tstats = netdev_alloc_pcpu_stats(struct pcpu_sw_netstats);
368 if (!dev->tstats) 368 if (!dev->tstats)
369 return -ENOMEM; 369 return -ENOMEM;
370 370
diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h
index d6c25580f8dd..12cc64bfcff8 100644
--- a/drivers/net/hyperv/hyperv_net.h
+++ b/drivers/net/hyperv/hyperv_net.h
@@ -765,7 +765,8 @@ struct netvsc_device {
765 u32 max_chn; 765 u32 max_chn;
766 u32 num_chn; 766 u32 num_chn;
767 767
768 refcount_t sc_offered; 768 atomic_t open_chn;
769 wait_queue_head_t subchan_open;
769 770
770 struct rndis_device *extension; 771 struct rndis_device *extension;
771 772
diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c
index 0a9167dd72fb..d18c3326a1f7 100644
--- a/drivers/net/hyperv/netvsc.c
+++ b/drivers/net/hyperv/netvsc.c
@@ -78,6 +78,7 @@ static struct netvsc_device *alloc_net_device(void)
78 net_device->max_pkt = RNDIS_MAX_PKT_DEFAULT; 78 net_device->max_pkt = RNDIS_MAX_PKT_DEFAULT;
79 net_device->pkt_align = RNDIS_PKT_ALIGN_DEFAULT; 79 net_device->pkt_align = RNDIS_PKT_ALIGN_DEFAULT;
80 init_completion(&net_device->channel_init_wait); 80 init_completion(&net_device->channel_init_wait);
81 init_waitqueue_head(&net_device->subchan_open);
81 82
82 return net_device; 83 return net_device;
83} 84}
@@ -1302,6 +1303,8 @@ int netvsc_device_add(struct hv_device *device,
1302 struct netvsc_channel *nvchan = &net_device->chan_table[i]; 1303 struct netvsc_channel *nvchan = &net_device->chan_table[i];
1303 1304
1304 nvchan->channel = device->channel; 1305 nvchan->channel = device->channel;
1306 u64_stats_init(&nvchan->tx_stats.syncp);
1307 u64_stats_init(&nvchan->rx_stats.syncp);
1305 } 1308 }
1306 1309
1307 /* Enable NAPI handler before init callbacks */ 1310 /* Enable NAPI handler before init callbacks */
diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c
index 63c98bbbc596..0d78727f1a14 100644
--- a/drivers/net/hyperv/netvsc_drv.c
+++ b/drivers/net/hyperv/netvsc_drv.c
@@ -315,14 +315,34 @@ static u32 init_page_array(void *hdr, u32 len, struct sk_buff *skb,
315 return slots_used; 315 return slots_used;
316} 316}
317 317
318/* Estimate number of page buffers neede to transmit 318static int count_skb_frag_slots(struct sk_buff *skb)
319 * Need at most 2 for RNDIS header plus skb body and fragments. 319{
320 */ 320 int i, frags = skb_shinfo(skb)->nr_frags;
321static unsigned int netvsc_get_slots(const struct sk_buff *skb) 321 int pages = 0;
322
323 for (i = 0; i < frags; i++) {
324 skb_frag_t *frag = skb_shinfo(skb)->frags + i;
325 unsigned long size = skb_frag_size(frag);
326 unsigned long offset = frag->page_offset;
327
328 /* Skip unused frames from start of page */
329 offset &= ~PAGE_MASK;
330 pages += PFN_UP(offset + size);
331 }
332 return pages;
333}
334
335static int netvsc_get_slots(struct sk_buff *skb)
322{ 336{
323 return PFN_UP(offset_in_page(skb->data) + skb_headlen(skb)) 337 char *data = skb->data;
324 + skb_shinfo(skb)->nr_frags 338 unsigned int offset = offset_in_page(data);
325 + 2; 339 unsigned int len = skb_headlen(skb);
340 int slots;
341 int frag_slots;
342
343 slots = DIV_ROUND_UP(offset + len, PAGE_SIZE);
344 frag_slots = count_skb_frag_slots(skb);
345 return slots + frag_slots;
326} 346}
327 347
328static u32 net_checksum_info(struct sk_buff *skb) 348static u32 net_checksum_info(struct sk_buff *skb)
@@ -360,18 +380,21 @@ static int netvsc_start_xmit(struct sk_buff *skb, struct net_device *net)
360 struct hv_page_buffer page_buf[MAX_PAGE_BUFFER_COUNT]; 380 struct hv_page_buffer page_buf[MAX_PAGE_BUFFER_COUNT];
361 struct hv_page_buffer *pb = page_buf; 381 struct hv_page_buffer *pb = page_buf;
362 382
363 /* We can only transmit MAX_PAGE_BUFFER_COUNT number 383 /* We will atmost need two pages to describe the rndis
384 * header. We can only transmit MAX_PAGE_BUFFER_COUNT number
364 * of pages in a single packet. If skb is scattered around 385 * of pages in a single packet. If skb is scattered around
365 * more pages we try linearizing it. 386 * more pages we try linearizing it.
366 */ 387 */
367 num_data_pgs = netvsc_get_slots(skb); 388
389 num_data_pgs = netvsc_get_slots(skb) + 2;
390
368 if (unlikely(num_data_pgs > MAX_PAGE_BUFFER_COUNT)) { 391 if (unlikely(num_data_pgs > MAX_PAGE_BUFFER_COUNT)) {
369 ++net_device_ctx->eth_stats.tx_scattered; 392 ++net_device_ctx->eth_stats.tx_scattered;
370 393
371 if (skb_linearize(skb)) 394 if (skb_linearize(skb))
372 goto no_memory; 395 goto no_memory;
373 396
374 num_data_pgs = netvsc_get_slots(skb); 397 num_data_pgs = netvsc_get_slots(skb) + 2;
375 if (num_data_pgs > MAX_PAGE_BUFFER_COUNT) { 398 if (num_data_pgs > MAX_PAGE_BUFFER_COUNT) {
376 ++net_device_ctx->eth_stats.tx_too_big; 399 ++net_device_ctx->eth_stats.tx_too_big;
377 goto drop; 400 goto drop;
diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis_filter.c
index 85c00e1c52b6..d6308ffda53e 100644
--- a/drivers/net/hyperv/rndis_filter.c
+++ b/drivers/net/hyperv/rndis_filter.c
@@ -1048,8 +1048,8 @@ static void netvsc_sc_open(struct vmbus_channel *new_sc)
1048 else 1048 else
1049 netif_napi_del(&nvchan->napi); 1049 netif_napi_del(&nvchan->napi);
1050 1050
1051 if (refcount_dec_and_test(&nvscdev->sc_offered)) 1051 atomic_inc(&nvscdev->open_chn);
1052 complete(&nvscdev->channel_init_wait); 1052 wake_up(&nvscdev->subchan_open);
1053} 1053}
1054 1054
1055int rndis_filter_device_add(struct hv_device *dev, 1055int rndis_filter_device_add(struct hv_device *dev,
@@ -1090,8 +1090,6 @@ int rndis_filter_device_add(struct hv_device *dev,
1090 net_device->max_chn = 1; 1090 net_device->max_chn = 1;
1091 net_device->num_chn = 1; 1091 net_device->num_chn = 1;
1092 1092
1093 refcount_set(&net_device->sc_offered, 0);
1094
1095 net_device->extension = rndis_device; 1093 net_device->extension = rndis_device;
1096 rndis_device->ndev = net; 1094 rndis_device->ndev = net;
1097 1095
@@ -1221,11 +1219,11 @@ int rndis_filter_device_add(struct hv_device *dev,
1221 rndis_device->ind_table[i] = ethtool_rxfh_indir_default(i, 1219 rndis_device->ind_table[i] = ethtool_rxfh_indir_default(i,
1222 net_device->num_chn); 1220 net_device->num_chn);
1223 1221
1222 atomic_set(&net_device->open_chn, 1);
1224 num_rss_qs = net_device->num_chn - 1; 1223 num_rss_qs = net_device->num_chn - 1;
1225 if (num_rss_qs == 0) 1224 if (num_rss_qs == 0)
1226 return 0; 1225 return 0;
1227 1226
1228 refcount_set(&net_device->sc_offered, num_rss_qs);
1229 vmbus_set_sc_create_callback(dev->channel, netvsc_sc_open); 1227 vmbus_set_sc_create_callback(dev->channel, netvsc_sc_open);
1230 1228
1231 init_packet = &net_device->channel_init_pkt; 1229 init_packet = &net_device->channel_init_pkt;
@@ -1242,15 +1240,19 @@ int rndis_filter_device_add(struct hv_device *dev,
1242 if (ret) 1240 if (ret)
1243 goto out; 1241 goto out;
1244 1242
1243 wait_for_completion(&net_device->channel_init_wait);
1245 if (init_packet->msg.v5_msg.subchn_comp.status != NVSP_STAT_SUCCESS) { 1244 if (init_packet->msg.v5_msg.subchn_comp.status != NVSP_STAT_SUCCESS) {
1246 ret = -ENODEV; 1245 ret = -ENODEV;
1247 goto out; 1246 goto out;
1248 } 1247 }
1249 wait_for_completion(&net_device->channel_init_wait);
1250 1248
1251 net_device->num_chn = 1 + 1249 net_device->num_chn = 1 +
1252 init_packet->msg.v5_msg.subchn_comp.num_subchannels; 1250 init_packet->msg.v5_msg.subchn_comp.num_subchannels;
1253 1251
1252 /* wait for all sub channels to open */
1253 wait_event(net_device->subchan_open,
1254 atomic_read(&net_device->open_chn) == net_device->num_chn);
1255
1254 /* ignore failues from setting rss parameters, still have channels */ 1256 /* ignore failues from setting rss parameters, still have channels */
1255 rndis_filter_set_rss_param(rndis_device, netvsc_hash_key, 1257 rndis_filter_set_rss_param(rndis_device, netvsc_hash_key,
1256 net_device->num_chn); 1258 net_device->num_chn);
diff --git a/drivers/net/ipvlan/ipvlan_main.c b/drivers/net/ipvlan/ipvlan_main.c
index f37e3c1fd4e7..8dab74a81303 100644
--- a/drivers/net/ipvlan/ipvlan_main.c
+++ b/drivers/net/ipvlan/ipvlan_main.c
@@ -192,7 +192,7 @@ static int ipvlan_init(struct net_device *dev)
192 192
193 netdev_lockdep_set_classes(dev); 193 netdev_lockdep_set_classes(dev);
194 194
195 ipvlan->pcpu_stats = alloc_percpu(struct ipvl_pcpu_stats); 195 ipvlan->pcpu_stats = netdev_alloc_pcpu_stats(struct ipvl_pcpu_stats);
196 if (!ipvlan->pcpu_stats) 196 if (!ipvlan->pcpu_stats)
197 return -ENOMEM; 197 return -ENOMEM;
198 198
diff --git a/drivers/net/irda/mcs7780.c b/drivers/net/irda/mcs7780.c
index 6f6ed75b63c9..765de3bedb88 100644
--- a/drivers/net/irda/mcs7780.c
+++ b/drivers/net/irda/mcs7780.c
@@ -141,9 +141,19 @@ static int mcs_set_reg(struct mcs_cb *mcs, __u16 reg, __u16 val)
141static int mcs_get_reg(struct mcs_cb *mcs, __u16 reg, __u16 * val) 141static int mcs_get_reg(struct mcs_cb *mcs, __u16 reg, __u16 * val)
142{ 142{
143 struct usb_device *dev = mcs->usbdev; 143 struct usb_device *dev = mcs->usbdev;
144 int ret = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), MCS_RDREQ, 144 void *dmabuf;
145 MCS_RD_RTYPE, 0, reg, val, 2, 145 int ret;
146 msecs_to_jiffies(MCS_CTRL_TIMEOUT)); 146
147 dmabuf = kmalloc(sizeof(__u16), GFP_KERNEL);
148 if (!dmabuf)
149 return -ENOMEM;
150
151 ret = usb_control_msg(dev, usb_rcvctrlpipe(dev, 0), MCS_RDREQ,
152 MCS_RD_RTYPE, 0, reg, dmabuf, 2,
153 msecs_to_jiffies(MCS_CTRL_TIMEOUT));
154
155 memcpy(val, dmabuf, sizeof(__u16));
156 kfree(dmabuf);
147 157
148 return ret; 158 return ret;
149} 159}
diff --git a/drivers/net/phy/Kconfig b/drivers/net/phy/Kconfig
index 2dda72004a7d..928fd892f167 100644
--- a/drivers/net/phy/Kconfig
+++ b/drivers/net/phy/Kconfig
@@ -7,7 +7,16 @@ menuconfig MDIO_DEVICE
7 help 7 help
8 MDIO devices and driver infrastructure code. 8 MDIO devices and driver infrastructure code.
9 9
10if MDIO_DEVICE 10config MDIO_BUS
11 tristate
12 default m if PHYLIB=m
13 default MDIO_DEVICE
14 help
15 This internal symbol is used for link time dependencies and it
16 reflects whether the mdio_bus/mdio_device code is built as a
17 loadable module or built-in.
18
19if MDIO_BUS
11 20
12config MDIO_BCM_IPROC 21config MDIO_BCM_IPROC
13 tristate "Broadcom iProc MDIO bus controller" 22 tristate "Broadcom iProc MDIO bus controller"
@@ -28,7 +37,6 @@ config MDIO_BCM_UNIMAC
28 37
29config MDIO_BITBANG 38config MDIO_BITBANG
30 tristate "Bitbanged MDIO buses" 39 tristate "Bitbanged MDIO buses"
31 depends on !(MDIO_DEVICE=y && PHYLIB=m)
32 help 40 help
33 This module implements the MDIO bus protocol in software, 41 This module implements the MDIO bus protocol in software,
34 for use by low level drivers that export the ability to 42 for use by low level drivers that export the ability to
@@ -127,7 +135,6 @@ config MDIO_THUNDER
127 tristate "ThunderX SOCs MDIO buses" 135 tristate "ThunderX SOCs MDIO buses"
128 depends on 64BIT 136 depends on 64BIT
129 depends on PCI 137 depends on PCI
130 depends on !(MDIO_DEVICE=y && PHYLIB=m)
131 select MDIO_CAVIUM 138 select MDIO_CAVIUM
132 help 139 help
133 This driver supports the MDIO interfaces found on Cavium 140 This driver supports the MDIO interfaces found on Cavium
diff --git a/drivers/net/phy/phy.c b/drivers/net/phy/phy.c
index d0626bf5c540..5068c582d502 100644
--- a/drivers/net/phy/phy.c
+++ b/drivers/net/phy/phy.c
@@ -749,6 +749,9 @@ void phy_stop_machine(struct phy_device *phydev)
749 if (phydev->state > PHY_UP && phydev->state != PHY_HALTED) 749 if (phydev->state > PHY_UP && phydev->state != PHY_HALTED)
750 phydev->state = PHY_UP; 750 phydev->state = PHY_UP;
751 mutex_unlock(&phydev->lock); 751 mutex_unlock(&phydev->lock);
752
753 /* Now we can run the state machine synchronously */
754 phy_state_machine(&phydev->state_queue.work);
752} 755}
753 756
754/** 757/**
diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c
index bd4303944e44..a404552555d4 100644
--- a/drivers/net/ppp/ppp_generic.c
+++ b/drivers/net/ppp/ppp_generic.c
@@ -1915,21 +1915,23 @@ static void __ppp_channel_push(struct channel *pch)
1915 spin_unlock(&pch->downl); 1915 spin_unlock(&pch->downl);
1916 /* see if there is anything from the attached unit to be sent */ 1916 /* see if there is anything from the attached unit to be sent */
1917 if (skb_queue_empty(&pch->file.xq)) { 1917 if (skb_queue_empty(&pch->file.xq)) {
1918 read_lock(&pch->upl);
1919 ppp = pch->ppp; 1918 ppp = pch->ppp;
1920 if (ppp) 1919 if (ppp)
1921 ppp_xmit_process(ppp); 1920 __ppp_xmit_process(ppp);
1922 read_unlock(&pch->upl);
1923 } 1921 }
1924} 1922}
1925 1923
1926static void ppp_channel_push(struct channel *pch) 1924static void ppp_channel_push(struct channel *pch)
1927{ 1925{
1928 local_bh_disable(); 1926 read_lock_bh(&pch->upl);
1929 1927 if (pch->ppp) {
1930 __ppp_channel_push(pch); 1928 (*this_cpu_ptr(pch->ppp->xmit_recursion))++;
1931 1929 __ppp_channel_push(pch);
1932 local_bh_enable(); 1930 (*this_cpu_ptr(pch->ppp->xmit_recursion))--;
1931 } else {
1932 __ppp_channel_push(pch);
1933 }
1934 read_unlock_bh(&pch->upl);
1933} 1935}
1934 1936
1935/* 1937/*
diff --git a/drivers/net/ppp/pptp.c b/drivers/net/ppp/pptp.c
index eac499c58aa7..6dde9a0cfe76 100644
--- a/drivers/net/ppp/pptp.c
+++ b/drivers/net/ppp/pptp.c
@@ -131,7 +131,6 @@ static void del_chan(struct pppox_sock *sock)
131 clear_bit(sock->proto.pptp.src_addr.call_id, callid_bitmap); 131 clear_bit(sock->proto.pptp.src_addr.call_id, callid_bitmap);
132 RCU_INIT_POINTER(callid_sock[sock->proto.pptp.src_addr.call_id], NULL); 132 RCU_INIT_POINTER(callid_sock[sock->proto.pptp.src_addr.call_id], NULL);
133 spin_unlock(&chan_lock); 133 spin_unlock(&chan_lock);
134 synchronize_rcu();
135} 134}
136 135
137static int pptp_xmit(struct ppp_channel *chan, struct sk_buff *skb) 136static int pptp_xmit(struct ppp_channel *chan, struct sk_buff *skb)
@@ -520,6 +519,7 @@ static int pptp_release(struct socket *sock)
520 519
521 po = pppox_sk(sk); 520 po = pppox_sk(sk);
522 del_chan(po); 521 del_chan(po);
522 synchronize_rcu();
523 523
524 pppox_unbind_sock(sk); 524 pppox_unbind_sock(sk);
525 sk->sk_state = PPPOX_DEAD; 525 sk->sk_state = PPPOX_DEAD;
diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
index 464570409796..ae53e899259f 100644
--- a/drivers/net/team/team.c
+++ b/drivers/net/team/team.c
@@ -60,11 +60,11 @@ static struct team_port *team_port_get_rtnl(const struct net_device *dev)
60static int __set_port_dev_addr(struct net_device *port_dev, 60static int __set_port_dev_addr(struct net_device *port_dev,
61 const unsigned char *dev_addr) 61 const unsigned char *dev_addr)
62{ 62{
63 struct sockaddr addr; 63 struct sockaddr_storage addr;
64 64
65 memcpy(addr.sa_data, dev_addr, port_dev->addr_len); 65 memcpy(addr.__data, dev_addr, port_dev->addr_len);
66 addr.sa_family = port_dev->type; 66 addr.ss_family = port_dev->type;
67 return dev_set_mac_address(port_dev, &addr); 67 return dev_set_mac_address(port_dev, (struct sockaddr *)&addr);
68} 68}
69 69
70static int team_port_set_orig_dev_addr(struct team_port *port) 70static int team_port_set_orig_dev_addr(struct team_port *port)
diff --git a/drivers/net/tun.c b/drivers/net/tun.c
index 3d4c24572ecd..32ad87345f57 100644
--- a/drivers/net/tun.c
+++ b/drivers/net/tun.c
@@ -2598,8 +2598,16 @@ static int __init tun_init(void)
2598 goto err_misc; 2598 goto err_misc;
2599 } 2599 }
2600 2600
2601 register_netdevice_notifier(&tun_notifier_block); 2601 ret = register_netdevice_notifier(&tun_notifier_block);
2602 if (ret) {
2603 pr_err("Can't register netdevice notifier\n");
2604 goto err_notifier;
2605 }
2606
2602 return 0; 2607 return 0;
2608
2609err_notifier:
2610 misc_deregister(&tun_miscdev);
2603err_misc: 2611err_misc:
2604 rtnl_link_unregister(&tun_link_ops); 2612 rtnl_link_unregister(&tun_link_ops);
2605err_linkops: 2613err_linkops:
diff --git a/drivers/net/usb/asix.h b/drivers/net/usb/asix.h
index d1092421aaa7..9a4171b90947 100644
--- a/drivers/net/usb/asix.h
+++ b/drivers/net/usb/asix.h
@@ -209,6 +209,7 @@ void asix_write_cmd_async(struct usbnet *dev, u8 cmd, u16 value,
209int asix_rx_fixup_internal(struct usbnet *dev, struct sk_buff *skb, 209int asix_rx_fixup_internal(struct usbnet *dev, struct sk_buff *skb,
210 struct asix_rx_fixup_info *rx); 210 struct asix_rx_fixup_info *rx);
211int asix_rx_fixup_common(struct usbnet *dev, struct sk_buff *skb); 211int asix_rx_fixup_common(struct usbnet *dev, struct sk_buff *skb);
212void asix_rx_fixup_common_free(struct asix_common_private *dp);
212 213
213struct sk_buff *asix_tx_fixup(struct usbnet *dev, struct sk_buff *skb, 214struct sk_buff *asix_tx_fixup(struct usbnet *dev, struct sk_buff *skb,
214 gfp_t flags); 215 gfp_t flags);
diff --git a/drivers/net/usb/asix_common.c b/drivers/net/usb/asix_common.c
index 7847436c441e..522d2900cd1d 100644
--- a/drivers/net/usb/asix_common.c
+++ b/drivers/net/usb/asix_common.c
@@ -75,6 +75,27 @@ void asix_write_cmd_async(struct usbnet *dev, u8 cmd, u16 value, u16 index,
75 value, index, data, size); 75 value, index, data, size);
76} 76}
77 77
78static void reset_asix_rx_fixup_info(struct asix_rx_fixup_info *rx)
79{
80 /* Reset the variables that have a lifetime outside of
81 * asix_rx_fixup_internal() so that future processing starts from a
82 * known set of initial conditions.
83 */
84
85 if (rx->ax_skb) {
86 /* Discard any incomplete Ethernet frame in the netdev buffer */
87 kfree_skb(rx->ax_skb);
88 rx->ax_skb = NULL;
89 }
90
91 /* Assume the Data header 32-bit word is at the start of the current
92 * or next URB socket buffer so reset all the state variables.
93 */
94 rx->remaining = 0;
95 rx->split_head = false;
96 rx->header = 0;
97}
98
78int asix_rx_fixup_internal(struct usbnet *dev, struct sk_buff *skb, 99int asix_rx_fixup_internal(struct usbnet *dev, struct sk_buff *skb,
79 struct asix_rx_fixup_info *rx) 100 struct asix_rx_fixup_info *rx)
80{ 101{
@@ -99,15 +120,7 @@ int asix_rx_fixup_internal(struct usbnet *dev, struct sk_buff *skb,
99 if (size != ((~rx->header >> 16) & 0x7ff)) { 120 if (size != ((~rx->header >> 16) & 0x7ff)) {
100 netdev_err(dev->net, "asix_rx_fixup() Data Header synchronisation was lost, remaining %d\n", 121 netdev_err(dev->net, "asix_rx_fixup() Data Header synchronisation was lost, remaining %d\n",
101 rx->remaining); 122 rx->remaining);
102 if (rx->ax_skb) { 123 reset_asix_rx_fixup_info(rx);
103 kfree_skb(rx->ax_skb);
104 rx->ax_skb = NULL;
105 /* Discard the incomplete netdev Ethernet frame
106 * and assume the Data header is at the start of
107 * the current URB socket buffer.
108 */
109 }
110 rx->remaining = 0;
111 } 124 }
112 } 125 }
113 126
@@ -139,11 +152,13 @@ int asix_rx_fixup_internal(struct usbnet *dev, struct sk_buff *skb,
139 if (size != ((~rx->header >> 16) & 0x7ff)) { 152 if (size != ((~rx->header >> 16) & 0x7ff)) {
140 netdev_err(dev->net, "asix_rx_fixup() Bad Header Length 0x%x, offset %d\n", 153 netdev_err(dev->net, "asix_rx_fixup() Bad Header Length 0x%x, offset %d\n",
141 rx->header, offset); 154 rx->header, offset);
155 reset_asix_rx_fixup_info(rx);
142 return 0; 156 return 0;
143 } 157 }
144 if (size > dev->net->mtu + ETH_HLEN + VLAN_HLEN) { 158 if (size > dev->net->mtu + ETH_HLEN + VLAN_HLEN) {
145 netdev_dbg(dev->net, "asix_rx_fixup() Bad RX Length %d\n", 159 netdev_dbg(dev->net, "asix_rx_fixup() Bad RX Length %d\n",
146 size); 160 size);
161 reset_asix_rx_fixup_info(rx);
147 return 0; 162 return 0;
148 } 163 }
149 164
@@ -168,8 +183,10 @@ int asix_rx_fixup_internal(struct usbnet *dev, struct sk_buff *skb,
168 if (rx->ax_skb) { 183 if (rx->ax_skb) {
169 skb_put_data(rx->ax_skb, skb->data + offset, 184 skb_put_data(rx->ax_skb, skb->data + offset,
170 copy_length); 185 copy_length);
171 if (!rx->remaining) 186 if (!rx->remaining) {
172 usbnet_skb_return(dev, rx->ax_skb); 187 usbnet_skb_return(dev, rx->ax_skb);
188 rx->ax_skb = NULL;
189 }
173 } 190 }
174 191
175 offset += (copy_length + 1) & 0xfffe; 192 offset += (copy_length + 1) & 0xfffe;
@@ -178,6 +195,7 @@ int asix_rx_fixup_internal(struct usbnet *dev, struct sk_buff *skb,
178 if (skb->len != offset) { 195 if (skb->len != offset) {
179 netdev_err(dev->net, "asix_rx_fixup() Bad SKB Length %d, %d\n", 196 netdev_err(dev->net, "asix_rx_fixup() Bad SKB Length %d, %d\n",
180 skb->len, offset); 197 skb->len, offset);
198 reset_asix_rx_fixup_info(rx);
181 return 0; 199 return 0;
182 } 200 }
183 201
@@ -192,6 +210,21 @@ int asix_rx_fixup_common(struct usbnet *dev, struct sk_buff *skb)
192 return asix_rx_fixup_internal(dev, skb, rx); 210 return asix_rx_fixup_internal(dev, skb, rx);
193} 211}
194 212
213void asix_rx_fixup_common_free(struct asix_common_private *dp)
214{
215 struct asix_rx_fixup_info *rx;
216
217 if (!dp)
218 return;
219
220 rx = &dp->rx_fixup_info;
221
222 if (rx->ax_skb) {
223 kfree_skb(rx->ax_skb);
224 rx->ax_skb = NULL;
225 }
226}
227
195struct sk_buff *asix_tx_fixup(struct usbnet *dev, struct sk_buff *skb, 228struct sk_buff *asix_tx_fixup(struct usbnet *dev, struct sk_buff *skb,
196 gfp_t flags) 229 gfp_t flags)
197{ 230{
diff --git a/drivers/net/usb/asix_devices.c b/drivers/net/usb/asix_devices.c
index a3aa0a27dfe5..b2ff88e69a81 100644
--- a/drivers/net/usb/asix_devices.c
+++ b/drivers/net/usb/asix_devices.c
@@ -764,6 +764,7 @@ static int ax88772_bind(struct usbnet *dev, struct usb_interface *intf)
764 764
765static void ax88772_unbind(struct usbnet *dev, struct usb_interface *intf) 765static void ax88772_unbind(struct usbnet *dev, struct usb_interface *intf)
766{ 766{
767 asix_rx_fixup_common_free(dev->driver_priv);
767 kfree(dev->driver_priv); 768 kfree(dev->driver_priv);
768} 769}
769 770
diff --git a/drivers/net/usb/lan78xx.c b/drivers/net/usb/lan78xx.c
index 5833f7e2a127..b99a7fb09f8e 100644
--- a/drivers/net/usb/lan78xx.c
+++ b/drivers/net/usb/lan78xx.c
@@ -2367,9 +2367,6 @@ static int lan78xx_reset(struct lan78xx_net *dev)
2367 /* Init LTM */ 2367 /* Init LTM */
2368 lan78xx_init_ltm(dev); 2368 lan78xx_init_ltm(dev);
2369 2369
2370 dev->net->hard_header_len += TX_OVERHEAD;
2371 dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len;
2372
2373 if (dev->udev->speed == USB_SPEED_SUPER) { 2370 if (dev->udev->speed == USB_SPEED_SUPER) {
2374 buf = DEFAULT_BURST_CAP_SIZE / SS_USB_PKT_SIZE; 2371 buf = DEFAULT_BURST_CAP_SIZE / SS_USB_PKT_SIZE;
2375 dev->rx_urb_size = DEFAULT_BURST_CAP_SIZE; 2372 dev->rx_urb_size = DEFAULT_BURST_CAP_SIZE;
@@ -2855,16 +2852,19 @@ static int lan78xx_bind(struct lan78xx_net *dev, struct usb_interface *intf)
2855 return ret; 2852 return ret;
2856 } 2853 }
2857 2854
2855 dev->net->hard_header_len += TX_OVERHEAD;
2856 dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len;
2857
2858 /* Init all registers */ 2858 /* Init all registers */
2859 ret = lan78xx_reset(dev); 2859 ret = lan78xx_reset(dev);
2860 2860
2861 lan78xx_mdio_init(dev); 2861 ret = lan78xx_mdio_init(dev);
2862 2862
2863 dev->net->flags |= IFF_MULTICAST; 2863 dev->net->flags |= IFF_MULTICAST;
2864 2864
2865 pdata->wol = WAKE_MAGIC; 2865 pdata->wol = WAKE_MAGIC;
2866 2866
2867 return 0; 2867 return ret;
2868} 2868}
2869 2869
2870static void lan78xx_unbind(struct lan78xx_net *dev, struct usb_interface *intf) 2870static void lan78xx_unbind(struct lan78xx_net *dev, struct usb_interface *intf)
@@ -3525,11 +3525,11 @@ static int lan78xx_probe(struct usb_interface *intf,
3525 udev = interface_to_usbdev(intf); 3525 udev = interface_to_usbdev(intf);
3526 udev = usb_get_dev(udev); 3526 udev = usb_get_dev(udev);
3527 3527
3528 ret = -ENOMEM;
3529 netdev = alloc_etherdev(sizeof(struct lan78xx_net)); 3528 netdev = alloc_etherdev(sizeof(struct lan78xx_net));
3530 if (!netdev) { 3529 if (!netdev) {
3531 dev_err(&intf->dev, "Error: OOM\n"); 3530 dev_err(&intf->dev, "Error: OOM\n");
3532 goto out1; 3531 ret = -ENOMEM;
3532 goto out1;
3533 } 3533 }
3534 3534
3535 /* netdev_printk() needs this */ 3535 /* netdev_printk() needs this */
@@ -3610,7 +3610,7 @@ static int lan78xx_probe(struct usb_interface *intf,
3610 ret = register_netdev(netdev); 3610 ret = register_netdev(netdev);
3611 if (ret != 0) { 3611 if (ret != 0) {
3612 netif_err(dev, probe, netdev, "couldn't register the device\n"); 3612 netif_err(dev, probe, netdev, "couldn't register the device\n");
3613 goto out2; 3613 goto out3;
3614 } 3614 }
3615 3615
3616 usb_set_intfdata(intf, dev); 3616 usb_set_intfdata(intf, dev);
diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
index 5894e3c9468f..8c3733608271 100644
--- a/drivers/net/usb/qmi_wwan.c
+++ b/drivers/net/usb/qmi_wwan.c
@@ -1175,6 +1175,7 @@ static const struct usb_device_id products[] = {
1175 {QMI_FIXED_INTF(0x19d2, 0x1428, 2)}, /* Telewell TW-LTE 4G v2 */ 1175 {QMI_FIXED_INTF(0x19d2, 0x1428, 2)}, /* Telewell TW-LTE 4G v2 */
1176 {QMI_FIXED_INTF(0x19d2, 0x2002, 4)}, /* ZTE (Vodafone) K3765-Z */ 1176 {QMI_FIXED_INTF(0x19d2, 0x2002, 4)}, /* ZTE (Vodafone) K3765-Z */
1177 {QMI_FIXED_INTF(0x2001, 0x7e19, 4)}, /* D-Link DWM-221 B1 */ 1177 {QMI_FIXED_INTF(0x2001, 0x7e19, 4)}, /* D-Link DWM-221 B1 */
1178 {QMI_FIXED_INTF(0x2001, 0x7e35, 4)}, /* D-Link DWM-222 */
1178 {QMI_FIXED_INTF(0x0f3d, 0x68a2, 8)}, /* Sierra Wireless MC7700 */ 1179 {QMI_FIXED_INTF(0x0f3d, 0x68a2, 8)}, /* Sierra Wireless MC7700 */
1179 {QMI_FIXED_INTF(0x114f, 0x68a2, 8)}, /* Sierra Wireless MC7750 */ 1180 {QMI_FIXED_INTF(0x114f, 0x68a2, 8)}, /* Sierra Wireless MC7750 */
1180 {QMI_FIXED_INTF(0x1199, 0x68a2, 8)}, /* Sierra Wireless MC7710 in QMI mode */ 1181 {QMI_FIXED_INTF(0x1199, 0x68a2, 8)}, /* Sierra Wireless MC7710 in QMI mode */
@@ -1340,10 +1341,14 @@ static int qmi_wwan_probe(struct usb_interface *intf,
1340static void qmi_wwan_disconnect(struct usb_interface *intf) 1341static void qmi_wwan_disconnect(struct usb_interface *intf)
1341{ 1342{
1342 struct usbnet *dev = usb_get_intfdata(intf); 1343 struct usbnet *dev = usb_get_intfdata(intf);
1343 struct qmi_wwan_state *info = (void *)&dev->data; 1344 struct qmi_wwan_state *info;
1344 struct list_head *iter; 1345 struct list_head *iter;
1345 struct net_device *ldev; 1346 struct net_device *ldev;
1346 1347
1348 /* called twice if separate control and data intf */
1349 if (!dev)
1350 return;
1351 info = (void *)&dev->data;
1347 if (info->flags & QMI_WWAN_FLAG_MUX) { 1352 if (info->flags & QMI_WWAN_FLAG_MUX) {
1348 if (!rtnl_trylock()) { 1353 if (!rtnl_trylock()) {
1349 restart_syscall(); 1354 restart_syscall();
diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
index 99a26a9efec1..98f17b05c68b 100644
--- a/drivers/net/virtio_net.c
+++ b/drivers/net/virtio_net.c
@@ -889,21 +889,20 @@ static int add_recvbuf_mergeable(struct virtnet_info *vi,
889 889
890 buf = (char *)page_address(alloc_frag->page) + alloc_frag->offset; 890 buf = (char *)page_address(alloc_frag->page) + alloc_frag->offset;
891 buf += headroom; /* advance address leaving hole at front of pkt */ 891 buf += headroom; /* advance address leaving hole at front of pkt */
892 ctx = (void *)(unsigned long)len;
893 get_page(alloc_frag->page); 892 get_page(alloc_frag->page);
894 alloc_frag->offset += len + headroom; 893 alloc_frag->offset += len + headroom;
895 hole = alloc_frag->size - alloc_frag->offset; 894 hole = alloc_frag->size - alloc_frag->offset;
896 if (hole < len + headroom) { 895 if (hole < len + headroom) {
897 /* To avoid internal fragmentation, if there is very likely not 896 /* To avoid internal fragmentation, if there is very likely not
898 * enough space for another buffer, add the remaining space to 897 * enough space for another buffer, add the remaining space to
899 * the current buffer. This extra space is not included in 898 * the current buffer.
900 * the truesize stored in ctx.
901 */ 899 */
902 len += hole; 900 len += hole;
903 alloc_frag->offset += hole; 901 alloc_frag->offset += hole;
904 } 902 }
905 903
906 sg_init_one(rq->sg, buf, len); 904 sg_init_one(rq->sg, buf, len);
905 ctx = (void *)(unsigned long)len;
907 err = virtqueue_add_inbuf_ctx(rq->vq, rq->sg, 1, buf, ctx, gfp); 906 err = virtqueue_add_inbuf_ctx(rq->vq, rq->sg, 1, buf, ctx, gfp);
908 if (err < 0) 907 if (err < 0)
909 put_page(virt_to_head_page(buf)); 908 put_page(virt_to_head_page(buf));
@@ -2743,9 +2742,9 @@ module_init(virtio_net_driver_init);
2743 2742
2744static __exit void virtio_net_driver_exit(void) 2743static __exit void virtio_net_driver_exit(void)
2745{ 2744{
2745 unregister_virtio_driver(&virtio_net_driver);
2746 cpuhp_remove_multi_state(CPUHP_VIRT_NET_DEAD); 2746 cpuhp_remove_multi_state(CPUHP_VIRT_NET_DEAD);
2747 cpuhp_remove_multi_state(virtionet_online); 2747 cpuhp_remove_multi_state(virtionet_online);
2748 unregister_virtio_driver(&virtio_net_driver);
2749} 2748}
2750module_exit(virtio_net_driver_exit); 2749module_exit(virtio_net_driver_exit);
2751 2750
diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
index 96aa7e6cf214..e17baac70f43 100644
--- a/drivers/net/vxlan.c
+++ b/drivers/net/vxlan.c
@@ -623,6 +623,7 @@ static struct sk_buff **vxlan_gro_receive(struct sock *sk,
623 623
624out: 624out:
625 skb_gro_remcsum_cleanup(skb, &grc); 625 skb_gro_remcsum_cleanup(skb, &grc);
626 skb->remcsum_offload = 0;
626 NAPI_GRO_CB(skb)->flush |= flush; 627 NAPI_GRO_CB(skb)->flush |= flush;
627 628
628 return pp; 629 return pp;
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
index 2153e8062b4c..5cc3a07dda9e 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
@@ -214,7 +214,7 @@ static netdev_tx_t brcmf_netdev_start_xmit(struct sk_buff *skb,
214 214
215 /* Make sure there's enough writeable headroom */ 215 /* Make sure there's enough writeable headroom */
216 if (skb_headroom(skb) < drvr->hdrlen || skb_header_cloned(skb)) { 216 if (skb_headroom(skb) < drvr->hdrlen || skb_header_cloned(skb)) {
217 head_delta = drvr->hdrlen - skb_headroom(skb); 217 head_delta = max_t(int, drvr->hdrlen - skb_headroom(skb), 0);
218 218
219 brcmf_dbg(INFO, "%s: insufficient headroom (%d)\n", 219 brcmf_dbg(INFO, "%s: insufficient headroom (%d)\n",
220 brcmf_ifname(ifp), head_delta); 220 brcmf_ifname(ifp), head_delta);
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
index fbcbb4325936..f3556122c6ac 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/sdio.c
@@ -2053,12 +2053,13 @@ static int brcmf_sdio_txpkt_hdalign(struct brcmf_sdio *bus, struct sk_buff *pkt)
2053 atomic_inc(&stats->pktcow_failed); 2053 atomic_inc(&stats->pktcow_failed);
2054 return -ENOMEM; 2054 return -ENOMEM;
2055 } 2055 }
2056 head_pad = 0;
2056 } 2057 }
2057 skb_push(pkt, head_pad); 2058 skb_push(pkt, head_pad);
2058 dat_buf = (u8 *)(pkt->data); 2059 dat_buf = (u8 *)(pkt->data);
2059 } 2060 }
2060 memset(dat_buf, 0, head_pad + bus->tx_hdrlen); 2061 memset(dat_buf, 0, head_pad + bus->tx_hdrlen);
2061 return 0; 2062 return head_pad;
2062} 2063}
2063 2064
2064/** 2065/**
@@ -4174,11 +4175,6 @@ struct brcmf_sdio *brcmf_sdio_probe(struct brcmf_sdio_dev *sdiodev)
4174 goto fail; 4175 goto fail;
4175 } 4176 }
4176 4177
4177 /* allocate scatter-gather table. sg support
4178 * will be disabled upon allocation failure.
4179 */
4180 brcmf_sdiod_sgtable_alloc(bus->sdiodev);
4181
4182 /* Query the F2 block size, set roundup accordingly */ 4178 /* Query the F2 block size, set roundup accordingly */
4183 bus->blocksize = bus->sdiodev->func[2]->cur_blksize; 4179 bus->blocksize = bus->sdiodev->func[2]->cur_blksize;
4184 bus->roundup = min(max_roundup, bus->blocksize); 4180 bus->roundup = min(max_roundup, bus->blocksize);
diff --git a/drivers/net/wireless/intel/iwlwifi/dvm/tx.c b/drivers/net/wireless/intel/iwlwifi/dvm/tx.c
index adaa2f0097cc..fb40ddfced99 100644
--- a/drivers/net/wireless/intel/iwlwifi/dvm/tx.c
+++ b/drivers/net/wireless/intel/iwlwifi/dvm/tx.c
@@ -1189,11 +1189,11 @@ void iwlagn_rx_reply_tx(struct iwl_priv *priv, struct iwl_rx_cmd_buffer *rxb)
1189 next_reclaimed; 1189 next_reclaimed;
1190 IWL_DEBUG_TX_REPLY(priv, "Next reclaimed packet:%d\n", 1190 IWL_DEBUG_TX_REPLY(priv, "Next reclaimed packet:%d\n",
1191 next_reclaimed); 1191 next_reclaimed);
1192 iwlagn_check_ratid_empty(priv, sta_id, tid);
1192 } 1193 }
1193 1194
1194 iwl_trans_reclaim(priv->trans, txq_id, ssn, &skbs); 1195 iwl_trans_reclaim(priv->trans, txq_id, ssn, &skbs);
1195 1196
1196 iwlagn_check_ratid_empty(priv, sta_id, tid);
1197 freed = 0; 1197 freed = 0;
1198 1198
1199 /* process frames */ 1199 /* process frames */
diff --git a/drivers/net/wireless/intel/iwlwifi/iwl-devtrace.h b/drivers/net/wireless/intel/iwlwifi/iwl-devtrace.h
index 545d14b0bc92..f5c1127253cb 100644
--- a/drivers/net/wireless/intel/iwlwifi/iwl-devtrace.h
+++ b/drivers/net/wireless/intel/iwlwifi/iwl-devtrace.h
@@ -55,8 +55,8 @@ static inline bool iwl_trace_data(struct sk_buff *skb)
55 /* also account for the RFC 1042 header, of course */ 55 /* also account for the RFC 1042 header, of course */
56 offs += 6; 56 offs += 6;
57 57
58 return skb->len > offs + 2 && 58 return skb->len <= offs + 2 ||
59 *(__be16 *)(skb->data + offs) == cpu_to_be16(ETH_P_PAE); 59 *(__be16 *)(skb->data + offs) != cpu_to_be16(ETH_P_PAE);
60} 60}
61 61
62static inline size_t iwl_rx_trace_len(const struct iwl_trans *trans, 62static inline size_t iwl_rx_trace_len(const struct iwl_trans *trans,
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
index bcde1ba0f1c8..c7b1e58e3384 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c
@@ -1084,7 +1084,13 @@ int __iwl_mvm_mac_start(struct iwl_mvm *mvm)
1084 1084
1085 lockdep_assert_held(&mvm->mutex); 1085 lockdep_assert_held(&mvm->mutex);
1086 1086
1087 if (test_bit(IWL_MVM_STATUS_IN_HW_RESTART, &mvm->status)) { 1087 if (test_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED, &mvm->status)) {
1088 /*
1089 * Now convert the HW_RESTART_REQUESTED flag to IN_HW_RESTART
1090 * so later code will - from now on - see that we're doing it.
1091 */
1092 set_bit(IWL_MVM_STATUS_IN_HW_RESTART, &mvm->status);
1093 clear_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED, &mvm->status);
1088 /* Clean up some internal and mac80211 state on restart */ 1094 /* Clean up some internal and mac80211 state on restart */
1089 iwl_mvm_restart_cleanup(mvm); 1095 iwl_mvm_restart_cleanup(mvm);
1090 } else { 1096 } else {
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h b/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
index eaacfaf37206..ddd8719f27b8 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h
@@ -1090,6 +1090,7 @@ struct iwl_mvm {
1090 * @IWL_MVM_STATUS_HW_RFKILL: HW RF-kill is asserted 1090 * @IWL_MVM_STATUS_HW_RFKILL: HW RF-kill is asserted
1091 * @IWL_MVM_STATUS_HW_CTKILL: CT-kill is active 1091 * @IWL_MVM_STATUS_HW_CTKILL: CT-kill is active
1092 * @IWL_MVM_STATUS_ROC_RUNNING: remain-on-channel is running 1092 * @IWL_MVM_STATUS_ROC_RUNNING: remain-on-channel is running
1093 * @IWL_MVM_STATUS_HW_RESTART_REQUESTED: HW restart was requested
1093 * @IWL_MVM_STATUS_IN_HW_RESTART: HW restart is active 1094 * @IWL_MVM_STATUS_IN_HW_RESTART: HW restart is active
1094 * @IWL_MVM_STATUS_IN_D0I3: NIC is in D0i3 1095 * @IWL_MVM_STATUS_IN_D0I3: NIC is in D0i3
1095 * @IWL_MVM_STATUS_ROC_AUX_RUNNING: AUX remain-on-channel is running 1096 * @IWL_MVM_STATUS_ROC_AUX_RUNNING: AUX remain-on-channel is running
@@ -1101,6 +1102,7 @@ enum iwl_mvm_status {
1101 IWL_MVM_STATUS_HW_RFKILL, 1102 IWL_MVM_STATUS_HW_RFKILL,
1102 IWL_MVM_STATUS_HW_CTKILL, 1103 IWL_MVM_STATUS_HW_CTKILL,
1103 IWL_MVM_STATUS_ROC_RUNNING, 1104 IWL_MVM_STATUS_ROC_RUNNING,
1105 IWL_MVM_STATUS_HW_RESTART_REQUESTED,
1104 IWL_MVM_STATUS_IN_HW_RESTART, 1106 IWL_MVM_STATUS_IN_HW_RESTART,
1105 IWL_MVM_STATUS_IN_D0I3, 1107 IWL_MVM_STATUS_IN_D0I3,
1106 IWL_MVM_STATUS_ROC_AUX_RUNNING, 1108 IWL_MVM_STATUS_ROC_AUX_RUNNING,
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
index 4d1188b8736a..9c175d5e9d67 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/ops.c
@@ -1235,9 +1235,8 @@ void iwl_mvm_nic_restart(struct iwl_mvm *mvm, bool fw_error)
1235 */ 1235 */
1236 if (!mvm->fw_restart && fw_error) { 1236 if (!mvm->fw_restart && fw_error) {
1237 iwl_mvm_fw_dbg_collect_desc(mvm, &iwl_mvm_dump_desc_assert, 1237 iwl_mvm_fw_dbg_collect_desc(mvm, &iwl_mvm_dump_desc_assert,
1238 NULL); 1238 NULL);
1239 } else if (test_and_set_bit(IWL_MVM_STATUS_IN_HW_RESTART, 1239 } else if (test_bit(IWL_MVM_STATUS_IN_HW_RESTART, &mvm->status)) {
1240 &mvm->status)) {
1241 struct iwl_mvm_reprobe *reprobe; 1240 struct iwl_mvm_reprobe *reprobe;
1242 1241
1243 IWL_ERR(mvm, 1242 IWL_ERR(mvm,
@@ -1268,6 +1267,7 @@ void iwl_mvm_nic_restart(struct iwl_mvm *mvm, bool fw_error)
1268 1267
1269 if (fw_error && mvm->fw_restart > 0) 1268 if (fw_error && mvm->fw_restart > 0)
1270 mvm->fw_restart--; 1269 mvm->fw_restart--;
1270 set_bit(IWL_MVM_STATUS_HW_RESTART_REQUESTED, &mvm->status);
1271 ieee80211_restart_hw(mvm->hw); 1271 ieee80211_restart_hw(mvm->hw);
1272 } 1272 }
1273} 1273}
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
index 4df5f13fcdae..ab66b4394dfc 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/sta.c
@@ -277,6 +277,18 @@ static void iwl_mvm_rx_agg_session_expired(unsigned long data)
277 277
278 /* Timer expired */ 278 /* Timer expired */
279 sta = rcu_dereference(ba_data->mvm->fw_id_to_mac_id[ba_data->sta_id]); 279 sta = rcu_dereference(ba_data->mvm->fw_id_to_mac_id[ba_data->sta_id]);
280
281 /*
282 * sta should be valid unless the following happens:
283 * The firmware asserts which triggers a reconfig flow, but
284 * the reconfig fails before we set the pointer to sta into
285 * the fw_id_to_mac_id pointer table. Mac80211 can't stop
286 * A-MDPU and hence the timer continues to run. Then, the
287 * timer expires and sta is NULL.
288 */
289 if (!sta)
290 goto unlock;
291
280 mvm_sta = iwl_mvm_sta_from_mac80211(sta); 292 mvm_sta = iwl_mvm_sta_from_mac80211(sta);
281 ieee80211_stop_rx_ba_session_offl(mvm_sta->vif, 293 ieee80211_stop_rx_ba_session_offl(mvm_sta->vif,
282 sta->addr, ba_data->tid); 294 sta->addr, ba_data->tid);
@@ -2015,7 +2027,8 @@ int iwl_mvm_send_add_bcast_sta(struct iwl_mvm *mvm, struct ieee80211_vif *vif)
2015 IWL_MAX_TID_COUNT, 2027 IWL_MAX_TID_COUNT,
2016 wdg_timeout); 2028 wdg_timeout);
2017 2029
2018 if (vif->type == NL80211_IFTYPE_AP) 2030 if (vif->type == NL80211_IFTYPE_AP ||
2031 vif->type == NL80211_IFTYPE_ADHOC)
2019 mvm->probe_queue = queue; 2032 mvm->probe_queue = queue;
2020 else if (vif->type == NL80211_IFTYPE_P2P_DEVICE) 2033 else if (vif->type == NL80211_IFTYPE_P2P_DEVICE)
2021 mvm->p2p_dev_queue = queue; 2034 mvm->p2p_dev_queue = queue;
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c
index 92b3a55d0fbc..f95eec52508e 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/trans.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/trans.c
@@ -3150,7 +3150,8 @@ struct iwl_trans *iwl_trans_pcie_alloc(struct pci_dev *pdev,
3150 init_waitqueue_head(&trans_pcie->d0i3_waitq); 3150 init_waitqueue_head(&trans_pcie->d0i3_waitq);
3151 3151
3152 if (trans_pcie->msix_enabled) { 3152 if (trans_pcie->msix_enabled) {
3153 if (iwl_pcie_init_msix_handler(pdev, trans_pcie)) 3153 ret = iwl_pcie_init_msix_handler(pdev, trans_pcie);
3154 if (ret)
3154 goto out_no_pci; 3155 goto out_no_pci;
3155 } else { 3156 } else {
3156 ret = iwl_pcie_alloc_ict(trans); 3157 ret = iwl_pcie_alloc_ict(trans);
diff --git a/drivers/net/wireless/intel/iwlwifi/pcie/tx.c b/drivers/net/wireless/intel/iwlwifi/pcie/tx.c
index de50418adae5..034bdb4a0b06 100644
--- a/drivers/net/wireless/intel/iwlwifi/pcie/tx.c
+++ b/drivers/net/wireless/intel/iwlwifi/pcie/tx.c
@@ -298,6 +298,9 @@ void iwl_pcie_txq_check_wrptrs(struct iwl_trans *trans)
298 for (i = 0; i < trans->cfg->base_params->num_of_queues; i++) { 298 for (i = 0; i < trans->cfg->base_params->num_of_queues; i++) {
299 struct iwl_txq *txq = trans_pcie->txq[i]; 299 struct iwl_txq *txq = trans_pcie->txq[i];
300 300
301 if (!test_bit(i, trans_pcie->queue_used))
302 continue;
303
301 spin_lock_bh(&txq->lock); 304 spin_lock_bh(&txq->lock);
302 if (txq->need_update) { 305 if (txq->need_update) {
303 iwl_pcie_txq_inc_wr_ptr(trans, txq); 306 iwl_pcie_txq_inc_wr_ptr(trans, txq);
diff --git a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
index 2a7ad5ffe997..cd5dc6dcb19f 100644
--- a/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
+++ b/drivers/net/wireless/realtek/rtlwifi/rtl8723be/hw.c
@@ -846,9 +846,6 @@ static bool _rtl8723be_init_mac(struct ieee80211_hw *hw)
846 return false; 846 return false;
847 } 847 }
848 848
849 if (rtlpriv->cfg->ops->get_btc_status())
850 rtlpriv->btcoexist.btc_ops->btc_power_on_setting(rtlpriv);
851
852 bytetmp = rtl_read_byte(rtlpriv, REG_MULTI_FUNC_CTRL); 849 bytetmp = rtl_read_byte(rtlpriv, REG_MULTI_FUNC_CTRL);
853 rtl_write_byte(rtlpriv, REG_MULTI_FUNC_CTRL, bytetmp | BIT(3)); 850 rtl_write_byte(rtlpriv, REG_MULTI_FUNC_CTRL, bytetmp | BIT(3));
854 851
diff --git a/drivers/net/wireless/realtek/rtlwifi/wifi.h b/drivers/net/wireless/realtek/rtlwifi/wifi.h
index fb1ebb01133f..70723e67b7d7 100644
--- a/drivers/net/wireless/realtek/rtlwifi/wifi.h
+++ b/drivers/net/wireless/realtek/rtlwifi/wifi.h
@@ -2547,7 +2547,6 @@ struct bt_coexist_info {
2547struct rtl_btc_ops { 2547struct rtl_btc_ops {
2548 void (*btc_init_variables) (struct rtl_priv *rtlpriv); 2548 void (*btc_init_variables) (struct rtl_priv *rtlpriv);
2549 void (*btc_init_hal_vars) (struct rtl_priv *rtlpriv); 2549 void (*btc_init_hal_vars) (struct rtl_priv *rtlpriv);
2550 void (*btc_power_on_setting)(struct rtl_priv *rtlpriv);
2551 void (*btc_init_hw_config) (struct rtl_priv *rtlpriv); 2550 void (*btc_init_hw_config) (struct rtl_priv *rtlpriv);
2552 void (*btc_ips_notify) (struct rtl_priv *rtlpriv, u8 type); 2551 void (*btc_ips_notify) (struct rtl_priv *rtlpriv, u8 type);
2553 void (*btc_lps_notify)(struct rtl_priv *rtlpriv, u8 type); 2552 void (*btc_lps_notify)(struct rtl_priv *rtlpriv, u8 type);
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index 3b77cfe5aa1e..c49f1f8b2e57 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -1995,6 +1995,9 @@ static ssize_t wwid_show(struct device *dev, struct device_attribute *attr,
1995 int serial_len = sizeof(ctrl->serial); 1995 int serial_len = sizeof(ctrl->serial);
1996 int model_len = sizeof(ctrl->model); 1996 int model_len = sizeof(ctrl->model);
1997 1997
1998 if (!uuid_is_null(&ns->uuid))
1999 return sprintf(buf, "uuid.%pU\n", &ns->uuid);
2000
1998 if (memchr_inv(ns->nguid, 0, sizeof(ns->nguid))) 2001 if (memchr_inv(ns->nguid, 0, sizeof(ns->nguid)))
1999 return sprintf(buf, "eui.%16phN\n", ns->nguid); 2002 return sprintf(buf, "eui.%16phN\n", ns->nguid);
2000 2003
@@ -2709,7 +2712,8 @@ void nvme_kill_queues(struct nvme_ctrl *ctrl)
2709 mutex_lock(&ctrl->namespaces_mutex); 2712 mutex_lock(&ctrl->namespaces_mutex);
2710 2713
2711 /* Forcibly unquiesce queues to avoid blocking dispatch */ 2714 /* Forcibly unquiesce queues to avoid blocking dispatch */
2712 blk_mq_unquiesce_queue(ctrl->admin_q); 2715 if (ctrl->admin_q)
2716 blk_mq_unquiesce_queue(ctrl->admin_q);
2713 2717
2714 list_for_each_entry(ns, &ctrl->namespaces, list) { 2718 list_for_each_entry(ns, &ctrl->namespaces, list) {
2715 /* 2719 /*
diff --git a/drivers/nvme/host/fc.c b/drivers/nvme/host/fc.c
index d666ada39a9b..5c2a08ef08ba 100644
--- a/drivers/nvme/host/fc.c
+++ b/drivers/nvme/host/fc.c
@@ -1888,7 +1888,7 @@ nvme_fc_start_fcp_op(struct nvme_fc_ctrl *ctrl, struct nvme_fc_queue *queue,
1888 * the target device is present 1888 * the target device is present
1889 */ 1889 */
1890 if (ctrl->rport->remoteport.port_state != FC_OBJSTATE_ONLINE) 1890 if (ctrl->rport->remoteport.port_state != FC_OBJSTATE_ONLINE)
1891 return BLK_STS_IOERR; 1891 goto busy;
1892 1892
1893 if (!nvme_fc_ctrl_get(ctrl)) 1893 if (!nvme_fc_ctrl_get(ctrl))
1894 return BLK_STS_IOERR; 1894 return BLK_STS_IOERR;
@@ -1958,22 +1958,25 @@ nvme_fc_start_fcp_op(struct nvme_fc_ctrl *ctrl, struct nvme_fc_queue *queue,
1958 queue->lldd_handle, &op->fcp_req); 1958 queue->lldd_handle, &op->fcp_req);
1959 1959
1960 if (ret) { 1960 if (ret) {
1961 if (op->rq) /* normal request */ 1961 if (!(op->flags & FCOP_FLAGS_AEN))
1962 nvme_fc_unmap_data(ctrl, op->rq, op); 1962 nvme_fc_unmap_data(ctrl, op->rq, op);
1963 /* else - aen. no cleanup needed */
1964 1963
1965 nvme_fc_ctrl_put(ctrl); 1964 nvme_fc_ctrl_put(ctrl);
1966 1965
1967 if (ret != -EBUSY) 1966 if (ctrl->rport->remoteport.port_state == FC_OBJSTATE_ONLINE &&
1967 ret != -EBUSY)
1968 return BLK_STS_IOERR; 1968 return BLK_STS_IOERR;
1969 1969
1970 if (op->rq) 1970 goto busy;
1971 blk_mq_delay_run_hw_queue(queue->hctx, NVMEFC_QUEUE_DELAY);
1972
1973 return BLK_STS_RESOURCE;
1974 } 1971 }
1975 1972
1976 return BLK_STS_OK; 1973 return BLK_STS_OK;
1974
1975busy:
1976 if (!(op->flags & FCOP_FLAGS_AEN) && queue->hctx)
1977 blk_mq_delay_run_hw_queue(queue->hctx, NVMEFC_QUEUE_DELAY);
1978
1979 return BLK_STS_RESOURCE;
1977} 1980}
1978 1981
1979static blk_status_t 1982static blk_status_t
@@ -2802,66 +2805,70 @@ out_fail:
2802 return ERR_PTR(ret); 2805 return ERR_PTR(ret);
2803} 2806}
2804 2807
2805enum {
2806 FCT_TRADDR_ERR = 0,
2807 FCT_TRADDR_WWNN = 1 << 0,
2808 FCT_TRADDR_WWPN = 1 << 1,
2809};
2810 2808
2811struct nvmet_fc_traddr { 2809struct nvmet_fc_traddr {
2812 u64 nn; 2810 u64 nn;
2813 u64 pn; 2811 u64 pn;
2814}; 2812};
2815 2813
2816static const match_table_t traddr_opt_tokens = {
2817 { FCT_TRADDR_WWNN, "nn-%s" },
2818 { FCT_TRADDR_WWPN, "pn-%s" },
2819 { FCT_TRADDR_ERR, NULL }
2820};
2821
2822static int 2814static int
2823nvme_fc_parse_address(struct nvmet_fc_traddr *traddr, char *buf) 2815__nvme_fc_parse_u64(substring_t *sstr, u64 *val)
2824{ 2816{
2825 substring_t args[MAX_OPT_ARGS];
2826 char *options, *o, *p;
2827 int token, ret = 0;
2828 u64 token64; 2817 u64 token64;
2829 2818
2830 options = o = kstrdup(buf, GFP_KERNEL); 2819 if (match_u64(sstr, &token64))
2831 if (!options) 2820 return -EINVAL;
2832 return -ENOMEM; 2821 *val = token64;
2833 2822
2834 while ((p = strsep(&o, ":\n")) != NULL) { 2823 return 0;
2835 if (!*p) 2824}
2836 continue;
2837 2825
2838 token = match_token(p, traddr_opt_tokens, args); 2826/*
2839 switch (token) { 2827 * This routine validates and extracts the WWN's from the TRADDR string.
2840 case FCT_TRADDR_WWNN: 2828 * As kernel parsers need the 0x to determine number base, universally
2841 if (match_u64(args, &token64)) { 2829 * build string to parse with 0x prefix before parsing name strings.
2842 ret = -EINVAL; 2830 */
2843 goto out; 2831static int
2844 } 2832nvme_fc_parse_traddr(struct nvmet_fc_traddr *traddr, char *buf, size_t blen)
2845 traddr->nn = token64; 2833{
2846 break; 2834 char name[2 + NVME_FC_TRADDR_HEXNAMELEN + 1];
2847 case FCT_TRADDR_WWPN: 2835 substring_t wwn = { name, &name[sizeof(name)-1] };
2848 if (match_u64(args, &token64)) { 2836 int nnoffset, pnoffset;
2849 ret = -EINVAL; 2837
2850 goto out; 2838 /* validate it string one of the 2 allowed formats */
2851 } 2839 if (strnlen(buf, blen) == NVME_FC_TRADDR_MAXLENGTH &&
2852 traddr->pn = token64; 2840 !strncmp(buf, "nn-0x", NVME_FC_TRADDR_OXNNLEN) &&
2853 break; 2841 !strncmp(&buf[NVME_FC_TRADDR_MAX_PN_OFFSET],
2854 default: 2842 "pn-0x", NVME_FC_TRADDR_OXNNLEN)) {
2855 pr_warn("unknown traddr token or missing value '%s'\n", 2843 nnoffset = NVME_FC_TRADDR_OXNNLEN;
2856 p); 2844 pnoffset = NVME_FC_TRADDR_MAX_PN_OFFSET +
2857 ret = -EINVAL; 2845 NVME_FC_TRADDR_OXNNLEN;
2858 goto out; 2846 } else if ((strnlen(buf, blen) == NVME_FC_TRADDR_MINLENGTH &&
2859 } 2847 !strncmp(buf, "nn-", NVME_FC_TRADDR_NNLEN) &&
2860 } 2848 !strncmp(&buf[NVME_FC_TRADDR_MIN_PN_OFFSET],
2849 "pn-", NVME_FC_TRADDR_NNLEN))) {
2850 nnoffset = NVME_FC_TRADDR_NNLEN;
2851 pnoffset = NVME_FC_TRADDR_MIN_PN_OFFSET + NVME_FC_TRADDR_NNLEN;
2852 } else
2853 goto out_einval;
2861 2854
2862out: 2855 name[0] = '0';
2863 kfree(options); 2856 name[1] = 'x';
2864 return ret; 2857 name[2 + NVME_FC_TRADDR_HEXNAMELEN] = 0;
2858
2859 memcpy(&name[2], &buf[nnoffset], NVME_FC_TRADDR_HEXNAMELEN);
2860 if (__nvme_fc_parse_u64(&wwn, &traddr->nn))
2861 goto out_einval;
2862
2863 memcpy(&name[2], &buf[pnoffset], NVME_FC_TRADDR_HEXNAMELEN);
2864 if (__nvme_fc_parse_u64(&wwn, &traddr->pn))
2865 goto out_einval;
2866
2867 return 0;
2868
2869out_einval:
2870 pr_warn("%s: bad traddr string\n", __func__);
2871 return -EINVAL;
2865} 2872}
2866 2873
2867static struct nvme_ctrl * 2874static struct nvme_ctrl *
@@ -2875,11 +2882,11 @@ nvme_fc_create_ctrl(struct device *dev, struct nvmf_ctrl_options *opts)
2875 unsigned long flags; 2882 unsigned long flags;
2876 int ret; 2883 int ret;
2877 2884
2878 ret = nvme_fc_parse_address(&raddr, opts->traddr); 2885 ret = nvme_fc_parse_traddr(&raddr, opts->traddr, NVMF_TRADDR_SIZE);
2879 if (ret || !raddr.nn || !raddr.pn) 2886 if (ret || !raddr.nn || !raddr.pn)
2880 return ERR_PTR(-EINVAL); 2887 return ERR_PTR(-EINVAL);
2881 2888
2882 ret = nvme_fc_parse_address(&laddr, opts->host_traddr); 2889 ret = nvme_fc_parse_traddr(&laddr, opts->host_traddr, NVMF_TRADDR_SIZE);
2883 if (ret || !laddr.nn || !laddr.pn) 2890 if (ret || !laddr.nn || !laddr.pn)
2884 return ERR_PTR(-EINVAL); 2891 return ERR_PTR(-EINVAL);
2885 2892
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c
index 8569ee771269..cd888a47d0fc 100644
--- a/drivers/nvme/host/pci.c
+++ b/drivers/nvme/host/pci.c
@@ -1619,7 +1619,7 @@ static void nvme_free_host_mem(struct nvme_dev *dev)
1619static int nvme_alloc_host_mem(struct nvme_dev *dev, u64 min, u64 preferred) 1619static int nvme_alloc_host_mem(struct nvme_dev *dev, u64 min, u64 preferred)
1620{ 1620{
1621 struct nvme_host_mem_buf_desc *descs; 1621 struct nvme_host_mem_buf_desc *descs;
1622 u32 chunk_size, max_entries; 1622 u32 chunk_size, max_entries, len;
1623 int i = 0; 1623 int i = 0;
1624 void **bufs; 1624 void **bufs;
1625 u64 size = 0, tmp; 1625 u64 size = 0, tmp;
@@ -1638,10 +1638,10 @@ retry:
1638 if (!bufs) 1638 if (!bufs)
1639 goto out_free_descs; 1639 goto out_free_descs;
1640 1640
1641 for (size = 0; size < preferred; size += chunk_size) { 1641 for (size = 0; size < preferred; size += len) {
1642 u32 len = min_t(u64, chunk_size, preferred - size);
1643 dma_addr_t dma_addr; 1642 dma_addr_t dma_addr;
1644 1643
1644 len = min_t(u64, chunk_size, preferred - size);
1645 bufs[i] = dma_alloc_attrs(dev->dev, len, &dma_addr, GFP_KERNEL, 1645 bufs[i] = dma_alloc_attrs(dev->dev, len, &dma_addr, GFP_KERNEL,
1646 DMA_ATTR_NO_KERNEL_MAPPING | DMA_ATTR_NO_WARN); 1646 DMA_ATTR_NO_KERNEL_MAPPING | DMA_ATTR_NO_WARN);
1647 if (!bufs[i]) 1647 if (!bufs[i])
diff --git a/drivers/nvme/target/fc.c b/drivers/nvme/target/fc.c
index d5801c150b1c..31ca55dfcb1d 100644
--- a/drivers/nvme/target/fc.c
+++ b/drivers/nvme/target/fc.c
@@ -2293,66 +2293,70 @@ nvmet_fc_rcv_fcp_abort(struct nvmet_fc_target_port *target_port,
2293} 2293}
2294EXPORT_SYMBOL_GPL(nvmet_fc_rcv_fcp_abort); 2294EXPORT_SYMBOL_GPL(nvmet_fc_rcv_fcp_abort);
2295 2295
2296enum {
2297 FCT_TRADDR_ERR = 0,
2298 FCT_TRADDR_WWNN = 1 << 0,
2299 FCT_TRADDR_WWPN = 1 << 1,
2300};
2301 2296
2302struct nvmet_fc_traddr { 2297struct nvmet_fc_traddr {
2303 u64 nn; 2298 u64 nn;
2304 u64 pn; 2299 u64 pn;
2305}; 2300};
2306 2301
2307static const match_table_t traddr_opt_tokens = {
2308 { FCT_TRADDR_WWNN, "nn-%s" },
2309 { FCT_TRADDR_WWPN, "pn-%s" },
2310 { FCT_TRADDR_ERR, NULL }
2311};
2312
2313static int 2302static int
2314nvmet_fc_parse_traddr(struct nvmet_fc_traddr *traddr, char *buf) 2303__nvme_fc_parse_u64(substring_t *sstr, u64 *val)
2315{ 2304{
2316 substring_t args[MAX_OPT_ARGS];
2317 char *options, *o, *p;
2318 int token, ret = 0;
2319 u64 token64; 2305 u64 token64;
2320 2306
2321 options = o = kstrdup(buf, GFP_KERNEL); 2307 if (match_u64(sstr, &token64))
2322 if (!options) 2308 return -EINVAL;
2323 return -ENOMEM; 2309 *val = token64;
2324 2310
2325 while ((p = strsep(&o, ":\n")) != NULL) { 2311 return 0;
2326 if (!*p) 2312}
2327 continue;
2328 2313
2329 token = match_token(p, traddr_opt_tokens, args); 2314/*
2330 switch (token) { 2315 * This routine validates and extracts the WWN's from the TRADDR string.
2331 case FCT_TRADDR_WWNN: 2316 * As kernel parsers need the 0x to determine number base, universally
2332 if (match_u64(args, &token64)) { 2317 * build string to parse with 0x prefix before parsing name strings.
2333 ret = -EINVAL; 2318 */
2334 goto out; 2319static int
2335 } 2320nvme_fc_parse_traddr(struct nvmet_fc_traddr *traddr, char *buf, size_t blen)
2336 traddr->nn = token64; 2321{
2337 break; 2322 char name[2 + NVME_FC_TRADDR_HEXNAMELEN + 1];
2338 case FCT_TRADDR_WWPN: 2323 substring_t wwn = { name, &name[sizeof(name)-1] };
2339 if (match_u64(args, &token64)) { 2324 int nnoffset, pnoffset;
2340 ret = -EINVAL; 2325
2341 goto out; 2326 /* validate it string one of the 2 allowed formats */
2342 } 2327 if (strnlen(buf, blen) == NVME_FC_TRADDR_MAXLENGTH &&
2343 traddr->pn = token64; 2328 !strncmp(buf, "nn-0x", NVME_FC_TRADDR_OXNNLEN) &&
2344 break; 2329 !strncmp(&buf[NVME_FC_TRADDR_MAX_PN_OFFSET],
2345 default: 2330 "pn-0x", NVME_FC_TRADDR_OXNNLEN)) {
2346 pr_warn("unknown traddr token or missing value '%s'\n", 2331 nnoffset = NVME_FC_TRADDR_OXNNLEN;
2347 p); 2332 pnoffset = NVME_FC_TRADDR_MAX_PN_OFFSET +
2348 ret = -EINVAL; 2333 NVME_FC_TRADDR_OXNNLEN;
2349 goto out; 2334 } else if ((strnlen(buf, blen) == NVME_FC_TRADDR_MINLENGTH &&
2350 } 2335 !strncmp(buf, "nn-", NVME_FC_TRADDR_NNLEN) &&
2351 } 2336 !strncmp(&buf[NVME_FC_TRADDR_MIN_PN_OFFSET],
2337 "pn-", NVME_FC_TRADDR_NNLEN))) {
2338 nnoffset = NVME_FC_TRADDR_NNLEN;
2339 pnoffset = NVME_FC_TRADDR_MIN_PN_OFFSET + NVME_FC_TRADDR_NNLEN;
2340 } else
2341 goto out_einval;
2342
2343 name[0] = '0';
2344 name[1] = 'x';
2345 name[2 + NVME_FC_TRADDR_HEXNAMELEN] = 0;
2346
2347 memcpy(&name[2], &buf[nnoffset], NVME_FC_TRADDR_HEXNAMELEN);
2348 if (__nvme_fc_parse_u64(&wwn, &traddr->nn))
2349 goto out_einval;
2350
2351 memcpy(&name[2], &buf[pnoffset], NVME_FC_TRADDR_HEXNAMELEN);
2352 if (__nvme_fc_parse_u64(&wwn, &traddr->pn))
2353 goto out_einval;
2352 2354
2353out: 2355 return 0;
2354 kfree(options); 2356
2355 return ret; 2357out_einval:
2358 pr_warn("%s: bad traddr string\n", __func__);
2359 return -EINVAL;
2356} 2360}
2357 2361
2358static int 2362static int
@@ -2370,7 +2374,8 @@ nvmet_fc_add_port(struct nvmet_port *port)
2370 2374
2371 /* map the traddr address info to a target port */ 2375 /* map the traddr address info to a target port */
2372 2376
2373 ret = nvmet_fc_parse_traddr(&traddr, port->disc_addr.traddr); 2377 ret = nvme_fc_parse_traddr(&traddr, port->disc_addr.traddr,
2378 sizeof(port->disc_addr.traddr));
2374 if (ret) 2379 if (ret)
2375 return ret; 2380 return ret;
2376 2381
diff --git a/drivers/of/irq.c b/drivers/of/irq.c
index 6ce72aa65425..ab21c846eb27 100644
--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
@@ -476,7 +476,7 @@ int of_irq_to_resource_table(struct device_node *dev, struct resource *res,
476 int i; 476 int i;
477 477
478 for (i = 0; i < nr_irqs; i++, res++) 478 for (i = 0; i < nr_irqs; i++, res++)
479 if (!of_irq_to_resource(dev, i, res)) 479 if (of_irq_to_resource(dev, i, res) <= 0)
480 break; 480 break;
481 481
482 return i; 482 return i;
diff --git a/drivers/of/property.c b/drivers/of/property.c
index eda50b4be934..067f9fab7b77 100644
--- a/drivers/of/property.c
+++ b/drivers/of/property.c
@@ -708,6 +708,15 @@ struct device_node *of_graph_get_port_parent(struct device_node *node)
708{ 708{
709 unsigned int depth; 709 unsigned int depth;
710 710
711 if (!node)
712 return NULL;
713
714 /*
715 * Preserve usecount for passed in node as of_get_next_parent()
716 * will do of_node_put() on it.
717 */
718 of_node_get(node);
719
711 /* Walk 3 levels up only if there is 'ports' node. */ 720 /* Walk 3 levels up only if there is 'ports' node. */
712 for (depth = 3; depth && node; depth--) { 721 for (depth = 3; depth && node; depth--) {
713 node = of_get_next_parent(node); 722 node = of_get_next_parent(node);
@@ -728,12 +737,16 @@ EXPORT_SYMBOL(of_graph_get_port_parent);
728struct device_node *of_graph_get_remote_port_parent( 737struct device_node *of_graph_get_remote_port_parent(
729 const struct device_node *node) 738 const struct device_node *node)
730{ 739{
731 struct device_node *np; 740 struct device_node *np, *pp;
732 741
733 /* Get remote endpoint node. */ 742 /* Get remote endpoint node. */
734 np = of_graph_get_remote_endpoint(node); 743 np = of_graph_get_remote_endpoint(node);
735 744
736 return of_graph_get_port_parent(np); 745 pp = of_graph_get_port_parent(np);
746
747 of_node_put(np);
748
749 return pp;
737} 750}
738EXPORT_SYMBOL(of_graph_get_remote_port_parent); 751EXPORT_SYMBOL(of_graph_get_remote_port_parent);
739 752
diff --git a/drivers/parisc/pdc_stable.c b/drivers/parisc/pdc_stable.c
index 055f83fddc18..b1ff46fe4547 100644
--- a/drivers/parisc/pdc_stable.c
+++ b/drivers/parisc/pdc_stable.c
@@ -333,11 +333,11 @@ pdcspath_hwpath_write(struct pdcspath_entry *entry, const char *buf, size_t coun
333 333
334 /* Update the symlink to the real device */ 334 /* Update the symlink to the real device */
335 sysfs_remove_link(&entry->kobj, "device"); 335 sysfs_remove_link(&entry->kobj, "device");
336 write_unlock(&entry->rw_lock);
337
336 ret = sysfs_create_link(&entry->kobj, &entry->dev->kobj, "device"); 338 ret = sysfs_create_link(&entry->kobj, &entry->dev->kobj, "device");
337 WARN_ON(ret); 339 WARN_ON(ret);
338 340
339 write_unlock(&entry->rw_lock);
340
341 printk(KERN_INFO PDCS_PREFIX ": changed \"%s\" path to \"%s\"\n", 341 printk(KERN_INFO PDCS_PREFIX ": changed \"%s\" path to \"%s\"\n",
342 entry->name, buf); 342 entry->name, buf);
343 343
@@ -954,7 +954,7 @@ static struct attribute *pdcs_subsys_attrs[] = {
954 NULL, 954 NULL,
955}; 955};
956 956
957static struct attribute_group pdcs_attr_group = { 957static const struct attribute_group pdcs_attr_group = {
958 .attrs = pdcs_subsys_attrs, 958 .attrs = pdcs_subsys_attrs,
959}; 959};
960 960
@@ -998,6 +998,7 @@ pdcs_register_pathentries(void)
998 /* kobject is now registered */ 998 /* kobject is now registered */
999 write_lock(&entry->rw_lock); 999 write_lock(&entry->rw_lock);
1000 entry->ready = 2; 1000 entry->ready = 2;
1001 write_unlock(&entry->rw_lock);
1001 1002
1002 /* Add a nice symlink to the real device */ 1003 /* Add a nice symlink to the real device */
1003 if (entry->dev) { 1004 if (entry->dev) {
@@ -1005,7 +1006,6 @@ pdcs_register_pathentries(void)
1005 WARN_ON(err); 1006 WARN_ON(err);
1006 } 1007 }
1007 1008
1008 write_unlock(&entry->rw_lock);
1009 kobject_uevent(&entry->kobj, KOBJ_ADD); 1009 kobject_uevent(&entry->kobj, KOBJ_ADD);
1010 } 1010 }
1011 1011
diff --git a/drivers/perf/arm_pmu.c b/drivers/perf/arm_pmu.c
index dc459eb1246b..1c5e0f333779 100644
--- a/drivers/perf/arm_pmu.c
+++ b/drivers/perf/arm_pmu.c
@@ -569,22 +569,41 @@ int armpmu_request_irq(struct arm_pmu *armpmu, int cpu)
569 if (irq != other_irq) { 569 if (irq != other_irq) {
570 pr_warn("mismatched PPIs detected.\n"); 570 pr_warn("mismatched PPIs detected.\n");
571 err = -EINVAL; 571 err = -EINVAL;
572 goto err_out;
572 } 573 }
573 } else { 574 } else {
574 err = request_irq(irq, handler, 575 struct arm_pmu_platdata *platdata = armpmu_get_platdata(armpmu);
575 IRQF_NOBALANCING | IRQF_NO_THREAD, "arm-pmu", 576 unsigned long irq_flags;
577
578 err = irq_force_affinity(irq, cpumask_of(cpu));
579
580 if (err && num_possible_cpus() > 1) {
581 pr_warn("unable to set irq affinity (irq=%d, cpu=%u)\n",
582 irq, cpu);
583 goto err_out;
584 }
585
586 if (platdata && platdata->irq_flags) {
587 irq_flags = platdata->irq_flags;
588 } else {
589 irq_flags = IRQF_PERCPU |
590 IRQF_NOBALANCING |
591 IRQF_NO_THREAD;
592 }
593
594 err = request_irq(irq, handler, irq_flags, "arm-pmu",
576 per_cpu_ptr(&hw_events->percpu_pmu, cpu)); 595 per_cpu_ptr(&hw_events->percpu_pmu, cpu));
577 } 596 }
578 597
579 if (err) { 598 if (err)
580 pr_err("unable to request IRQ%d for ARM PMU counters\n", 599 goto err_out;
581 irq);
582 return err;
583 }
584 600
585 cpumask_set_cpu(cpu, &armpmu->active_irqs); 601 cpumask_set_cpu(cpu, &armpmu->active_irqs);
586
587 return 0; 602 return 0;
603
604err_out:
605 pr_err("unable to request IRQ%d for ARM PMU counters\n", irq);
606 return err;
588} 607}
589 608
590int armpmu_request_irqs(struct arm_pmu *armpmu) 609int armpmu_request_irqs(struct arm_pmu *armpmu)
@@ -628,12 +647,6 @@ static int arm_perf_starting_cpu(unsigned int cpu, struct hlist_node *node)
628 enable_percpu_irq(irq, IRQ_TYPE_NONE); 647 enable_percpu_irq(irq, IRQ_TYPE_NONE);
629 return 0; 648 return 0;
630 } 649 }
631
632 if (irq_force_affinity(irq, cpumask_of(cpu)) &&
633 num_possible_cpus() > 1) {
634 pr_warn("unable to set irq affinity (irq=%d, cpu=%u)\n",
635 irq, cpu);
636 }
637 } 650 }
638 651
639 return 0; 652 return 0;
diff --git a/drivers/perf/arm_pmu_platform.c b/drivers/perf/arm_pmu_platform.c
index 69255f53057a..4eafa7a42e52 100644
--- a/drivers/perf/arm_pmu_platform.c
+++ b/drivers/perf/arm_pmu_platform.c
@@ -131,8 +131,8 @@ static int pmu_parse_irqs(struct arm_pmu *pmu)
131 } 131 }
132 132
133 if (!pmu_has_irq_affinity(pdev->dev.of_node)) { 133 if (!pmu_has_irq_affinity(pdev->dev.of_node)) {
134 pr_warn("no interrupt-affinity property for %s, guessing.\n", 134 pr_warn("no interrupt-affinity property for %pOF, guessing.\n",
135 of_node_full_name(pdev->dev.of_node)); 135 pdev->dev.of_node);
136 } 136 }
137 137
138 /* 138 /*
@@ -211,7 +211,7 @@ int arm_pmu_device_probe(struct platform_device *pdev,
211 } 211 }
212 212
213 if (ret) { 213 if (ret) {
214 pr_info("%s: failed to probe PMU!\n", of_node_full_name(node)); 214 pr_info("%pOF: failed to probe PMU!\n", node);
215 goto out_free; 215 goto out_free;
216 } 216 }
217 217
@@ -228,8 +228,7 @@ int arm_pmu_device_probe(struct platform_device *pdev,
228out_free_irqs: 228out_free_irqs:
229 armpmu_free_irqs(pmu); 229 armpmu_free_irqs(pmu);
230out_free: 230out_free:
231 pr_info("%s: failed to register PMU devices!\n", 231 pr_info("%pOF: failed to register PMU devices!\n", node);
232 of_node_full_name(node));
233 armpmu_free(pmu); 232 armpmu_free(pmu);
234 return ret; 233 return ret;
235} 234}
diff --git a/drivers/perf/qcom_l2_pmu.c b/drivers/perf/qcom_l2_pmu.c
index c259848228b4..b242cce10468 100644
--- a/drivers/perf/qcom_l2_pmu.c
+++ b/drivers/perf/qcom_l2_pmu.c
@@ -546,6 +546,7 @@ static int l2_cache_event_init(struct perf_event *event)
546 } 546 }
547 547
548 if ((event != event->group_leader) && 548 if ((event != event->group_leader) &&
549 !is_software_event(event->group_leader) &&
549 (L2_EVT_GROUP(event->group_leader->attr.config) == 550 (L2_EVT_GROUP(event->group_leader->attr.config) ==
550 L2_EVT_GROUP(event->attr.config))) { 551 L2_EVT_GROUP(event->attr.config))) {
551 dev_dbg_ratelimited(&l2cache_pmu->pdev->dev, 552 dev_dbg_ratelimited(&l2cache_pmu->pdev->dev,
@@ -558,6 +559,7 @@ static int l2_cache_event_init(struct perf_event *event)
558 list_for_each_entry(sibling, &event->group_leader->sibling_list, 559 list_for_each_entry(sibling, &event->group_leader->sibling_list,
559 group_entry) { 560 group_entry) {
560 if ((sibling != event) && 561 if ((sibling != event) &&
562 !is_software_event(sibling) &&
561 (L2_EVT_GROUP(sibling->attr.config) == 563 (L2_EVT_GROUP(sibling->attr.config) ==
562 L2_EVT_GROUP(event->attr.config))) { 564 L2_EVT_GROUP(event->attr.config))) {
563 dev_dbg_ratelimited(&l2cache_pmu->pdev->dev, 565 dev_dbg_ratelimited(&l2cache_pmu->pdev->dev,
diff --git a/drivers/phy/broadcom/Kconfig b/drivers/phy/broadcom/Kconfig
index 37371b89b14f..64fc59c3ae6d 100644
--- a/drivers/phy/broadcom/Kconfig
+++ b/drivers/phy/broadcom/Kconfig
@@ -30,8 +30,8 @@ config PHY_BCM_NS_USB3
30 tristate "Broadcom Northstar USB 3.0 PHY Driver" 30 tristate "Broadcom Northstar USB 3.0 PHY Driver"
31 depends on ARCH_BCM_IPROC || COMPILE_TEST 31 depends on ARCH_BCM_IPROC || COMPILE_TEST
32 depends on HAS_IOMEM && OF 32 depends on HAS_IOMEM && OF
33 depends on MDIO_BUS
33 select GENERIC_PHY 34 select GENERIC_PHY
34 select MDIO_DEVICE
35 help 35 help
36 Enable this to support Broadcom USB 3.0 PHY connected to the USB 36 Enable this to support Broadcom USB 3.0 PHY connected to the USB
37 controller on Northstar family. 37 controller on Northstar family.
diff --git a/drivers/pinctrl/intel/pinctrl-cherryview.c b/drivers/pinctrl/intel/pinctrl-cherryview.c
index 20f1b4493994..04e929fd0ffe 100644
--- a/drivers/pinctrl/intel/pinctrl-cherryview.c
+++ b/drivers/pinctrl/intel/pinctrl-cherryview.c
@@ -1548,6 +1548,13 @@ static const struct dmi_system_id chv_no_valid_mask[] = {
1548 }, 1548 },
1549 }, 1549 },
1550 { 1550 {
1551 .ident = "HP Chromebook 11 G5 (Setzer)",
1552 .matches = {
1553 DMI_MATCH(DMI_SYS_VENDOR, "HP"),
1554 DMI_MATCH(DMI_PRODUCT_NAME, "Setzer"),
1555 },
1556 },
1557 {
1551 .ident = "Acer Chromebook R11 (Cyan)", 1558 .ident = "Acer Chromebook R11 (Cyan)",
1552 .matches = { 1559 .matches = {
1553 DMI_MATCH(DMI_SYS_VENDOR, "GOOGLE"), 1560 DMI_MATCH(DMI_SYS_VENDOR, "GOOGLE"),
diff --git a/drivers/pinctrl/intel/pinctrl-merrifield.c b/drivers/pinctrl/intel/pinctrl-merrifield.c
index 4d4ef42a39b5..86c4b3fab7b0 100644
--- a/drivers/pinctrl/intel/pinctrl-merrifield.c
+++ b/drivers/pinctrl/intel/pinctrl-merrifield.c
@@ -343,9 +343,9 @@ static const struct pinctrl_pin_desc mrfld_pins[] = {
343 343
344static const unsigned int mrfld_sdio_pins[] = { 50, 51, 52, 53, 54, 55, 56 }; 344static const unsigned int mrfld_sdio_pins[] = { 50, 51, 52, 53, 54, 55, 56 };
345static const unsigned int mrfld_spi5_pins[] = { 90, 91, 92, 93, 94, 95, 96 }; 345static const unsigned int mrfld_spi5_pins[] = { 90, 91, 92, 93, 94, 95, 96 };
346static const unsigned int mrfld_uart0_pins[] = { 124, 125, 126, 127 }; 346static const unsigned int mrfld_uart0_pins[] = { 115, 116, 117, 118 };
347static const unsigned int mrfld_uart1_pins[] = { 128, 129, 130, 131 }; 347static const unsigned int mrfld_uart1_pins[] = { 119, 120, 121, 122 };
348static const unsigned int mrfld_uart2_pins[] = { 132, 133, 134, 135 }; 348static const unsigned int mrfld_uart2_pins[] = { 123, 124, 125, 126 };
349static const unsigned int mrfld_pwm0_pins[] = { 144 }; 349static const unsigned int mrfld_pwm0_pins[] = { 144 };
350static const unsigned int mrfld_pwm1_pins[] = { 145 }; 350static const unsigned int mrfld_pwm1_pins[] = { 145 };
351static const unsigned int mrfld_pwm2_pins[] = { 132 }; 351static const unsigned int mrfld_pwm2_pins[] = { 132 };
diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
index f024e25787fc..0c6d7812d6fd 100644
--- a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
+++ b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
@@ -37,7 +37,7 @@
37#define IRQ_STATUS 0x10 37#define IRQ_STATUS 0x10
38#define IRQ_WKUP 0x18 38#define IRQ_WKUP 0x18
39 39
40#define NB_FUNCS 2 40#define NB_FUNCS 3
41#define GPIO_PER_REG 32 41#define GPIO_PER_REG 32
42 42
43/** 43/**
@@ -126,6 +126,16 @@ struct armada_37xx_pinctrl {
126 .funcs = {_func1, "gpio"} \ 126 .funcs = {_func1, "gpio"} \
127 } 127 }
128 128
129#define PIN_GRP_GPIO_3(_name, _start, _nr, _mask, _v1, _v2, _v3, _f1, _f2) \
130 { \
131 .name = _name, \
132 .start_pin = _start, \
133 .npins = _nr, \
134 .reg_mask = _mask, \
135 .val = {_v1, _v2, _v3}, \
136 .funcs = {_f1, _f2, "gpio"} \
137 }
138
129#define PIN_GRP_EXTRA(_name, _start, _nr, _mask, _v1, _v2, _start2, _nr2, \ 139#define PIN_GRP_EXTRA(_name, _start, _nr, _mask, _v1, _v2, _start2, _nr2, \
130 _f1, _f2) \ 140 _f1, _f2) \
131 { \ 141 { \
@@ -171,12 +181,13 @@ static struct armada_37xx_pin_group armada_37xx_sb_groups[] = {
171 PIN_GRP_GPIO("usb32_drvvbus0", 0, 1, BIT(0), "drvbus"), 181 PIN_GRP_GPIO("usb32_drvvbus0", 0, 1, BIT(0), "drvbus"),
172 PIN_GRP_GPIO("usb2_drvvbus1", 1, 1, BIT(1), "drvbus"), 182 PIN_GRP_GPIO("usb2_drvvbus1", 1, 1, BIT(1), "drvbus"),
173 PIN_GRP_GPIO("sdio_sb", 24, 6, BIT(2), "sdio"), 183 PIN_GRP_GPIO("sdio_sb", 24, 6, BIT(2), "sdio"),
174 PIN_GRP_EXTRA("rgmii", 6, 12, BIT(3), 0, BIT(3), 23, 1, "mii", "gpio"), 184 PIN_GRP_GPIO("rgmii", 6, 12, BIT(3), "mii"),
175 PIN_GRP_GPIO("pcie1", 3, 2, BIT(4), "pcie"), 185 PIN_GRP_GPIO("pcie1", 3, 2, BIT(4), "pcie"),
176 PIN_GRP_GPIO("ptp", 20, 3, BIT(5), "ptp"), 186 PIN_GRP_GPIO("ptp", 20, 3, BIT(5), "ptp"),
177 PIN_GRP("ptp_clk", 21, 1, BIT(6), "ptp", "mii"), 187 PIN_GRP("ptp_clk", 21, 1, BIT(6), "ptp", "mii"),
178 PIN_GRP("ptp_trig", 22, 1, BIT(7), "ptp", "mii"), 188 PIN_GRP("ptp_trig", 22, 1, BIT(7), "ptp", "mii"),
179 PIN_GRP("mii_col", 23, 1, BIT(8), "mii", "mii_err"), 189 PIN_GRP_GPIO_3("mii_col", 23, 1, BIT(8) | BIT(14), 0, BIT(8), BIT(14),
190 "mii", "mii_err"),
180}; 191};
181 192
182const struct armada_37xx_pin_data armada_37xx_pin_nb = { 193const struct armada_37xx_pin_data armada_37xx_pin_nb = {
@@ -187,7 +198,7 @@ const struct armada_37xx_pin_data armada_37xx_pin_nb = {
187}; 198};
188 199
189const struct armada_37xx_pin_data armada_37xx_pin_sb = { 200const struct armada_37xx_pin_data armada_37xx_pin_sb = {
190 .nr_pins = 29, 201 .nr_pins = 30,
191 .name = "GPIO2", 202 .name = "GPIO2",
192 .groups = armada_37xx_sb_groups, 203 .groups = armada_37xx_sb_groups,
193 .ngroups = ARRAY_SIZE(armada_37xx_sb_groups), 204 .ngroups = ARRAY_SIZE(armada_37xx_sb_groups),
@@ -208,7 +219,7 @@ static int armada_37xx_get_func_reg(struct armada_37xx_pin_group *grp,
208{ 219{
209 int f; 220 int f;
210 221
211 for (f = 0; f < NB_FUNCS; f++) 222 for (f = 0; (f < NB_FUNCS) && grp->funcs[f]; f++)
212 if (!strcmp(grp->funcs[f], func)) 223 if (!strcmp(grp->funcs[f], func))
213 return f; 224 return f;
214 225
@@ -795,7 +806,7 @@ static int armada_37xx_fill_group(struct armada_37xx_pinctrl *info)
795 for (j = 0; j < grp->extra_npins; j++) 806 for (j = 0; j < grp->extra_npins; j++)
796 grp->pins[i+j] = grp->extra_pin + j; 807 grp->pins[i+j] = grp->extra_pin + j;
797 808
798 for (f = 0; f < NB_FUNCS; f++) { 809 for (f = 0; (f < NB_FUNCS) && grp->funcs[f]; f++) {
799 int ret; 810 int ret;
800 /* check for unique functions and count groups */ 811 /* check for unique functions and count groups */
801 ret = armada_37xx_add_function(info->funcs, &funcsize, 812 ret = armada_37xx_add_function(info->funcs, &funcsize,
@@ -847,7 +858,7 @@ static int armada_37xx_fill_func(struct armada_37xx_pinctrl *info)
847 struct armada_37xx_pin_group *gp = &info->groups[g]; 858 struct armada_37xx_pin_group *gp = &info->groups[g];
848 int f; 859 int f;
849 860
850 for (f = 0; f < NB_FUNCS; f++) { 861 for (f = 0; (f < NB_FUNCS) && gp->funcs[f]; f++) {
851 if (strcmp(gp->funcs[f], name) == 0) { 862 if (strcmp(gp->funcs[f], name) == 0) {
852 *groups = gp->name; 863 *groups = gp->name;
853 groups++; 864 groups++;
diff --git a/drivers/pinctrl/stm32/Kconfig b/drivers/pinctrl/stm32/Kconfig
index 3b8026fca057..7e1fe39a56a5 100644
--- a/drivers/pinctrl/stm32/Kconfig
+++ b/drivers/pinctrl/stm32/Kconfig
@@ -6,29 +6,30 @@ config PINCTRL_STM32
6 select PINMUX 6 select PINMUX
7 select GENERIC_PINCONF 7 select GENERIC_PINCONF
8 select GPIOLIB 8 select GPIOLIB
9 select IRQ_DOMAIN_HIERARCHY
9 select MFD_SYSCON 10 select MFD_SYSCON
10 11
11config PINCTRL_STM32F429 12config PINCTRL_STM32F429
12 bool "STMicroelectronics STM32F429 pin control" if COMPILE_TEST && !MACH_STM32F429 13 bool "STMicroelectronics STM32F429 pin control" if COMPILE_TEST && !MACH_STM32F429
13 depends on OF && IRQ_DOMAIN_HIERARCHY 14 depends on OF
14 default MACH_STM32F429 15 default MACH_STM32F429
15 select PINCTRL_STM32 16 select PINCTRL_STM32
16 17
17config PINCTRL_STM32F469 18config PINCTRL_STM32F469
18 bool "STMicroelectronics STM32F469 pin control" if COMPILE_TEST && !MACH_STM32F469 19 bool "STMicroelectronics STM32F469 pin control" if COMPILE_TEST && !MACH_STM32F469
19 depends on OF && IRQ_DOMAIN_HIERARCHY 20 depends on OF
20 default MACH_STM32F469 21 default MACH_STM32F469
21 select PINCTRL_STM32 22 select PINCTRL_STM32
22 23
23config PINCTRL_STM32F746 24config PINCTRL_STM32F746
24 bool "STMicroelectronics STM32F746 pin control" if COMPILE_TEST && !MACH_STM32F746 25 bool "STMicroelectronics STM32F746 pin control" if COMPILE_TEST && !MACH_STM32F746
25 depends on OF && IRQ_DOMAIN_HIERARCHY 26 depends on OF
26 default MACH_STM32F746 27 default MACH_STM32F746
27 select PINCTRL_STM32 28 select PINCTRL_STM32
28 29
29config PINCTRL_STM32H743 30config PINCTRL_STM32H743
30 bool "STMicroelectronics STM32H743 pin control" if COMPILE_TEST && !MACH_STM32H743 31 bool "STMicroelectronics STM32H743 pin control" if COMPILE_TEST && !MACH_STM32H743
31 depends on OF && IRQ_DOMAIN_HIERARCHY 32 depends on OF
32 default MACH_STM32H743 33 default MACH_STM32H743
33 select PINCTRL_STM32 34 select PINCTRL_STM32
34endif 35endif
diff --git a/drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c b/drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c
index 159580c04b14..47a392bc73c8 100644
--- a/drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c
+++ b/drivers/pinctrl/sunxi/pinctrl-sun4i-a10.c
@@ -918,6 +918,7 @@ static const struct sunxi_desc_pin sun4i_a10_pins[] = {
918 SUNXI_FUNCTION_VARIANT(0x3, "emac", /* ETXD1 */ 918 SUNXI_FUNCTION_VARIANT(0x3, "emac", /* ETXD1 */
919 PINCTRL_SUN7I_A20), 919 PINCTRL_SUN7I_A20),
920 SUNXI_FUNCTION(0x4, "keypad"), /* IN6 */ 920 SUNXI_FUNCTION(0x4, "keypad"), /* IN6 */
921 SUNXI_FUNCTION(0x5, "sim"), /* DET */
921 SUNXI_FUNCTION_IRQ(0x6, 16), /* EINT16 */ 922 SUNXI_FUNCTION_IRQ(0x6, 16), /* EINT16 */
922 SUNXI_FUNCTION(0x7, "csi1")), /* D16 */ 923 SUNXI_FUNCTION(0x7, "csi1")), /* D16 */
923 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 17), 924 SUNXI_PIN(SUNXI_PINCTRL_PIN(H, 17),
diff --git a/drivers/pinctrl/uniphier/pinctrl-uniphier-pro4.c b/drivers/pinctrl/uniphier/pinctrl-uniphier-pro4.c
index a433a306a2d0..c75e094b2d90 100644
--- a/drivers/pinctrl/uniphier/pinctrl-uniphier-pro4.c
+++ b/drivers/pinctrl/uniphier/pinctrl-uniphier-pro4.c
@@ -1084,7 +1084,7 @@ static const unsigned usb1_pins[] = {182, 183};
1084static const int usb1_muxvals[] = {0, 0}; 1084static const int usb1_muxvals[] = {0, 0};
1085static const unsigned usb2_pins[] = {184, 185}; 1085static const unsigned usb2_pins[] = {184, 185};
1086static const int usb2_muxvals[] = {0, 0}; 1086static const int usb2_muxvals[] = {0, 0};
1087static const unsigned usb3_pins[] = {186, 187}; 1087static const unsigned usb3_pins[] = {187, 188};
1088static const int usb3_muxvals[] = {0, 0}; 1088static const int usb3_muxvals[] = {0, 0};
1089static const unsigned port_range0_pins[] = { 1089static const unsigned port_range0_pins[] = {
1090 300, 301, 302, 303, 304, 305, 306, 307, /* PORT0x */ 1090 300, 301, 302, 303, 304, 305, 306, 307, /* PORT0x */
diff --git a/drivers/pinctrl/zte/pinctrl-zx.c b/drivers/pinctrl/zte/pinctrl-zx.c
index 787e3967bd5c..f828ee340a98 100644
--- a/drivers/pinctrl/zte/pinctrl-zx.c
+++ b/drivers/pinctrl/zte/pinctrl-zx.c
@@ -64,10 +64,8 @@ static int zx_set_mux(struct pinctrl_dev *pctldev, unsigned int func_selector,
64 struct zx_pinctrl_soc_info *info = zpctl->info; 64 struct zx_pinctrl_soc_info *info = zpctl->info;
65 const struct pinctrl_pin_desc *pindesc = info->pins + group_selector; 65 const struct pinctrl_pin_desc *pindesc = info->pins + group_selector;
66 struct zx_pin_data *data = pindesc->drv_data; 66 struct zx_pin_data *data = pindesc->drv_data;
67 struct zx_mux_desc *mux = data->muxes; 67 struct zx_mux_desc *mux;
68 u32 mask = (1 << data->width) - 1; 68 u32 mask, offset, bitpos;
69 u32 offset = data->offset;
70 u32 bitpos = data->bitpos;
71 struct function_desc *func; 69 struct function_desc *func;
72 unsigned long flags; 70 unsigned long flags;
73 u32 val, mval; 71 u32 val, mval;
@@ -76,6 +74,11 @@ static int zx_set_mux(struct pinctrl_dev *pctldev, unsigned int func_selector,
76 if (!data) 74 if (!data)
77 return -EINVAL; 75 return -EINVAL;
78 76
77 mux = data->muxes;
78 mask = (1 << data->width) - 1;
79 offset = data->offset;
80 bitpos = data->bitpos;
81
79 func = pinmux_generic_get_function(pctldev, func_selector); 82 func = pinmux_generic_get_function(pctldev, func_selector);
80 if (!func) 83 if (!func)
81 return -EINVAL; 84 return -EINVAL;
diff --git a/drivers/platform/x86/Kconfig b/drivers/platform/x86/Kconfig
index b04860703740..80b87954f6dd 100644
--- a/drivers/platform/x86/Kconfig
+++ b/drivers/platform/x86/Kconfig
@@ -675,6 +675,7 @@ config PEAQ_WMI
675 tristate "PEAQ 2-in-1 WMI hotkey driver" 675 tristate "PEAQ 2-in-1 WMI hotkey driver"
676 depends on ACPI_WMI 676 depends on ACPI_WMI
677 depends on INPUT 677 depends on INPUT
678 select INPUT_POLLDEV
678 help 679 help
679 Say Y here if you want to support WMI-based hotkeys on PEAQ 2-in-1s. 680 Say Y here if you want to support WMI-based hotkeys on PEAQ 2-in-1s.
680 681
diff --git a/drivers/platform/x86/dell-wmi.c b/drivers/platform/x86/dell-wmi.c
index f8978464df31..dad8f4afa17c 100644
--- a/drivers/platform/x86/dell-wmi.c
+++ b/drivers/platform/x86/dell-wmi.c
@@ -626,7 +626,7 @@ static void dell_wmi_input_destroy(struct wmi_device *wdev)
626 * WMI Interface Version 8 4 <version> 626 * WMI Interface Version 8 4 <version>
627 * WMI buffer length 12 4 4096 627 * WMI buffer length 12 4 4096
628 */ 628 */
629static int __init dell_wmi_check_descriptor_buffer(void) 629static int dell_wmi_check_descriptor_buffer(void)
630{ 630{
631 struct acpi_buffer out = { ACPI_ALLOCATE_BUFFER, NULL }; 631 struct acpi_buffer out = { ACPI_ALLOCATE_BUFFER, NULL };
632 union acpi_object *obj; 632 union acpi_object *obj;
@@ -717,9 +717,15 @@ static int dell_wmi_events_set_enabled(bool enable)
717 717
718static int dell_wmi_probe(struct wmi_device *wdev) 718static int dell_wmi_probe(struct wmi_device *wdev)
719{ 719{
720 int err;
721
720 struct dell_wmi_priv *priv = devm_kzalloc( 722 struct dell_wmi_priv *priv = devm_kzalloc(
721 &wdev->dev, sizeof(struct dell_wmi_priv), GFP_KERNEL); 723 &wdev->dev, sizeof(struct dell_wmi_priv), GFP_KERNEL);
722 724
725 err = dell_wmi_check_descriptor_buffer();
726 if (err)
727 return err;
728
723 dev_set_drvdata(&wdev->dev, priv); 729 dev_set_drvdata(&wdev->dev, priv);
724 730
725 return dell_wmi_input_setup(wdev); 731 return dell_wmi_input_setup(wdev);
@@ -749,10 +755,6 @@ static int __init dell_wmi_init(void)
749{ 755{
750 int err; 756 int err;
751 757
752 err = dell_wmi_check_descriptor_buffer();
753 if (err)
754 return err;
755
756 dmi_check_system(dell_wmi_smbios_list); 758 dmi_check_system(dell_wmi_smbios_list);
757 759
758 if (wmi_requires_smbios_request) { 760 if (wmi_requires_smbios_request) {
diff --git a/drivers/platform/x86/intel-vbtn.c b/drivers/platform/x86/intel-vbtn.c
index 61f106377661..480926786cb8 100644
--- a/drivers/platform/x86/intel-vbtn.c
+++ b/drivers/platform/x86/intel-vbtn.c
@@ -36,8 +36,8 @@ static const struct acpi_device_id intel_vbtn_ids[] = {
36 36
37/* In theory, these are HID usages. */ 37/* In theory, these are HID usages. */
38static const struct key_entry intel_vbtn_keymap[] = { 38static const struct key_entry intel_vbtn_keymap[] = {
39 { KE_IGNORE, 0xC0, { KEY_POWER } }, /* power key press */ 39 { KE_KEY, 0xC0, { KEY_POWER } }, /* power key press */
40 { KE_KEY, 0xC1, { KEY_POWER } }, /* power key release */ 40 { KE_IGNORE, 0xC1, { KEY_POWER } }, /* power key release */
41 { KE_KEY, 0xC4, { KEY_VOLUMEUP } }, /* volume-up key press */ 41 { KE_KEY, 0xC4, { KEY_VOLUMEUP } }, /* volume-up key press */
42 { KE_IGNORE, 0xC5, { KEY_VOLUMEUP } }, /* volume-up key release */ 42 { KE_IGNORE, 0xC5, { KEY_VOLUMEUP } }, /* volume-up key release */
43 { KE_KEY, 0xC6, { KEY_VOLUMEDOWN } }, /* volume-down key press */ 43 { KE_KEY, 0xC6, { KEY_VOLUMEDOWN } }, /* volume-down key press */
diff --git a/drivers/platform/x86/wmi.c b/drivers/platform/x86/wmi.c
index 1a764e311e11..e32ba575e8d9 100644
--- a/drivers/platform/x86/wmi.c
+++ b/drivers/platform/x86/wmi.c
@@ -1252,12 +1252,12 @@ static int __init acpi_wmi_init(void)
1252 1252
1253 return 0; 1253 return 0;
1254 1254
1255err_unreg_class:
1256 class_unregister(&wmi_bus_class);
1257
1258err_unreg_bus: 1255err_unreg_bus:
1259 bus_unregister(&wmi_bus_type); 1256 bus_unregister(&wmi_bus_type);
1260 1257
1258err_unreg_class:
1259 class_unregister(&wmi_bus_class);
1260
1261 return error; 1261 return error;
1262} 1262}
1263 1263
diff --git a/drivers/ptp/ptp_clock.c b/drivers/ptp/ptp_clock.c
index b77435783ef3..7eacc1c4b3b1 100644
--- a/drivers/ptp/ptp_clock.c
+++ b/drivers/ptp/ptp_clock.c
@@ -28,6 +28,7 @@
28#include <linux/slab.h> 28#include <linux/slab.h>
29#include <linux/syscalls.h> 29#include <linux/syscalls.h>
30#include <linux/uaccess.h> 30#include <linux/uaccess.h>
31#include <uapi/linux/sched/types.h>
31 32
32#include "ptp_private.h" 33#include "ptp_private.h"
33 34
@@ -184,6 +185,19 @@ static void delete_ptp_clock(struct posix_clock *pc)
184 kfree(ptp); 185 kfree(ptp);
185} 186}
186 187
188static void ptp_aux_kworker(struct kthread_work *work)
189{
190 struct ptp_clock *ptp = container_of(work, struct ptp_clock,
191 aux_work.work);
192 struct ptp_clock_info *info = ptp->info;
193 long delay;
194
195 delay = info->do_aux_work(info);
196
197 if (delay >= 0)
198 kthread_queue_delayed_work(ptp->kworker, &ptp->aux_work, delay);
199}
200
187/* public interface */ 201/* public interface */
188 202
189struct ptp_clock *ptp_clock_register(struct ptp_clock_info *info, 203struct ptp_clock *ptp_clock_register(struct ptp_clock_info *info,
@@ -217,6 +231,20 @@ struct ptp_clock *ptp_clock_register(struct ptp_clock_info *info,
217 mutex_init(&ptp->pincfg_mux); 231 mutex_init(&ptp->pincfg_mux);
218 init_waitqueue_head(&ptp->tsev_wq); 232 init_waitqueue_head(&ptp->tsev_wq);
219 233
234 if (ptp->info->do_aux_work) {
235 char *worker_name = kasprintf(GFP_KERNEL, "ptp%d", ptp->index);
236
237 kthread_init_delayed_work(&ptp->aux_work, ptp_aux_kworker);
238 ptp->kworker = kthread_create_worker(0, worker_name ?
239 worker_name : info->name);
240 kfree(worker_name);
241 if (IS_ERR(ptp->kworker)) {
242 err = PTR_ERR(ptp->kworker);
243 pr_err("failed to create ptp aux_worker %d\n", err);
244 goto kworker_err;
245 }
246 }
247
220 err = ptp_populate_pin_groups(ptp); 248 err = ptp_populate_pin_groups(ptp);
221 if (err) 249 if (err)
222 goto no_pin_groups; 250 goto no_pin_groups;
@@ -259,6 +287,9 @@ no_pps:
259no_device: 287no_device:
260 ptp_cleanup_pin_groups(ptp); 288 ptp_cleanup_pin_groups(ptp);
261no_pin_groups: 289no_pin_groups:
290 if (ptp->kworker)
291 kthread_destroy_worker(ptp->kworker);
292kworker_err:
262 mutex_destroy(&ptp->tsevq_mux); 293 mutex_destroy(&ptp->tsevq_mux);
263 mutex_destroy(&ptp->pincfg_mux); 294 mutex_destroy(&ptp->pincfg_mux);
264 ida_simple_remove(&ptp_clocks_map, index); 295 ida_simple_remove(&ptp_clocks_map, index);
@@ -274,6 +305,11 @@ int ptp_clock_unregister(struct ptp_clock *ptp)
274 ptp->defunct = 1; 305 ptp->defunct = 1;
275 wake_up_interruptible(&ptp->tsev_wq); 306 wake_up_interruptible(&ptp->tsev_wq);
276 307
308 if (ptp->kworker) {
309 kthread_cancel_delayed_work_sync(&ptp->aux_work);
310 kthread_destroy_worker(ptp->kworker);
311 }
312
277 /* Release the clock's resources. */ 313 /* Release the clock's resources. */
278 if (ptp->pps_source) 314 if (ptp->pps_source)
279 pps_unregister_source(ptp->pps_source); 315 pps_unregister_source(ptp->pps_source);
@@ -339,6 +375,12 @@ int ptp_find_pin(struct ptp_clock *ptp,
339} 375}
340EXPORT_SYMBOL(ptp_find_pin); 376EXPORT_SYMBOL(ptp_find_pin);
341 377
378int ptp_schedule_worker(struct ptp_clock *ptp, unsigned long delay)
379{
380 return kthread_mod_delayed_work(ptp->kworker, &ptp->aux_work, delay);
381}
382EXPORT_SYMBOL(ptp_schedule_worker);
383
342/* module operations */ 384/* module operations */
343 385
344static void __exit ptp_exit(void) 386static void __exit ptp_exit(void)
diff --git a/drivers/ptp/ptp_private.h b/drivers/ptp/ptp_private.h
index d95888974d0c..b86f1bfecd6f 100644
--- a/drivers/ptp/ptp_private.h
+++ b/drivers/ptp/ptp_private.h
@@ -22,6 +22,7 @@
22 22
23#include <linux/cdev.h> 23#include <linux/cdev.h>
24#include <linux/device.h> 24#include <linux/device.h>
25#include <linux/kthread.h>
25#include <linux/mutex.h> 26#include <linux/mutex.h>
26#include <linux/posix-clock.h> 27#include <linux/posix-clock.h>
27#include <linux/ptp_clock.h> 28#include <linux/ptp_clock.h>
@@ -56,6 +57,8 @@ struct ptp_clock {
56 struct attribute_group pin_attr_group; 57 struct attribute_group pin_attr_group;
57 /* 1st entry is a pointer to the real group, 2nd is NULL terminator */ 58 /* 1st entry is a pointer to the real group, 2nd is NULL terminator */
58 const struct attribute_group *pin_attr_groups[2]; 59 const struct attribute_group *pin_attr_groups[2];
60 struct kthread_worker *kworker;
61 struct kthread_delayed_work aux_work;
59}; 62};
60 63
61/* 64/*
diff --git a/drivers/s390/cio/chp.c b/drivers/s390/cio/chp.c
index 7e0d4f724dda..432fc40990bd 100644
--- a/drivers/s390/cio/chp.c
+++ b/drivers/s390/cio/chp.c
@@ -559,6 +559,7 @@ static void chp_process_crw(struct crw *crw0, struct crw *crw1,
559 chpid.id = crw0->rsid; 559 chpid.id = crw0->rsid;
560 switch (crw0->erc) { 560 switch (crw0->erc) {
561 case CRW_ERC_IPARM: /* Path has come. */ 561 case CRW_ERC_IPARM: /* Path has come. */
562 case CRW_ERC_INIT:
562 if (!chp_is_registered(chpid)) 563 if (!chp_is_registered(chpid))
563 chp_new(chpid); 564 chp_new(chpid);
564 chsc_chp_online(chpid); 565 chsc_chp_online(chpid);
diff --git a/drivers/s390/net/qeth_l3_main.c b/drivers/s390/net/qeth_l3_main.c
index 8975cd321390..d42e758518ed 100644
--- a/drivers/s390/net/qeth_l3_main.c
+++ b/drivers/s390/net/qeth_l3_main.c
@@ -2512,7 +2512,7 @@ static void qeth_l3_fill_header(struct qeth_card *card, struct qeth_hdr *hdr,
2512 struct rtable *rt = (struct rtable *) dst; 2512 struct rtable *rt = (struct rtable *) dst;
2513 __be32 *pkey = &ip_hdr(skb)->daddr; 2513 __be32 *pkey = &ip_hdr(skb)->daddr;
2514 2514
2515 if (rt->rt_gateway) 2515 if (rt && rt->rt_gateway)
2516 pkey = &rt->rt_gateway; 2516 pkey = &rt->rt_gateway;
2517 2517
2518 /* IPv4 */ 2518 /* IPv4 */
@@ -2523,7 +2523,7 @@ static void qeth_l3_fill_header(struct qeth_card *card, struct qeth_hdr *hdr,
2523 struct rt6_info *rt = (struct rt6_info *) dst; 2523 struct rt6_info *rt = (struct rt6_info *) dst;
2524 struct in6_addr *pkey = &ipv6_hdr(skb)->daddr; 2524 struct in6_addr *pkey = &ipv6_hdr(skb)->daddr;
2525 2525
2526 if (!ipv6_addr_any(&rt->rt6i_gateway)) 2526 if (rt && !ipv6_addr_any(&rt->rt6i_gateway))
2527 pkey = &rt->rt6i_gateway; 2527 pkey = &rt->rt6i_gateway;
2528 2528
2529 /* IPv6 */ 2529 /* IPv6 */
diff --git a/drivers/sbus/char/display7seg.c b/drivers/sbus/char/display7seg.c
index 04efed171c88..f32765d3cbd8 100644
--- a/drivers/sbus/char/display7seg.c
+++ b/drivers/sbus/char/display7seg.c
@@ -212,8 +212,8 @@ static int d7s_probe(struct platform_device *op)
212 212
213 writeb(regs, p->regs); 213 writeb(regs, p->regs);
214 214
215 printk(KERN_INFO PFX "7-Segment Display%s at [%s:0x%llx] %s\n", 215 printk(KERN_INFO PFX "7-Segment Display%pOF at [%s:0x%llx] %s\n",
216 op->dev.of_node->full_name, 216 op->dev.of_node,
217 (regs & D7S_FLIP) ? " (FLIPPED)" : "", 217 (regs & D7S_FLIP) ? " (FLIPPED)" : "",
218 op->resource[0].start, 218 op->resource[0].start,
219 sol_compat ? "in sol_compat mode" : ""); 219 sol_compat ? "in sol_compat mode" : "");
diff --git a/drivers/sbus/char/flash.c b/drivers/sbus/char/flash.c
index 216f923161d1..a610b8d3d11f 100644
--- a/drivers/sbus/char/flash.c
+++ b/drivers/sbus/char/flash.c
@@ -181,8 +181,8 @@ static int flash_probe(struct platform_device *op)
181 } 181 }
182 flash.busy = 0; 182 flash.busy = 0;
183 183
184 printk(KERN_INFO "%s: OBP Flash, RD %lx[%lx] WR %lx[%lx]\n", 184 printk(KERN_INFO "%pOF: OBP Flash, RD %lx[%lx] WR %lx[%lx]\n",
185 op->dev.of_node->full_name, 185 op->dev.of_node,
186 flash.read_base, flash.read_size, 186 flash.read_base, flash.read_size,
187 flash.write_base, flash.write_size); 187 flash.write_base, flash.write_size);
188 188
diff --git a/drivers/sbus/char/uctrl.c b/drivers/sbus/char/uctrl.c
index 57696fc0b482..0a5013350acd 100644
--- a/drivers/sbus/char/uctrl.c
+++ b/drivers/sbus/char/uctrl.c
@@ -379,8 +379,8 @@ static int uctrl_probe(struct platform_device *op)
379 } 379 }
380 380
381 sbus_writel(UCTRL_INTR_RXNE_REQ|UCTRL_INTR_RXNE_MSK, &p->regs->uctrl_intr); 381 sbus_writel(UCTRL_INTR_RXNE_REQ|UCTRL_INTR_RXNE_MSK, &p->regs->uctrl_intr);
382 printk(KERN_INFO "%s: uctrl regs[0x%p] (irq %d)\n", 382 printk(KERN_INFO "%pOF: uctrl regs[0x%p] (irq %d)\n",
383 op->dev.of_node->full_name, p->regs, p->irq); 383 op->dev.of_node, p->regs, p->irq);
384 uctrl_get_event_status(p); 384 uctrl_get_event_status(p);
385 uctrl_get_external_status(p); 385 uctrl_get_external_status(p);
386 386
diff --git a/drivers/scsi/Kconfig b/drivers/scsi/Kconfig
index d384f4f86c26..f4538d7a3016 100644
--- a/drivers/scsi/Kconfig
+++ b/drivers/scsi/Kconfig
@@ -1230,6 +1230,8 @@ config SCSI_LPFC
1230 tristate "Emulex LightPulse Fibre Channel Support" 1230 tristate "Emulex LightPulse Fibre Channel Support"
1231 depends on PCI && SCSI 1231 depends on PCI && SCSI
1232 depends on SCSI_FC_ATTRS 1232 depends on SCSI_FC_ATTRS
1233 depends on NVME_TARGET_FC || NVME_TARGET_FC=n
1234 depends on NVME_FC || NVME_FC=n
1233 select CRC_T10DIF 1235 select CRC_T10DIF
1234 ---help--- 1236 ---help---
1235 This lpfc driver supports the Emulex LightPulse 1237 This lpfc driver supports the Emulex LightPulse
diff --git a/drivers/scsi/aacraid/aachba.c b/drivers/scsi/aacraid/aachba.c
index 707ee2f5954d..4591113c49de 100644
--- a/drivers/scsi/aacraid/aachba.c
+++ b/drivers/scsi/aacraid/aachba.c
@@ -3198,10 +3198,11 @@ static int query_disk(struct aac_dev *dev, void __user *arg)
3198 return -EBUSY; 3198 return -EBUSY;
3199 if (copy_from_user(&qd, arg, sizeof (struct aac_query_disk))) 3199 if (copy_from_user(&qd, arg, sizeof (struct aac_query_disk)))
3200 return -EFAULT; 3200 return -EFAULT;
3201 if (qd.cnum == -1) 3201 if (qd.cnum == -1) {
3202 if (qd.id < 0 || qd.id >= dev->maximum_num_containers)
3203 return -EINVAL;
3202 qd.cnum = qd.id; 3204 qd.cnum = qd.id;
3203 else if ((qd.bus == -1) && (qd.id == -1) && (qd.lun == -1)) 3205 } else if ((qd.bus == -1) && (qd.id == -1) && (qd.lun == -1)) {
3204 {
3205 if (qd.cnum < 0 || qd.cnum >= dev->maximum_num_containers) 3206 if (qd.cnum < 0 || qd.cnum >= dev->maximum_num_containers)
3206 return -EINVAL; 3207 return -EINVAL;
3207 qd.instance = dev->scsi_host_ptr->host_no; 3208 qd.instance = dev->scsi_host_ptr->host_no;
diff --git a/drivers/scsi/aic7xxx/Makefile b/drivers/scsi/aic7xxx/Makefile
index 741d81861d17..07b60a780c06 100644
--- a/drivers/scsi/aic7xxx/Makefile
+++ b/drivers/scsi/aic7xxx/Makefile
@@ -55,9 +55,9 @@ aicasm-7xxx-opts-$(CONFIG_AIC7XXX_REG_PRETTY_PRINT) := \
55 55
56ifeq ($(CONFIG_AIC7XXX_BUILD_FIRMWARE),y) 56ifeq ($(CONFIG_AIC7XXX_BUILD_FIRMWARE),y)
57$(obj)/aic7xxx_seq.h: $(src)/aic7xxx.seq $(src)/aic7xxx.reg $(obj)/aicasm/aicasm 57$(obj)/aic7xxx_seq.h: $(src)/aic7xxx.seq $(src)/aic7xxx.reg $(obj)/aicasm/aicasm
58 $(obj)/aicasm/aicasm -I$(src) -r $(obj)/aic7xxx_reg.h \ 58 $(obj)/aicasm/aicasm -I$(srctree)/$(src) -r $(obj)/aic7xxx_reg.h \
59 $(aicasm-7xxx-opts-y) -o $(obj)/aic7xxx_seq.h \ 59 $(aicasm-7xxx-opts-y) -o $(obj)/aic7xxx_seq.h \
60 $(src)/aic7xxx.seq 60 $(srctree)/$(src)/aic7xxx.seq
61 61
62$(aic7xxx-gen-y): $(obj)/aic7xxx_seq.h 62$(aic7xxx-gen-y): $(obj)/aic7xxx_seq.h
63else 63else
@@ -72,14 +72,14 @@ aicasm-79xx-opts-$(CONFIG_AIC79XX_REG_PRETTY_PRINT) := \
72 72
73ifeq ($(CONFIG_AIC79XX_BUILD_FIRMWARE),y) 73ifeq ($(CONFIG_AIC79XX_BUILD_FIRMWARE),y)
74$(obj)/aic79xx_seq.h: $(src)/aic79xx.seq $(src)/aic79xx.reg $(obj)/aicasm/aicasm 74$(obj)/aic79xx_seq.h: $(src)/aic79xx.seq $(src)/aic79xx.reg $(obj)/aicasm/aicasm
75 $(obj)/aicasm/aicasm -I$(src) -r $(obj)/aic79xx_reg.h \ 75 $(obj)/aicasm/aicasm -I$(srctree)/$(src) -r $(obj)/aic79xx_reg.h \
76 $(aicasm-79xx-opts-y) -o $(obj)/aic79xx_seq.h \ 76 $(aicasm-79xx-opts-y) -o $(obj)/aic79xx_seq.h \
77 $(src)/aic79xx.seq 77 $(srctree)/$(src)/aic79xx.seq
78 78
79$(aic79xx-gen-y): $(obj)/aic79xx_seq.h 79$(aic79xx-gen-y): $(obj)/aic79xx_seq.h
80else 80else
81$(obj)/aic79xx_reg_print.c: $(src)/aic79xx_reg_print.c_shipped 81$(obj)/aic79xx_reg_print.c: $(src)/aic79xx_reg_print.c_shipped
82endif 82endif
83 83
84$(obj)/aicasm/aicasm: $(src)/aicasm/*.[chyl] 84$(obj)/aicasm/aicasm: $(srctree)/$(src)/aicasm/*.[chyl]
85 $(MAKE) -C $(src)/aicasm 85 $(MAKE) -C $(srctree)/$(src)/aicasm OUTDIR=$(shell pwd)/$(obj)/aicasm/
diff --git a/drivers/scsi/aic7xxx/aicasm/Makefile b/drivers/scsi/aic7xxx/aicasm/Makefile
index b98c5c1056c3..45e2d49c1fff 100644
--- a/drivers/scsi/aic7xxx/aicasm/Makefile
+++ b/drivers/scsi/aic7xxx/aicasm/Makefile
@@ -1,19 +1,21 @@
1PROG= aicasm 1PROG= aicasm
2 2
3OUTDIR ?= ./
4
3.SUFFIXES= .l .y .c .h 5.SUFFIXES= .l .y .c .h
4 6
5CSRCS= aicasm.c aicasm_symbol.c 7CSRCS= aicasm.c aicasm_symbol.c
6YSRCS= aicasm_gram.y aicasm_macro_gram.y 8YSRCS= aicasm_gram.y aicasm_macro_gram.y
7LSRCS= aicasm_scan.l aicasm_macro_scan.l 9LSRCS= aicasm_scan.l aicasm_macro_scan.l
8 10
9GENHDRS= aicdb.h $(YSRCS:.y=.h) 11GENHDRS= $(addprefix ${OUTDIR}/,aicdb.h $(YSRCS:.y=.h))
10GENSRCS= $(YSRCS:.y=.c) $(LSRCS:.l=.c) 12GENSRCS= $(addprefix ${OUTDIR}/,$(YSRCS:.y=.c) $(LSRCS:.l=.c))
11 13
12SRCS= ${CSRCS} ${GENSRCS} 14SRCS= ${CSRCS} ${GENSRCS}
13LIBS= -ldb 15LIBS= -ldb
14clean-files:= ${GENSRCS} ${GENHDRS} $(YSRCS:.y=.output) $(PROG) 16clean-files:= ${GENSRCS} ${GENHDRS} $(YSRCS:.y=.output) $(PROG)
15# Override default kernel CFLAGS. This is a userland app. 17# Override default kernel CFLAGS. This is a userland app.
16AICASM_CFLAGS:= -I/usr/include -I. 18AICASM_CFLAGS:= -I/usr/include -I. -I$(OUTDIR)
17LEX= flex 19LEX= flex
18YACC= bison 20YACC= bison
19YFLAGS= -d 21YFLAGS= -d
@@ -32,22 +34,25 @@ YFLAGS+= -t -v
32LFLAGS= -d 34LFLAGS= -d
33endif 35endif
34 36
35$(PROG): ${GENHDRS} $(SRCS) 37$(PROG): $(OUTDIR) ${GENHDRS} $(SRCS)
36 $(AICASM_CC) $(AICASM_CFLAGS) $(SRCS) -o $(PROG) $(LIBS) 38 $(AICASM_CC) $(AICASM_CFLAGS) $(SRCS) -o $(OUTDIR)/$(PROG) $(LIBS)
39
40$(OUTDIR):
41 mkdir -p $(OUTDIR)
37 42
38aicdb.h: 43$(OUTDIR)/aicdb.h:
39 @if [ -e "/usr/include/db4/db_185.h" ]; then \ 44 @if [ -e "/usr/include/db4/db_185.h" ]; then \
40 echo "#include <db4/db_185.h>" > aicdb.h; \ 45 echo "#include <db4/db_185.h>" > $@; \
41 elif [ -e "/usr/include/db3/db_185.h" ]; then \ 46 elif [ -e "/usr/include/db3/db_185.h" ]; then \
42 echo "#include <db3/db_185.h>" > aicdb.h; \ 47 echo "#include <db3/db_185.h>" > $@; \
43 elif [ -e "/usr/include/db2/db_185.h" ]; then \ 48 elif [ -e "/usr/include/db2/db_185.h" ]; then \
44 echo "#include <db2/db_185.h>" > aicdb.h; \ 49 echo "#include <db2/db_185.h>" > $@; \
45 elif [ -e "/usr/include/db1/db_185.h" ]; then \ 50 elif [ -e "/usr/include/db1/db_185.h" ]; then \
46 echo "#include <db1/db_185.h>" > aicdb.h; \ 51 echo "#include <db1/db_185.h>" > $@; \
47 elif [ -e "/usr/include/db/db_185.h" ]; then \ 52 elif [ -e "/usr/include/db/db_185.h" ]; then \
48 echo "#include <db/db_185.h>" > aicdb.h; \ 53 echo "#include <db/db_185.h>" > $@; \
49 elif [ -e "/usr/include/db_185.h" ]; then \ 54 elif [ -e "/usr/include/db_185.h" ]; then \
50 echo "#include <db_185.h>" > aicdb.h; \ 55 echo "#include <db_185.h>" > $@; \
51 else \ 56 else \
52 echo "*** Install db development libraries"; \ 57 echo "*** Install db development libraries"; \
53 fi 58 fi
@@ -58,23 +63,23 @@ clean:
58# Create a dependency chain in generated files 63# Create a dependency chain in generated files
59# to avoid concurrent invocations of the single 64# to avoid concurrent invocations of the single
60# rule that builds them all. 65# rule that builds them all.
61aicasm_gram.c: aicasm_gram.h 66$(OUTDIR)/aicasm_gram.c: $(OUTDIR)/aicasm_gram.h
62aicasm_gram.c aicasm_gram.h: aicasm_gram.y 67$(OUTDIR)/aicasm_gram.c $(OUTDIR)/aicasm_gram.h: aicasm_gram.y
63 $(YACC) $(YFLAGS) -b $(<:.y=) $< 68 $(YACC) $(YFLAGS) -b $(<:.y=) $<
64 mv $(<:.y=).tab.c $(<:.y=.c) 69 mv $(<:.y=).tab.c $(OUTDIR)/$(<:.y=.c)
65 mv $(<:.y=).tab.h $(<:.y=.h) 70 mv $(<:.y=).tab.h $(OUTDIR)/$(<:.y=.h)
66 71
67# Create a dependency chain in generated files 72# Create a dependency chain in generated files
68# to avoid concurrent invocations of the single 73# to avoid concurrent invocations of the single
69# rule that builds them all. 74# rule that builds them all.
70aicasm_macro_gram.c: aicasm_macro_gram.h 75$(OUTDIR)/aicasm_macro_gram.c: $(OUTDIR)/aicasm_macro_gram.h
71aicasm_macro_gram.c aicasm_macro_gram.h: aicasm_macro_gram.y 76$(OUTDIR)/aicasm_macro_gram.c $(OUTDIR)/aicasm_macro_gram.h: aicasm_macro_gram.y
72 $(YACC) $(YFLAGS) -b $(<:.y=) -p mm $< 77 $(YACC) $(YFLAGS) -b $(<:.y=) -p mm $<
73 mv $(<:.y=).tab.c $(<:.y=.c) 78 mv $(<:.y=).tab.c $(OUTDIR)/$(<:.y=.c)
74 mv $(<:.y=).tab.h $(<:.y=.h) 79 mv $(<:.y=).tab.h $(OUTDIR)/$(<:.y=.h)
75 80
76aicasm_scan.c: aicasm_scan.l 81$(OUTDIR)/aicasm_scan.c: aicasm_scan.l
77 $(LEX) $(LFLAGS) -o$@ $< 82 $(LEX) $(LFLAGS) -o $@ $<
78 83
79aicasm_macro_scan.c: aicasm_macro_scan.l 84$(OUTDIR)/aicasm_macro_scan.c: aicasm_macro_scan.l
80 $(LEX) $(LFLAGS) -Pmm -o$@ $< 85 $(LEX) $(LFLAGS) -Pmm -o $@ $<
diff --git a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
index 7dfe709a7138..6844ba361616 100644
--- a/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
+++ b/drivers/scsi/bnx2fc/bnx2fc_fcoe.c
@@ -2624,12 +2624,11 @@ static struct fcoe_transport bnx2fc_transport = {
2624}; 2624};
2625 2625
2626/** 2626/**
2627 * bnx2fc_percpu_thread_create - Create a receive thread for an 2627 * bnx2fc_cpu_online - Create a receive thread for an online CPU
2628 * online CPU
2629 * 2628 *
2630 * @cpu: cpu index for the online cpu 2629 * @cpu: cpu index for the online cpu
2631 */ 2630 */
2632static void bnx2fc_percpu_thread_create(unsigned int cpu) 2631static int bnx2fc_cpu_online(unsigned int cpu)
2633{ 2632{
2634 struct bnx2fc_percpu_s *p; 2633 struct bnx2fc_percpu_s *p;
2635 struct task_struct *thread; 2634 struct task_struct *thread;
@@ -2639,15 +2638,17 @@ static void bnx2fc_percpu_thread_create(unsigned int cpu)
2639 thread = kthread_create_on_node(bnx2fc_percpu_io_thread, 2638 thread = kthread_create_on_node(bnx2fc_percpu_io_thread,
2640 (void *)p, cpu_to_node(cpu), 2639 (void *)p, cpu_to_node(cpu),
2641 "bnx2fc_thread/%d", cpu); 2640 "bnx2fc_thread/%d", cpu);
2641 if (IS_ERR(thread))
2642 return PTR_ERR(thread);
2643
2642 /* bind thread to the cpu */ 2644 /* bind thread to the cpu */
2643 if (likely(!IS_ERR(thread))) { 2645 kthread_bind(thread, cpu);
2644 kthread_bind(thread, cpu); 2646 p->iothread = thread;
2645 p->iothread = thread; 2647 wake_up_process(thread);
2646 wake_up_process(thread); 2648 return 0;
2647 }
2648} 2649}
2649 2650
2650static void bnx2fc_percpu_thread_destroy(unsigned int cpu) 2651static int bnx2fc_cpu_offline(unsigned int cpu)
2651{ 2652{
2652 struct bnx2fc_percpu_s *p; 2653 struct bnx2fc_percpu_s *p;
2653 struct task_struct *thread; 2654 struct task_struct *thread;
@@ -2661,7 +2662,6 @@ static void bnx2fc_percpu_thread_destroy(unsigned int cpu)
2661 thread = p->iothread; 2662 thread = p->iothread;
2662 p->iothread = NULL; 2663 p->iothread = NULL;
2663 2664
2664
2665 /* Free all work in the list */ 2665 /* Free all work in the list */
2666 list_for_each_entry_safe(work, tmp, &p->work_list, list) { 2666 list_for_each_entry_safe(work, tmp, &p->work_list, list) {
2667 list_del_init(&work->list); 2667 list_del_init(&work->list);
@@ -2673,20 +2673,6 @@ static void bnx2fc_percpu_thread_destroy(unsigned int cpu)
2673 2673
2674 if (thread) 2674 if (thread)
2675 kthread_stop(thread); 2675 kthread_stop(thread);
2676}
2677
2678
2679static int bnx2fc_cpu_online(unsigned int cpu)
2680{
2681 printk(PFX "CPU %x online: Create Rx thread\n", cpu);
2682 bnx2fc_percpu_thread_create(cpu);
2683 return 0;
2684}
2685
2686static int bnx2fc_cpu_dead(unsigned int cpu)
2687{
2688 printk(PFX "CPU %x offline: Remove Rx thread\n", cpu);
2689 bnx2fc_percpu_thread_destroy(cpu);
2690 return 0; 2676 return 0;
2691} 2677}
2692 2678
@@ -2761,30 +2747,16 @@ static int __init bnx2fc_mod_init(void)
2761 spin_lock_init(&p->fp_work_lock); 2747 spin_lock_init(&p->fp_work_lock);
2762 } 2748 }
2763 2749
2764 get_online_cpus(); 2750 rc = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "scsi/bnx2fc:online",
2765 2751 bnx2fc_cpu_online, bnx2fc_cpu_offline);
2766 for_each_online_cpu(cpu)
2767 bnx2fc_percpu_thread_create(cpu);
2768
2769 rc = cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN,
2770 "scsi/bnx2fc:online",
2771 bnx2fc_cpu_online, NULL);
2772 if (rc < 0) 2752 if (rc < 0)
2773 goto stop_threads; 2753 goto stop_thread;
2774 bnx2fc_online_state = rc; 2754 bnx2fc_online_state = rc;
2775 2755
2776 cpuhp_setup_state_nocalls(CPUHP_SCSI_BNX2FC_DEAD, "scsi/bnx2fc:dead",
2777 NULL, bnx2fc_cpu_dead);
2778 put_online_cpus();
2779
2780 cnic_register_driver(CNIC_ULP_FCOE, &bnx2fc_cnic_cb); 2756 cnic_register_driver(CNIC_ULP_FCOE, &bnx2fc_cnic_cb);
2781
2782 return 0; 2757 return 0;
2783 2758
2784stop_threads: 2759stop_thread:
2785 for_each_online_cpu(cpu)
2786 bnx2fc_percpu_thread_destroy(cpu);
2787 put_online_cpus();
2788 kthread_stop(l2_thread); 2760 kthread_stop(l2_thread);
2789free_wq: 2761free_wq:
2790 destroy_workqueue(bnx2fc_wq); 2762 destroy_workqueue(bnx2fc_wq);
@@ -2803,7 +2775,6 @@ static void __exit bnx2fc_mod_exit(void)
2803 struct fcoe_percpu_s *bg; 2775 struct fcoe_percpu_s *bg;
2804 struct task_struct *l2_thread; 2776 struct task_struct *l2_thread;
2805 struct sk_buff *skb; 2777 struct sk_buff *skb;
2806 unsigned int cpu = 0;
2807 2778
2808 /* 2779 /*
2809 * NOTE: Since cnic calls register_driver routine rtnl_lock, 2780 * NOTE: Since cnic calls register_driver routine rtnl_lock,
@@ -2844,16 +2815,7 @@ static void __exit bnx2fc_mod_exit(void)
2844 if (l2_thread) 2815 if (l2_thread)
2845 kthread_stop(l2_thread); 2816 kthread_stop(l2_thread);
2846 2817
2847 get_online_cpus(); 2818 cpuhp_remove_state(bnx2fc_online_state);
2848 /* Destroy per cpu threads */
2849 for_each_online_cpu(cpu) {
2850 bnx2fc_percpu_thread_destroy(cpu);
2851 }
2852
2853 cpuhp_remove_state_nocalls(bnx2fc_online_state);
2854 cpuhp_remove_state_nocalls(CPUHP_SCSI_BNX2FC_DEAD);
2855
2856 put_online_cpus();
2857 2819
2858 destroy_workqueue(bnx2fc_wq); 2820 destroy_workqueue(bnx2fc_wq);
2859 /* 2821 /*
diff --git a/drivers/scsi/bnx2fc/bnx2fc_hwi.c b/drivers/scsi/bnx2fc/bnx2fc_hwi.c
index 913c750205ce..26de61d65a4d 100644
--- a/drivers/scsi/bnx2fc/bnx2fc_hwi.c
+++ b/drivers/scsi/bnx2fc/bnx2fc_hwi.c
@@ -1008,6 +1008,28 @@ static struct bnx2fc_work *bnx2fc_alloc_work(struct bnx2fc_rport *tgt, u16 wqe)
1008 return work; 1008 return work;
1009} 1009}
1010 1010
1011/* Pending work request completion */
1012static void bnx2fc_pending_work(struct bnx2fc_rport *tgt, unsigned int wqe)
1013{
1014 unsigned int cpu = wqe % num_possible_cpus();
1015 struct bnx2fc_percpu_s *fps;
1016 struct bnx2fc_work *work;
1017
1018 fps = &per_cpu(bnx2fc_percpu, cpu);
1019 spin_lock_bh(&fps->fp_work_lock);
1020 if (fps->iothread) {
1021 work = bnx2fc_alloc_work(tgt, wqe);
1022 if (work) {
1023 list_add_tail(&work->list, &fps->work_list);
1024 wake_up_process(fps->iothread);
1025 spin_unlock_bh(&fps->fp_work_lock);
1026 return;
1027 }
1028 }
1029 spin_unlock_bh(&fps->fp_work_lock);
1030 bnx2fc_process_cq_compl(tgt, wqe);
1031}
1032
1011int bnx2fc_process_new_cqes(struct bnx2fc_rport *tgt) 1033int bnx2fc_process_new_cqes(struct bnx2fc_rport *tgt)
1012{ 1034{
1013 struct fcoe_cqe *cq; 1035 struct fcoe_cqe *cq;
@@ -1042,28 +1064,7 @@ int bnx2fc_process_new_cqes(struct bnx2fc_rport *tgt)
1042 /* Unsolicited event notification */ 1064 /* Unsolicited event notification */
1043 bnx2fc_process_unsol_compl(tgt, wqe); 1065 bnx2fc_process_unsol_compl(tgt, wqe);
1044 } else { 1066 } else {
1045 /* Pending work request completion */ 1067 bnx2fc_pending_work(tgt, wqe);
1046 struct bnx2fc_work *work = NULL;
1047 struct bnx2fc_percpu_s *fps = NULL;
1048 unsigned int cpu = wqe % num_possible_cpus();
1049
1050 fps = &per_cpu(bnx2fc_percpu, cpu);
1051 spin_lock_bh(&fps->fp_work_lock);
1052 if (unlikely(!fps->iothread))
1053 goto unlock;
1054
1055 work = bnx2fc_alloc_work(tgt, wqe);
1056 if (work)
1057 list_add_tail(&work->list,
1058 &fps->work_list);
1059unlock:
1060 spin_unlock_bh(&fps->fp_work_lock);
1061
1062 /* Pending work request completion */
1063 if (fps->iothread && work)
1064 wake_up_process(fps->iothread);
1065 else
1066 bnx2fc_process_cq_compl(tgt, wqe);
1067 num_free_sqes++; 1068 num_free_sqes++;
1068 } 1069 }
1069 cqe++; 1070 cqe++;
diff --git a/drivers/scsi/bnx2i/bnx2i_init.c b/drivers/scsi/bnx2i/bnx2i_init.c
index 86afc002814c..4ebcda8d9500 100644
--- a/drivers/scsi/bnx2i/bnx2i_init.c
+++ b/drivers/scsi/bnx2i/bnx2i_init.c
@@ -404,12 +404,11 @@ int bnx2i_get_stats(void *handle)
404 404
405 405
406/** 406/**
407 * bnx2i_percpu_thread_create - Create a receive thread for an 407 * bnx2i_cpu_online - Create a receive thread for an online CPU
408 * online CPU
409 * 408 *
410 * @cpu: cpu index for the online cpu 409 * @cpu: cpu index for the online cpu
411 */ 410 */
412static void bnx2i_percpu_thread_create(unsigned int cpu) 411static int bnx2i_cpu_online(unsigned int cpu)
413{ 412{
414 struct bnx2i_percpu_s *p; 413 struct bnx2i_percpu_s *p;
415 struct task_struct *thread; 414 struct task_struct *thread;
@@ -419,16 +418,17 @@ static void bnx2i_percpu_thread_create(unsigned int cpu)
419 thread = kthread_create_on_node(bnx2i_percpu_io_thread, (void *)p, 418 thread = kthread_create_on_node(bnx2i_percpu_io_thread, (void *)p,
420 cpu_to_node(cpu), 419 cpu_to_node(cpu),
421 "bnx2i_thread/%d", cpu); 420 "bnx2i_thread/%d", cpu);
421 if (IS_ERR(thread))
422 return PTR_ERR(thread);
423
422 /* bind thread to the cpu */ 424 /* bind thread to the cpu */
423 if (likely(!IS_ERR(thread))) { 425 kthread_bind(thread, cpu);
424 kthread_bind(thread, cpu); 426 p->iothread = thread;
425 p->iothread = thread; 427 wake_up_process(thread);
426 wake_up_process(thread); 428 return 0;
427 }
428} 429}
429 430
430 431static int bnx2i_cpu_offline(unsigned int cpu)
431static void bnx2i_percpu_thread_destroy(unsigned int cpu)
432{ 432{
433 struct bnx2i_percpu_s *p; 433 struct bnx2i_percpu_s *p;
434 struct task_struct *thread; 434 struct task_struct *thread;
@@ -451,19 +451,6 @@ static void bnx2i_percpu_thread_destroy(unsigned int cpu)
451 spin_unlock_bh(&p->p_work_lock); 451 spin_unlock_bh(&p->p_work_lock);
452 if (thread) 452 if (thread)
453 kthread_stop(thread); 453 kthread_stop(thread);
454}
455
456static int bnx2i_cpu_online(unsigned int cpu)
457{
458 pr_info("bnx2i: CPU %x online: Create Rx thread\n", cpu);
459 bnx2i_percpu_thread_create(cpu);
460 return 0;
461}
462
463static int bnx2i_cpu_dead(unsigned int cpu)
464{
465 pr_info("CPU %x offline: Remove Rx thread\n", cpu);
466 bnx2i_percpu_thread_destroy(cpu);
467 return 0; 454 return 0;
468} 455}
469 456
@@ -511,27 +498,14 @@ static int __init bnx2i_mod_init(void)
511 p->iothread = NULL; 498 p->iothread = NULL;
512 } 499 }
513 500
514 get_online_cpus(); 501 err = cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "scsi/bnx2i:online",
515 502 bnx2i_cpu_online, bnx2i_cpu_offline);
516 for_each_online_cpu(cpu)
517 bnx2i_percpu_thread_create(cpu);
518
519 err = cpuhp_setup_state_nocalls(CPUHP_AP_ONLINE_DYN,
520 "scsi/bnx2i:online",
521 bnx2i_cpu_online, NULL);
522 if (err < 0) 503 if (err < 0)
523 goto remove_threads; 504 goto unreg_driver;
524 bnx2i_online_state = err; 505 bnx2i_online_state = err;
525
526 cpuhp_setup_state_nocalls(CPUHP_SCSI_BNX2I_DEAD, "scsi/bnx2i:dead",
527 NULL, bnx2i_cpu_dead);
528 put_online_cpus();
529 return 0; 506 return 0;
530 507
531remove_threads: 508unreg_driver:
532 for_each_online_cpu(cpu)
533 bnx2i_percpu_thread_destroy(cpu);
534 put_online_cpus();
535 cnic_unregister_driver(CNIC_ULP_ISCSI); 509 cnic_unregister_driver(CNIC_ULP_ISCSI);
536unreg_xport: 510unreg_xport:
537 iscsi_unregister_transport(&bnx2i_iscsi_transport); 511 iscsi_unregister_transport(&bnx2i_iscsi_transport);
@@ -551,7 +525,6 @@ out:
551static void __exit bnx2i_mod_exit(void) 525static void __exit bnx2i_mod_exit(void)
552{ 526{
553 struct bnx2i_hba *hba; 527 struct bnx2i_hba *hba;
554 unsigned cpu = 0;
555 528
556 mutex_lock(&bnx2i_dev_lock); 529 mutex_lock(&bnx2i_dev_lock);
557 while (!list_empty(&adapter_list)) { 530 while (!list_empty(&adapter_list)) {
@@ -569,14 +542,7 @@ static void __exit bnx2i_mod_exit(void)
569 } 542 }
570 mutex_unlock(&bnx2i_dev_lock); 543 mutex_unlock(&bnx2i_dev_lock);
571 544
572 get_online_cpus(); 545 cpuhp_remove_state(bnx2i_online_state);
573
574 for_each_online_cpu(cpu)
575 bnx2i_percpu_thread_destroy(cpu);
576
577 cpuhp_remove_state_nocalls(bnx2i_online_state);
578 cpuhp_remove_state_nocalls(CPUHP_SCSI_BNX2I_DEAD);
579 put_online_cpus();
580 546
581 iscsi_unregister_transport(&bnx2i_iscsi_transport); 547 iscsi_unregister_transport(&bnx2i_iscsi_transport);
582 cnic_unregister_driver(CNIC_ULP_ISCSI); 548 cnic_unregister_driver(CNIC_ULP_ISCSI);
diff --git a/drivers/scsi/cxgbi/libcxgbi.c b/drivers/scsi/cxgbi/libcxgbi.c
index e4c83b7c96a8..1a4cfa562a60 100644
--- a/drivers/scsi/cxgbi/libcxgbi.c
+++ b/drivers/scsi/cxgbi/libcxgbi.c
@@ -2128,6 +2128,13 @@ void cxgbi_cleanup_task(struct iscsi_task *task)
2128 struct iscsi_tcp_task *tcp_task = task->dd_data; 2128 struct iscsi_tcp_task *tcp_task = task->dd_data;
2129 struct cxgbi_task_data *tdata = iscsi_task_cxgbi_data(task); 2129 struct cxgbi_task_data *tdata = iscsi_task_cxgbi_data(task);
2130 2130
2131 if (!tcp_task || !tdata || (tcp_task->dd_data != tdata)) {
2132 pr_info("task 0x%p,0x%p, tcp_task 0x%p, tdata 0x%p/0x%p.\n",
2133 task, task->sc, tcp_task,
2134 tcp_task ? tcp_task->dd_data : NULL, tdata);
2135 return;
2136 }
2137
2131 log_debug(1 << CXGBI_DBG_ISCSI, 2138 log_debug(1 << CXGBI_DBG_ISCSI,
2132 "task 0x%p, skb 0x%p, itt 0x%x.\n", 2139 "task 0x%p, skb 0x%p, itt 0x%x.\n",
2133 task, tdata->skb, task->hdr_itt); 2140 task, tdata->skb, task->hdr_itt);
diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
index 8914eab84337..4f7cdb28bd38 100644
--- a/drivers/scsi/hpsa.c
+++ b/drivers/scsi/hpsa.c
@@ -938,7 +938,7 @@ static struct scsi_host_template hpsa_driver_template = {
938#endif 938#endif
939 .sdev_attrs = hpsa_sdev_attrs, 939 .sdev_attrs = hpsa_sdev_attrs,
940 .shost_attrs = hpsa_shost_attrs, 940 .shost_attrs = hpsa_shost_attrs,
941 .max_sectors = 8192, 941 .max_sectors = 1024,
942 .no_write_same = 1, 942 .no_write_same = 1,
943}; 943};
944 944
diff --git a/drivers/scsi/megaraid/megaraid_sas_fusion.c b/drivers/scsi/megaraid/megaraid_sas_fusion.c
index f990ab4d45e1..985510628f56 100644
--- a/drivers/scsi/megaraid/megaraid_sas_fusion.c
+++ b/drivers/scsi/megaraid/megaraid_sas_fusion.c
@@ -425,7 +425,7 @@ static int megasas_create_sg_sense_fusion(struct megasas_instance *instance)
425int 425int
426megasas_alloc_cmdlist_fusion(struct megasas_instance *instance) 426megasas_alloc_cmdlist_fusion(struct megasas_instance *instance)
427{ 427{
428 u32 max_mpt_cmd, i; 428 u32 max_mpt_cmd, i, j;
429 struct fusion_context *fusion; 429 struct fusion_context *fusion;
430 430
431 fusion = instance->ctrl_context; 431 fusion = instance->ctrl_context;
@@ -450,11 +450,15 @@ megasas_alloc_cmdlist_fusion(struct megasas_instance *instance)
450 fusion->cmd_list[i] = kzalloc(sizeof(struct megasas_cmd_fusion), 450 fusion->cmd_list[i] = kzalloc(sizeof(struct megasas_cmd_fusion),
451 GFP_KERNEL); 451 GFP_KERNEL);
452 if (!fusion->cmd_list[i]) { 452 if (!fusion->cmd_list[i]) {
453 for (j = 0; j < i; j++)
454 kfree(fusion->cmd_list[j]);
455 kfree(fusion->cmd_list);
453 dev_err(&instance->pdev->dev, 456 dev_err(&instance->pdev->dev,
454 "Failed from %s %d\n", __func__, __LINE__); 457 "Failed from %s %d\n", __func__, __LINE__);
455 return -ENOMEM; 458 return -ENOMEM;
456 } 459 }
457 } 460 }
461
458 return 0; 462 return 0;
459} 463}
460int 464int
diff --git a/drivers/scsi/qedf/qedf.h b/drivers/scsi/qedf/qedf.h
index 4d038926a455..351f06dfc5a0 100644
--- a/drivers/scsi/qedf/qedf.h
+++ b/drivers/scsi/qedf/qedf.h
@@ -528,7 +528,8 @@ struct fip_vlan {
528#define QEDF_WRITE (1 << 0) 528#define QEDF_WRITE (1 << 0)
529#define MAX_FIBRE_LUNS 0xffffffff 529#define MAX_FIBRE_LUNS 0xffffffff
530 530
531#define QEDF_MAX_NUM_CQS 8 531#define MIN_NUM_CPUS_MSIX(x) min_t(u32, x->dev_info.num_cqs, \
532 num_online_cpus())
532 533
533/* 534/*
534 * PCI function probe defines 535 * PCI function probe defines
diff --git a/drivers/scsi/qedf/qedf_main.c b/drivers/scsi/qedf/qedf_main.c
index 7786c97e033f..1d13c9ca517d 100644
--- a/drivers/scsi/qedf/qedf_main.c
+++ b/drivers/scsi/qedf/qedf_main.c
@@ -2760,11 +2760,9 @@ static int qedf_set_fcoe_pf_param(struct qedf_ctx *qedf)
2760 * we allocation is the minimum off: 2760 * we allocation is the minimum off:
2761 * 2761 *
2762 * Number of CPUs 2762 * Number of CPUs
2763 * Number of MSI-X vectors 2763 * Number allocated by qed for our PCI function
2764 * Max number allocated in hardware (QEDF_MAX_NUM_CQS)
2765 */ 2764 */
2766 qedf->num_queues = min((unsigned int)QEDF_MAX_NUM_CQS, 2765 qedf->num_queues = MIN_NUM_CPUS_MSIX(qedf);
2767 num_online_cpus());
2768 2766
2769 QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_DISC, "Number of CQs is %d.\n", 2767 QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_DISC, "Number of CQs is %d.\n",
2770 qedf->num_queues); 2768 qedf->num_queues);
@@ -2962,6 +2960,13 @@ static int __qedf_probe(struct pci_dev *pdev, int mode)
2962 goto err1; 2960 goto err1;
2963 } 2961 }
2964 2962
2963 /* Learn information crucial for qedf to progress */
2964 rc = qed_ops->fill_dev_info(qedf->cdev, &qedf->dev_info);
2965 if (rc) {
2966 QEDF_ERR(&(qedf->dbg_ctx), "Failed to dev info.\n");
2967 goto err1;
2968 }
2969
2965 /* queue allocation code should come here 2970 /* queue allocation code should come here
2966 * order should be 2971 * order should be
2967 * slowpath_start 2972 * slowpath_start
@@ -2977,13 +2982,6 @@ static int __qedf_probe(struct pci_dev *pdev, int mode)
2977 } 2982 }
2978 qed_ops->common->update_pf_params(qedf->cdev, &qedf->pf_params); 2983 qed_ops->common->update_pf_params(qedf->cdev, &qedf->pf_params);
2979 2984
2980 /* Learn information crucial for qedf to progress */
2981 rc = qed_ops->fill_dev_info(qedf->cdev, &qedf->dev_info);
2982 if (rc) {
2983 QEDF_ERR(&(qedf->dbg_ctx), "Failed to dev info.\n");
2984 goto err1;
2985 }
2986
2987 /* Record BDQ producer doorbell addresses */ 2985 /* Record BDQ producer doorbell addresses */
2988 qedf->bdq_primary_prod = qedf->dev_info.primary_dbq_rq_addr; 2986 qedf->bdq_primary_prod = qedf->dev_info.primary_dbq_rq_addr;
2989 qedf->bdq_secondary_prod = qedf->dev_info.secondary_bdq_rq_addr; 2987 qedf->bdq_secondary_prod = qedf->dev_info.secondary_bdq_rq_addr;
diff --git a/drivers/scsi/qedi/Kconfig b/drivers/scsi/qedi/Kconfig
index 21331453db7b..2ff753ce6e27 100644
--- a/drivers/scsi/qedi/Kconfig
+++ b/drivers/scsi/qedi/Kconfig
@@ -5,6 +5,7 @@ config QEDI
5 select SCSI_ISCSI_ATTRS 5 select SCSI_ISCSI_ATTRS
6 select QED_LL2 6 select QED_LL2
7 select QED_ISCSI 7 select QED_ISCSI
8 select ISCSI_BOOT_SYSFS
8 ---help--- 9 ---help---
9 This driver supports iSCSI offload for the QLogic FastLinQ 10 This driver supports iSCSI offload for the QLogic FastLinQ
10 41000 Series Converged Network Adapters. 11 41000 Series Converged Network Adapters.
diff --git a/drivers/scsi/qedi/qedi_iscsi.c b/drivers/scsi/qedi/qedi_iscsi.c
index 80edd28b635f..37da9a8b43b1 100644
--- a/drivers/scsi/qedi/qedi_iscsi.c
+++ b/drivers/scsi/qedi/qedi_iscsi.c
@@ -824,7 +824,7 @@ qedi_ep_connect(struct Scsi_Host *shost, struct sockaddr *dst_addr,
824 u32 iscsi_cid = QEDI_CID_RESERVED; 824 u32 iscsi_cid = QEDI_CID_RESERVED;
825 u16 len = 0; 825 u16 len = 0;
826 char *buf = NULL; 826 char *buf = NULL;
827 int ret; 827 int ret, tmp;
828 828
829 if (!shost) { 829 if (!shost) {
830 ret = -ENXIO; 830 ret = -ENXIO;
@@ -940,10 +940,10 @@ qedi_ep_connect(struct Scsi_Host *shost, struct sockaddr *dst_addr,
940 940
941ep_rel_conn: 941ep_rel_conn:
942 qedi->ep_tbl[iscsi_cid] = NULL; 942 qedi->ep_tbl[iscsi_cid] = NULL;
943 ret = qedi_ops->release_conn(qedi->cdev, qedi_ep->handle); 943 tmp = qedi_ops->release_conn(qedi->cdev, qedi_ep->handle);
944 if (ret) 944 if (tmp)
945 QEDI_WARN(&qedi->dbg_ctx, "release_conn returned %d\n", 945 QEDI_WARN(&qedi->dbg_ctx, "release_conn returned %d\n",
946 ret); 946 tmp);
947ep_free_sq: 947ep_free_sq:
948 qedi_free_sq(qedi, qedi_ep); 948 qedi_free_sq(qedi, qedi_ep);
949ep_conn_exit: 949ep_conn_exit:
diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c
index 7e24aa30c3b0..892fbd9800d9 100644
--- a/drivers/scsi/scsi_transport_fc.c
+++ b/drivers/scsi/scsi_transport_fc.c
@@ -1286,7 +1286,7 @@ store_fc_vport_delete(struct device *dev, struct device_attribute *attr,
1286 unsigned long flags; 1286 unsigned long flags;
1287 1287
1288 spin_lock_irqsave(shost->host_lock, flags); 1288 spin_lock_irqsave(shost->host_lock, flags);
1289 if (vport->flags & (FC_VPORT_DEL | FC_VPORT_CREATING)) { 1289 if (vport->flags & (FC_VPORT_DEL | FC_VPORT_CREATING | FC_VPORT_DELETING)) {
1290 spin_unlock_irqrestore(shost->host_lock, flags); 1290 spin_unlock_irqrestore(shost->host_lock, flags);
1291 return -EBUSY; 1291 return -EBUSY;
1292 } 1292 }
@@ -2430,8 +2430,10 @@ fc_remove_host(struct Scsi_Host *shost)
2430 spin_lock_irqsave(shost->host_lock, flags); 2430 spin_lock_irqsave(shost->host_lock, flags);
2431 2431
2432 /* Remove any vports */ 2432 /* Remove any vports */
2433 list_for_each_entry_safe(vport, next_vport, &fc_host->vports, peers) 2433 list_for_each_entry_safe(vport, next_vport, &fc_host->vports, peers) {
2434 vport->flags |= FC_VPORT_DELETING;
2434 fc_queue_work(shost, &vport->vport_delete_work); 2435 fc_queue_work(shost, &vport->vport_delete_work);
2436 }
2435 2437
2436 /* Remove any remote ports */ 2438 /* Remove any remote ports */
2437 list_for_each_entry_safe(rport, next_rport, 2439 list_for_each_entry_safe(rport, next_rport,
diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
index 1e82d4128a84..d7ff71e0c85c 100644
--- a/drivers/scsi/sg.c
+++ b/drivers/scsi/sg.c
@@ -751,32 +751,6 @@ sg_new_write(Sg_fd *sfp, struct file *file, const char __user *buf,
751 return count; 751 return count;
752} 752}
753 753
754static bool sg_is_valid_dxfer(sg_io_hdr_t *hp)
755{
756 switch (hp->dxfer_direction) {
757 case SG_DXFER_NONE:
758 if (hp->dxferp || hp->dxfer_len > 0)
759 return false;
760 return true;
761 case SG_DXFER_FROM_DEV:
762 if (hp->dxfer_len < 0)
763 return false;
764 return true;
765 case SG_DXFER_TO_DEV:
766 case SG_DXFER_TO_FROM_DEV:
767 if (!hp->dxferp || hp->dxfer_len == 0)
768 return false;
769 return true;
770 case SG_DXFER_UNKNOWN:
771 if ((!hp->dxferp && hp->dxfer_len) ||
772 (hp->dxferp && hp->dxfer_len == 0))
773 return false;
774 return true;
775 default:
776 return false;
777 }
778}
779
780static int 754static int
781sg_common_write(Sg_fd * sfp, Sg_request * srp, 755sg_common_write(Sg_fd * sfp, Sg_request * srp,
782 unsigned char *cmnd, int timeout, int blocking) 756 unsigned char *cmnd, int timeout, int blocking)
@@ -797,7 +771,7 @@ sg_common_write(Sg_fd * sfp, Sg_request * srp,
797 "sg_common_write: scsi opcode=0x%02x, cmd_size=%d\n", 771 "sg_common_write: scsi opcode=0x%02x, cmd_size=%d\n",
798 (int) cmnd[0], (int) hp->cmd_len)); 772 (int) cmnd[0], (int) hp->cmd_len));
799 773
800 if (!sg_is_valid_dxfer(hp)) 774 if (hp->dxfer_len >= SZ_256M)
801 return -EINVAL; 775 return -EINVAL;
802 776
803 k = sg_start_req(srp, cmnd); 777 k = sg_start_req(srp, cmnd);
diff --git a/drivers/scsi/smartpqi/smartpqi.h b/drivers/scsi/smartpqi/smartpqi.h
index 07ec8a8877de..e164ffade38a 100644
--- a/drivers/scsi/smartpqi/smartpqi.h
+++ b/drivers/scsi/smartpqi/smartpqi.h
@@ -690,7 +690,7 @@ struct pqi_config_table_heartbeat {
690 690
691#define PQI_MAX_OUTSTANDING_REQUESTS ((u32)~0) 691#define PQI_MAX_OUTSTANDING_REQUESTS ((u32)~0)
692#define PQI_MAX_OUTSTANDING_REQUESTS_KDUMP 32 692#define PQI_MAX_OUTSTANDING_REQUESTS_KDUMP 32
693#define PQI_MAX_TRANSFER_SIZE (4 * 1024U * 1024U) 693#define PQI_MAX_TRANSFER_SIZE (1024U * 1024U)
694#define PQI_MAX_TRANSFER_SIZE_KDUMP (512 * 1024U) 694#define PQI_MAX_TRANSFER_SIZE_KDUMP (512 * 1024U)
695 695
696#define RAID_MAP_MAX_ENTRIES 1024 696#define RAID_MAP_MAX_ENTRIES 1024
diff --git a/drivers/soc/zte/Kconfig b/drivers/soc/zte/Kconfig
index 20bde38ce2f9..e9d750c510cd 100644
--- a/drivers/soc/zte/Kconfig
+++ b/drivers/soc/zte/Kconfig
@@ -2,6 +2,7 @@
2# ZTE SoC drivers 2# ZTE SoC drivers
3# 3#
4menuconfig SOC_ZTE 4menuconfig SOC_ZTE
5 depends on ARCH_ZX || COMPILE_TEST
5 bool "ZTE SoC driver support" 6 bool "ZTE SoC driver support"
6 7
7if SOC_ZTE 8if SOC_ZTE
diff --git a/drivers/staging/media/atomisp/i2c/ap1302.h b/drivers/staging/media/atomisp/i2c/ap1302.h
index 9341232c580d..4d0b181a9671 100644
--- a/drivers/staging/media/atomisp/i2c/ap1302.h
+++ b/drivers/staging/media/atomisp/i2c/ap1302.h
@@ -158,8 +158,8 @@ struct ap1302_res_struct {
158}; 158};
159 159
160struct ap1302_context_res { 160struct ap1302_context_res {
161 s32 res_num; 161 u32 res_num;
162 s32 cur_res; 162 u32 cur_res;
163 struct ap1302_res_struct *res_table; 163 struct ap1302_res_struct *res_table;
164}; 164};
165 165
diff --git a/drivers/staging/media/atomisp/i2c/gc0310.h b/drivers/staging/media/atomisp/i2c/gc0310.h
index f31eb277f542..7d8a0aeecb6c 100644
--- a/drivers/staging/media/atomisp/i2c/gc0310.h
+++ b/drivers/staging/media/atomisp/i2c/gc0310.h
@@ -454,6 +454,6 @@ struct gc0310_resolution gc0310_res_video[] = {
454#define N_RES_VIDEO (ARRAY_SIZE(gc0310_res_video)) 454#define N_RES_VIDEO (ARRAY_SIZE(gc0310_res_video))
455 455
456static struct gc0310_resolution *gc0310_res = gc0310_res_preview; 456static struct gc0310_resolution *gc0310_res = gc0310_res_preview;
457static int N_RES = N_RES_PREVIEW; 457static unsigned long N_RES = N_RES_PREVIEW;
458#endif 458#endif
459 459
diff --git a/drivers/staging/media/atomisp/i2c/gc2235.h b/drivers/staging/media/atomisp/i2c/gc2235.h
index ccbc757045a5..7c3d994180cc 100644
--- a/drivers/staging/media/atomisp/i2c/gc2235.h
+++ b/drivers/staging/media/atomisp/i2c/gc2235.h
@@ -668,5 +668,5 @@ struct gc2235_resolution gc2235_res_video[] = {
668#define N_RES_VIDEO (ARRAY_SIZE(gc2235_res_video)) 668#define N_RES_VIDEO (ARRAY_SIZE(gc2235_res_video))
669 669
670static struct gc2235_resolution *gc2235_res = gc2235_res_preview; 670static struct gc2235_resolution *gc2235_res = gc2235_res_preview;
671static int N_RES = N_RES_PREVIEW; 671static unsigned long N_RES = N_RES_PREVIEW;
672#endif 672#endif
diff --git a/drivers/staging/media/atomisp/i2c/imx/imx.h b/drivers/staging/media/atomisp/i2c/imx/imx.h
index 36b3f3a5a41f..41b4133ca995 100644
--- a/drivers/staging/media/atomisp/i2c/imx/imx.h
+++ b/drivers/staging/media/atomisp/i2c/imx/imx.h
@@ -480,7 +480,7 @@ struct imx_device {
480 struct imx_vcm *vcm_driver; 480 struct imx_vcm *vcm_driver;
481 struct imx_otp *otp_driver; 481 struct imx_otp *otp_driver;
482 const struct imx_resolution *curr_res_table; 482 const struct imx_resolution *curr_res_table;
483 int entries_curr_table; 483 unsigned long entries_curr_table;
484 const struct firmware *fw; 484 const struct firmware *fw;
485 struct imx_reg_addr *reg_addr; 485 struct imx_reg_addr *reg_addr;
486 const struct imx_reg *param_hold; 486 const struct imx_reg *param_hold;
diff --git a/drivers/staging/media/atomisp/i2c/ov2680.h b/drivers/staging/media/atomisp/i2c/ov2680.h
index 944fe8e3bcbf..ab8907e6c9ef 100644
--- a/drivers/staging/media/atomisp/i2c/ov2680.h
+++ b/drivers/staging/media/atomisp/i2c/ov2680.h
@@ -934,7 +934,6 @@ static struct ov2680_resolution ov2680_res_video[] = {
934#define N_RES_VIDEO (ARRAY_SIZE(ov2680_res_video)) 934#define N_RES_VIDEO (ARRAY_SIZE(ov2680_res_video))
935 935
936static struct ov2680_resolution *ov2680_res = ov2680_res_preview; 936static struct ov2680_resolution *ov2680_res = ov2680_res_preview;
937static int N_RES = N_RES_PREVIEW; 937static unsigned long N_RES = N_RES_PREVIEW;
938
939 938
940#endif 939#endif
diff --git a/drivers/staging/media/atomisp/i2c/ov2722.h b/drivers/staging/media/atomisp/i2c/ov2722.h
index b0d40965d89e..73ecb1679718 100644
--- a/drivers/staging/media/atomisp/i2c/ov2722.h
+++ b/drivers/staging/media/atomisp/i2c/ov2722.h
@@ -1263,5 +1263,5 @@ struct ov2722_resolution ov2722_res_video[] = {
1263#define N_RES_VIDEO (ARRAY_SIZE(ov2722_res_video)) 1263#define N_RES_VIDEO (ARRAY_SIZE(ov2722_res_video))
1264 1264
1265static struct ov2722_resolution *ov2722_res = ov2722_res_preview; 1265static struct ov2722_resolution *ov2722_res = ov2722_res_preview;
1266static int N_RES = N_RES_PREVIEW; 1266static unsigned long N_RES = N_RES_PREVIEW;
1267#endif 1267#endif
diff --git a/drivers/staging/media/atomisp/i2c/ov5693/ov5693.h b/drivers/staging/media/atomisp/i2c/ov5693/ov5693.h
index d88ac1777d86..8c2e6794463b 100644
--- a/drivers/staging/media/atomisp/i2c/ov5693/ov5693.h
+++ b/drivers/staging/media/atomisp/i2c/ov5693/ov5693.h
@@ -1377,5 +1377,5 @@ struct ov5693_resolution ov5693_res_video[] = {
1377#define N_RES_VIDEO (ARRAY_SIZE(ov5693_res_video)) 1377#define N_RES_VIDEO (ARRAY_SIZE(ov5693_res_video))
1378 1378
1379static struct ov5693_resolution *ov5693_res = ov5693_res_preview; 1379static struct ov5693_resolution *ov5693_res = ov5693_res_preview;
1380static int N_RES = N_RES_PREVIEW; 1380static unsigned long N_RES = N_RES_PREVIEW;
1381#endif 1381#endif
diff --git a/drivers/staging/media/atomisp/i2c/ov8858.h b/drivers/staging/media/atomisp/i2c/ov8858.h
index 9be6a0e63861..d3fde200c013 100644
--- a/drivers/staging/media/atomisp/i2c/ov8858.h
+++ b/drivers/staging/media/atomisp/i2c/ov8858.h
@@ -266,7 +266,7 @@ struct ov8858_device {
266 const struct ov8858_reg *regs; 266 const struct ov8858_reg *regs;
267 struct ov8858_vcm *vcm_driver; 267 struct ov8858_vcm *vcm_driver;
268 const struct ov8858_resolution *curr_res_table; 268 const struct ov8858_resolution *curr_res_table;
269 int entries_curr_table; 269 unsigned long entries_curr_table;
270 270
271 struct v4l2_ctrl_handler ctrl_handler; 271 struct v4l2_ctrl_handler ctrl_handler;
272 struct v4l2_ctrl *run_mode; 272 struct v4l2_ctrl *run_mode;
diff --git a/drivers/staging/media/atomisp/i2c/ov8858_btns.h b/drivers/staging/media/atomisp/i2c/ov8858_btns.h
index 09e3cdc1a394..f9a3cf8fbf1a 100644
--- a/drivers/staging/media/atomisp/i2c/ov8858_btns.h
+++ b/drivers/staging/media/atomisp/i2c/ov8858_btns.h
@@ -266,7 +266,7 @@ struct ov8858_device {
266 const struct ov8858_reg *regs; 266 const struct ov8858_reg *regs;
267 struct ov8858_vcm *vcm_driver; 267 struct ov8858_vcm *vcm_driver;
268 const struct ov8858_resolution *curr_res_table; 268 const struct ov8858_resolution *curr_res_table;
269 int entries_curr_table; 269 unsigned long entries_curr_table;
270 270
271 struct v4l2_ctrl_handler ctrl_handler; 271 struct v4l2_ctrl_handler ctrl_handler;
272 struct v4l2_ctrl *run_mode; 272 struct v4l2_ctrl *run_mode;
diff --git a/drivers/staging/media/atomisp/pci/atomisp2/Makefile b/drivers/staging/media/atomisp/pci/atomisp2/Makefile
index 726eaa293c55..2bd98f0667ec 100644
--- a/drivers/staging/media/atomisp/pci/atomisp2/Makefile
+++ b/drivers/staging/media/atomisp/pci/atomisp2/Makefile
@@ -354,7 +354,9 @@ ccflags-y += $(INCLUDES) $(DEFINES) -fno-common
354 354
355# HACK! While this driver is in bad shape, don't enable several warnings 355# HACK! While this driver is in bad shape, don't enable several warnings
356# that would be otherwise enabled with W=1 356# that would be otherwise enabled with W=1
357ccflags-y += -Wno-unused-const-variable -Wno-missing-prototypes \ 357ccflags-y += $(call cc-disable-warning, implicit-fallthrough)
358 -Wno-unused-but-set-variable -Wno-missing-declarations \ 358ccflags-y += $(call cc-disable-warning, missing-prototypes)
359 -Wno-suggest-attribute=format -Wno-missing-prototypes \ 359ccflags-y += $(call cc-disable-warning, missing-declarations)
360 -Wno-implicit-fallthrough 360ccflags-y += $(call cc-disable-warning, suggest-attribute=format)
361ccflags-y += $(call cc-disable-warning, unused-const-variable)
362ccflags-y += $(call cc-disable-warning, unused-but-set-variable)
diff --git a/drivers/staging/media/atomisp/pci/atomisp2/atomisp_internal.h b/drivers/staging/media/atomisp/pci/atomisp2/atomisp_internal.h
index d3667132851b..c8e0c4fe3717 100644
--- a/drivers/staging/media/atomisp/pci/atomisp2/atomisp_internal.h
+++ b/drivers/staging/media/atomisp/pci/atomisp2/atomisp_internal.h
@@ -275,7 +275,7 @@ struct atomisp_device {
275 */ 275 */
276 struct mutex streamoff_mutex; 276 struct mutex streamoff_mutex;
277 277
278 int input_cnt; 278 unsigned int input_cnt;
279 struct atomisp_input_subdev inputs[ATOM_ISP_MAX_INPUTS]; 279 struct atomisp_input_subdev inputs[ATOM_ISP_MAX_INPUTS];
280 struct v4l2_subdev *flash; 280 struct v4l2_subdev *flash;
281 struct v4l2_subdev *motor; 281 struct v4l2_subdev *motor;
diff --git a/drivers/staging/media/cxd2099/cxd2099.c b/drivers/staging/media/cxd2099/cxd2099.c
index 370ecb959543..f28916ea69f1 100644
--- a/drivers/staging/media/cxd2099/cxd2099.c
+++ b/drivers/staging/media/cxd2099/cxd2099.c
@@ -1,7 +1,7 @@
1/* 1/*
2 * cxd2099.c: Driver for the CXD2099AR Common Interface Controller 2 * cxd2099.c: Driver for the CXD2099AR Common Interface Controller
3 * 3 *
4 * Copyright (C) 2010-2011 Digital Devices GmbH 4 * Copyright (C) 2010-2013 Digital Devices GmbH
5 * 5 *
6 * 6 *
7 * This program is free software; you can redistribute it and/or 7 * This program is free software; you can redistribute it and/or
@@ -33,7 +33,10 @@
33 33
34#include "cxd2099.h" 34#include "cxd2099.h"
35 35
36#define MAX_BUFFER_SIZE 248 36/* comment this line to deactivate the cxd2099ar buffer mode */
37#define BUFFER_MODE 1
38
39static int read_data(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount);
37 40
38struct cxd { 41struct cxd {
39 struct dvb_ca_en50221 en; 42 struct dvb_ca_en50221 en;
@@ -48,6 +51,7 @@ struct cxd {
48 int mode; 51 int mode;
49 int ready; 52 int ready;
50 int dr; 53 int dr;
54 int write_busy;
51 int slot_stat; 55 int slot_stat;
52 56
53 u8 amem[1024]; 57 u8 amem[1024];
@@ -55,6 +59,9 @@ struct cxd {
55 59
56 int cammode; 60 int cammode;
57 struct mutex lock; 61 struct mutex lock;
62
63 u8 rbuf[1028];
64 u8 wbuf[1028];
58}; 65};
59 66
60static int i2c_write_reg(struct i2c_adapter *adapter, u8 adr, 67static int i2c_write_reg(struct i2c_adapter *adapter, u8 adr,
@@ -73,7 +80,7 @@ static int i2c_write_reg(struct i2c_adapter *adapter, u8 adr,
73} 80}
74 81
75static int i2c_write(struct i2c_adapter *adapter, u8 adr, 82static int i2c_write(struct i2c_adapter *adapter, u8 adr,
76 u8 *data, u8 len) 83 u8 *data, u16 len)
77{ 84{
78 struct i2c_msg msg = {.addr = adr, .flags = 0, .buf = data, .len = len}; 85 struct i2c_msg msg = {.addr = adr, .flags = 0, .buf = data, .len = len};
79 86
@@ -100,12 +107,12 @@ static int i2c_read_reg(struct i2c_adapter *adapter, u8 adr,
100} 107}
101 108
102static int i2c_read(struct i2c_adapter *adapter, u8 adr, 109static int i2c_read(struct i2c_adapter *adapter, u8 adr,
103 u8 reg, u8 *data, u8 n) 110 u8 reg, u8 *data, u16 n)
104{ 111{
105 struct i2c_msg msgs[2] = {{.addr = adr, .flags = 0, 112 struct i2c_msg msgs[2] = {{.addr = adr, .flags = 0,
106 .buf = &reg, .len = 1}, 113 .buf = &reg, .len = 1},
107 {.addr = adr, .flags = I2C_M_RD, 114 {.addr = adr, .flags = I2C_M_RD,
108 .buf = data, .len = n} }; 115 .buf = data, .len = n} };
109 116
110 if (i2c_transfer(adapter, msgs, 2) != 2) { 117 if (i2c_transfer(adapter, msgs, 2) != 2) {
111 dev_err(&adapter->dev, "error in i2c_read\n"); 118 dev_err(&adapter->dev, "error in i2c_read\n");
@@ -114,14 +121,26 @@ static int i2c_read(struct i2c_adapter *adapter, u8 adr,
114 return 0; 121 return 0;
115} 122}
116 123
117static int read_block(struct cxd *ci, u8 adr, u8 *data, u8 n) 124static int read_block(struct cxd *ci, u8 adr, u8 *data, u16 n)
118{ 125{
119 int status; 126 int status = 0;
120 127
121 status = i2c_write_reg(ci->i2c, ci->cfg.adr, 0, adr); 128 if (ci->lastaddress != adr)
129 status = i2c_write_reg(ci->i2c, ci->cfg.adr, 0, adr);
122 if (!status) { 130 if (!status) {
123 ci->lastaddress = adr; 131 ci->lastaddress = adr;
124 status = i2c_read(ci->i2c, ci->cfg.adr, 1, data, n); 132
133 while (n) {
134 int len = n;
135
136 if (ci->cfg.max_i2c && (len > ci->cfg.max_i2c))
137 len = ci->cfg.max_i2c;
138 status = i2c_read(ci->i2c, ci->cfg.adr, 1, data, len);
139 if (status)
140 return status;
141 data += len;
142 n -= len;
143 }
125 } 144 }
126 return status; 145 return status;
127} 146}
@@ -182,16 +201,16 @@ static int write_io(struct cxd *ci, u16 address, u8 val)
182 201
183static int write_regm(struct cxd *ci, u8 reg, u8 val, u8 mask) 202static int write_regm(struct cxd *ci, u8 reg, u8 val, u8 mask)
184{ 203{
185 int status; 204 int status = 0;
186 205
187 status = i2c_write_reg(ci->i2c, ci->cfg.adr, 0, reg); 206 if (ci->lastaddress != reg)
207 status = i2c_write_reg(ci->i2c, ci->cfg.adr, 0, reg);
188 if (!status && reg >= 6 && reg <= 8 && mask != 0xff) 208 if (!status && reg >= 6 && reg <= 8 && mask != 0xff)
189 status = i2c_read_reg(ci->i2c, ci->cfg.adr, 1, &ci->regs[reg]); 209 status = i2c_read_reg(ci->i2c, ci->cfg.adr, 1, &ci->regs[reg]);
210 ci->lastaddress = reg;
190 ci->regs[reg] = (ci->regs[reg] & (~mask)) | val; 211 ci->regs[reg] = (ci->regs[reg] & (~mask)) | val;
191 if (!status) { 212 if (!status)
192 ci->lastaddress = reg;
193 status = i2c_write_reg(ci->i2c, ci->cfg.adr, 1, ci->regs[reg]); 213 status = i2c_write_reg(ci->i2c, ci->cfg.adr, 1, ci->regs[reg]);
194 }
195 if (reg == 0x20) 214 if (reg == 0x20)
196 ci->regs[reg] &= 0x7f; 215 ci->regs[reg] &= 0x7f;
197 return status; 216 return status;
@@ -203,16 +222,29 @@ static int write_reg(struct cxd *ci, u8 reg, u8 val)
203} 222}
204 223
205#ifdef BUFFER_MODE 224#ifdef BUFFER_MODE
206static int write_block(struct cxd *ci, u8 adr, u8 *data, int n) 225static int write_block(struct cxd *ci, u8 adr, u8 *data, u16 n)
207{ 226{
208 int status; 227 int status = 0;
209 u8 buf[256] = {1}; 228 u8 *buf = ci->wbuf;
210 229
211 status = i2c_write_reg(ci->i2c, ci->cfg.adr, 0, adr); 230 if (ci->lastaddress != adr)
212 if (!status) { 231 status = i2c_write_reg(ci->i2c, ci->cfg.adr, 0, adr);
213 ci->lastaddress = adr; 232 if (status)
214 memcpy(buf + 1, data, n); 233 return status;
215 status = i2c_write(ci->i2c, ci->cfg.adr, buf, n + 1); 234
235 ci->lastaddress = adr;
236 buf[0] = 1;
237 while (n) {
238 int len = n;
239
240 if (ci->cfg.max_i2c && (len + 1 > ci->cfg.max_i2c))
241 len = ci->cfg.max_i2c - 1;
242 memcpy(buf + 1, data, len);
243 status = i2c_write(ci->i2c, ci->cfg.adr, buf, len + 1);
244 if (status)
245 return status;
246 n -= len;
247 data += len;
216 } 248 }
217 return status; 249 return status;
218} 250}
@@ -238,6 +270,8 @@ static void set_mode(struct cxd *ci, int mode)
238 270
239static void cam_mode(struct cxd *ci, int mode) 271static void cam_mode(struct cxd *ci, int mode)
240{ 272{
273 u8 dummy;
274
241 if (mode == ci->cammode) 275 if (mode == ci->cammode)
242 return; 276 return;
243 277
@@ -246,16 +280,15 @@ static void cam_mode(struct cxd *ci, int mode)
246 write_regm(ci, 0x20, 0x80, 0x80); 280 write_regm(ci, 0x20, 0x80, 0x80);
247 break; 281 break;
248 case 0x01: 282 case 0x01:
249#ifdef BUFFER_MODE
250 if (!ci->en.read_data) 283 if (!ci->en.read_data)
251 return; 284 return;
285 ci->write_busy = 0;
252 dev_info(&ci->i2c->dev, "enable cam buffer mode\n"); 286 dev_info(&ci->i2c->dev, "enable cam buffer mode\n");
253 /* write_reg(ci, 0x0d, 0x00); */ 287 write_reg(ci, 0x0d, 0x00);
254 /* write_reg(ci, 0x0e, 0x01); */ 288 write_reg(ci, 0x0e, 0x01);
255 write_regm(ci, 0x08, 0x40, 0x40); 289 write_regm(ci, 0x08, 0x40, 0x40);
256 /* read_reg(ci, 0x12, &dummy); */ 290 read_reg(ci, 0x12, &dummy);
257 write_regm(ci, 0x08, 0x80, 0x80); 291 write_regm(ci, 0x08, 0x80, 0x80);
258#endif
259 break; 292 break;
260 default: 293 default:
261 break; 294 break;
@@ -325,7 +358,10 @@ static int init(struct cxd *ci)
325 if (status < 0) 358 if (status < 0)
326 break; 359 break;
327 360
328 if (ci->cfg.clock_mode) { 361 if (ci->cfg.clock_mode == 2) {
362 /* bitrate*2^13/ 72000 */
363 u32 reg = ((ci->cfg.bitrate << 13) + 71999) / 72000;
364
329 if (ci->cfg.polarity) { 365 if (ci->cfg.polarity) {
330 status = write_reg(ci, 0x09, 0x6f); 366 status = write_reg(ci, 0x09, 0x6f);
331 if (status < 0) 367 if (status < 0)
@@ -335,6 +371,25 @@ static int init(struct cxd *ci)
335 if (status < 0) 371 if (status < 0)
336 break; 372 break;
337 } 373 }
374 status = write_reg(ci, 0x20, 0x08);
375 if (status < 0)
376 break;
377 status = write_reg(ci, 0x21, (reg >> 8) & 0xff);
378 if (status < 0)
379 break;
380 status = write_reg(ci, 0x22, reg & 0xff);
381 if (status < 0)
382 break;
383 } else if (ci->cfg.clock_mode == 1) {
384 if (ci->cfg.polarity) {
385 status = write_reg(ci, 0x09, 0x6f); /* D */
386 if (status < 0)
387 break;
388 } else {
389 status = write_reg(ci, 0x09, 0x6d);
390 if (status < 0)
391 break;
392 }
338 status = write_reg(ci, 0x20, 0x68); 393 status = write_reg(ci, 0x20, 0x68);
339 if (status < 0) 394 if (status < 0)
340 break; 395 break;
@@ -346,7 +401,7 @@ static int init(struct cxd *ci)
346 break; 401 break;
347 } else { 402 } else {
348 if (ci->cfg.polarity) { 403 if (ci->cfg.polarity) {
349 status = write_reg(ci, 0x09, 0x4f); 404 status = write_reg(ci, 0x09, 0x4f); /* C */
350 if (status < 0) 405 if (status < 0)
351 break; 406 break;
352 } else { 407 } else {
@@ -354,7 +409,6 @@ static int init(struct cxd *ci)
354 if (status < 0) 409 if (status < 0)
355 break; 410 break;
356 } 411 }
357
358 status = write_reg(ci, 0x20, 0x28); 412 status = write_reg(ci, 0x20, 0x28);
359 if (status < 0) 413 if (status < 0)
360 break; 414 break;
@@ -401,7 +455,6 @@ static int read_attribute_mem(struct dvb_ca_en50221 *ca,
401 set_mode(ci, 1); 455 set_mode(ci, 1);
402 read_pccard(ci, address, &val, 1); 456 read_pccard(ci, address, &val, 1);
403 mutex_unlock(&ci->lock); 457 mutex_unlock(&ci->lock);
404 /* printk(KERN_INFO "%02x:%02x\n", address,val); */
405 return val; 458 return val;
406} 459}
407 460
@@ -446,6 +499,9 @@ static int slot_reset(struct dvb_ca_en50221 *ca, int slot)
446{ 499{
447 struct cxd *ci = ca->data; 500 struct cxd *ci = ca->data;
448 501
502 if (ci->cammode)
503 read_data(ca, slot, ci->rbuf, 0);
504
449 mutex_lock(&ci->lock); 505 mutex_lock(&ci->lock);
450 cam_mode(ci, 0); 506 cam_mode(ci, 0);
451 write_reg(ci, 0x00, 0x21); 507 write_reg(ci, 0x00, 0x21);
@@ -465,7 +521,6 @@ static int slot_reset(struct dvb_ca_en50221 *ca, int slot)
465 } 521 }
466 } 522 }
467 mutex_unlock(&ci->lock); 523 mutex_unlock(&ci->lock);
468 /* msleep(500); */
469 return 0; 524 return 0;
470} 525}
471 526
@@ -474,11 +529,19 @@ static int slot_shutdown(struct dvb_ca_en50221 *ca, int slot)
474 struct cxd *ci = ca->data; 529 struct cxd *ci = ca->data;
475 530
476 dev_info(&ci->i2c->dev, "%s\n", __func__); 531 dev_info(&ci->i2c->dev, "%s\n", __func__);
532 if (ci->cammode)
533 read_data(ca, slot, ci->rbuf, 0);
477 mutex_lock(&ci->lock); 534 mutex_lock(&ci->lock);
535 write_reg(ci, 0x00, 0x21);
536 write_reg(ci, 0x06, 0x1F);
537 msleep(300);
538
478 write_regm(ci, 0x09, 0x08, 0x08); 539 write_regm(ci, 0x09, 0x08, 0x08);
479 write_regm(ci, 0x20, 0x80, 0x80); /* Reset CAM Mode */ 540 write_regm(ci, 0x20, 0x80, 0x80); /* Reset CAM Mode */
480 write_regm(ci, 0x06, 0x07, 0x07); /* Clear IO Mode */ 541 write_regm(ci, 0x06, 0x07, 0x07); /* Clear IO Mode */
542
481 ci->mode = -1; 543 ci->mode = -1;
544 ci->write_busy = 0;
482 mutex_unlock(&ci->lock); 545 mutex_unlock(&ci->lock);
483 return 0; 546 return 0;
484} 547}
@@ -490,9 +553,7 @@ static int slot_ts_enable(struct dvb_ca_en50221 *ca, int slot)
490 mutex_lock(&ci->lock); 553 mutex_lock(&ci->lock);
491 write_regm(ci, 0x09, 0x00, 0x08); 554 write_regm(ci, 0x09, 0x00, 0x08);
492 set_mode(ci, 0); 555 set_mode(ci, 0);
493#ifdef BUFFER_MODE
494 cam_mode(ci, 1); 556 cam_mode(ci, 1);
495#endif
496 mutex_unlock(&ci->lock); 557 mutex_unlock(&ci->lock);
497 return 0; 558 return 0;
498} 559}
@@ -506,12 +567,10 @@ static int campoll(struct cxd *ci)
506 return 0; 567 return 0;
507 write_reg(ci, 0x05, istat); 568 write_reg(ci, 0x05, istat);
508 569
509 if (istat & 0x40) { 570 if (istat & 0x40)
510 ci->dr = 1; 571 ci->dr = 1;
511 dev_info(&ci->i2c->dev, "DR\n");
512 }
513 if (istat & 0x20) 572 if (istat & 0x20)
514 dev_info(&ci->i2c->dev, "WC\n"); 573 ci->write_busy = 0;
515 574
516 if (istat & 2) { 575 if (istat & 2) {
517 u8 slotstat; 576 u8 slotstat;
@@ -519,7 +578,8 @@ static int campoll(struct cxd *ci)
519 read_reg(ci, 0x01, &slotstat); 578 read_reg(ci, 0x01, &slotstat);
520 if (!(2 & slotstat)) { 579 if (!(2 & slotstat)) {
521 if (!ci->slot_stat) { 580 if (!ci->slot_stat) {
522 ci->slot_stat = DVB_CA_EN50221_POLL_CAM_PRESENT; 581 ci->slot_stat |=
582 DVB_CA_EN50221_POLL_CAM_PRESENT;
523 write_regm(ci, 0x03, 0x08, 0x08); 583 write_regm(ci, 0x03, 0x08, 0x08);
524 } 584 }
525 585
@@ -531,8 +591,8 @@ static int campoll(struct cxd *ci)
531 ci->ready = 0; 591 ci->ready = 0;
532 } 592 }
533 } 593 }
534 if (istat & 8 && 594 if ((istat & 8) &&
535 ci->slot_stat == DVB_CA_EN50221_POLL_CAM_PRESENT) { 595 (ci->slot_stat == DVB_CA_EN50221_POLL_CAM_PRESENT)) {
536 ci->ready = 1; 596 ci->ready = 1;
537 ci->slot_stat |= DVB_CA_EN50221_POLL_CAM_READY; 597 ci->slot_stat |= DVB_CA_EN50221_POLL_CAM_READY;
538 } 598 }
@@ -553,7 +613,6 @@ static int poll_slot_status(struct dvb_ca_en50221 *ca, int slot, int open)
553 return ci->slot_stat; 613 return ci->slot_stat;
554} 614}
555 615
556#ifdef BUFFER_MODE
557static int read_data(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount) 616static int read_data(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount)
558{ 617{
559 struct cxd *ci = ca->data; 618 struct cxd *ci = ca->data;
@@ -564,30 +623,38 @@ static int read_data(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount)
564 campoll(ci); 623 campoll(ci);
565 mutex_unlock(&ci->lock); 624 mutex_unlock(&ci->lock);
566 625
567 dev_info(&ci->i2c->dev, "%s\n", __func__);
568 if (!ci->dr) 626 if (!ci->dr)
569 return 0; 627 return 0;
570 628
571 mutex_lock(&ci->lock); 629 mutex_lock(&ci->lock);
572 read_reg(ci, 0x0f, &msb); 630 read_reg(ci, 0x0f, &msb);
573 read_reg(ci, 0x10, &lsb); 631 read_reg(ci, 0x10, &lsb);
574 len = (msb << 8) | lsb; 632 len = ((u16)msb << 8) | lsb;
633 if (len > ecount || len < 2) {
634 /* read it anyway or cxd may hang */
635 read_block(ci, 0x12, ci->rbuf, len);
636 mutex_unlock(&ci->lock);
637 return -EIO;
638 }
575 read_block(ci, 0x12, ebuf, len); 639 read_block(ci, 0x12, ebuf, len);
576 ci->dr = 0; 640 ci->dr = 0;
577 mutex_unlock(&ci->lock); 641 mutex_unlock(&ci->lock);
578
579 return len; 642 return len;
580} 643}
581 644
645#ifdef BUFFER_MODE
646
582static int write_data(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount) 647static int write_data(struct dvb_ca_en50221 *ca, int slot, u8 *ebuf, int ecount)
583{ 648{
584 struct cxd *ci = ca->data; 649 struct cxd *ci = ca->data;
585 650
651 if (ci->write_busy)
652 return -EAGAIN;
586 mutex_lock(&ci->lock); 653 mutex_lock(&ci->lock);
587 dev_info(&ci->i2c->dev, "%s %d\n", __func__, ecount);
588 write_reg(ci, 0x0d, ecount >> 8); 654 write_reg(ci, 0x0d, ecount >> 8);
589 write_reg(ci, 0x0e, ecount & 0xff); 655 write_reg(ci, 0x0e, ecount & 0xff);
590 write_block(ci, 0x11, ebuf, ecount); 656 write_block(ci, 0x11, ebuf, ecount);
657 ci->write_busy = 1;
591 mutex_unlock(&ci->lock); 658 mutex_unlock(&ci->lock);
592 return ecount; 659 return ecount;
593} 660}
diff --git a/drivers/staging/media/cxd2099/cxd2099.h b/drivers/staging/media/cxd2099/cxd2099.h
index 0eb607c5b423..f4b29b1d6eb8 100644
--- a/drivers/staging/media/cxd2099/cxd2099.h
+++ b/drivers/staging/media/cxd2099/cxd2099.h
@@ -30,8 +30,10 @@
30struct cxd2099_cfg { 30struct cxd2099_cfg {
31 u32 bitrate; 31 u32 bitrate;
32 u8 adr; 32 u8 adr;
33 u8 polarity:1; 33 u8 polarity;
34 u8 clock_mode:1; 34 u8 clock_mode;
35
36 u32 max_i2c;
35}; 37};
36 38
37#if defined(CONFIG_DVB_CXD2099) || \ 39#if defined(CONFIG_DVB_CXD2099) || \
diff --git a/drivers/thunderbolt/icm.c b/drivers/thunderbolt/icm.c
index 8ee340290219..bdaac1ff00a5 100644
--- a/drivers/thunderbolt/icm.c
+++ b/drivers/thunderbolt/icm.c
@@ -904,7 +904,14 @@ static int icm_driver_ready(struct tb *tb)
904 904
905static int icm_suspend(struct tb *tb) 905static int icm_suspend(struct tb *tb)
906{ 906{
907 return nhi_mailbox_cmd(tb->nhi, NHI_MAILBOX_SAVE_DEVS, 0); 907 int ret;
908
909 ret = nhi_mailbox_cmd(tb->nhi, NHI_MAILBOX_SAVE_DEVS, 0);
910 if (ret)
911 tb_info(tb, "Ignoring mailbox command error (%d) in %s\n",
912 ret, __func__);
913
914 return 0;
908} 915}
909 916
910/* 917/*
diff --git a/drivers/thunderbolt/switch.c b/drivers/thunderbolt/switch.c
index 40219a706309..e9391bbd4036 100644
--- a/drivers/thunderbolt/switch.c
+++ b/drivers/thunderbolt/switch.c
@@ -30,7 +30,7 @@ static DEFINE_IDA(nvm_ida);
30 30
31struct nvm_auth_status { 31struct nvm_auth_status {
32 struct list_head list; 32 struct list_head list;
33 uuid_be uuid; 33 uuid_t uuid;
34 u32 status; 34 u32 status;
35}; 35};
36 36
@@ -47,7 +47,7 @@ static struct nvm_auth_status *__nvm_get_auth_status(const struct tb_switch *sw)
47 struct nvm_auth_status *st; 47 struct nvm_auth_status *st;
48 48
49 list_for_each_entry(st, &nvm_auth_status_cache, list) { 49 list_for_each_entry(st, &nvm_auth_status_cache, list) {
50 if (!uuid_be_cmp(st->uuid, *sw->uuid)) 50 if (uuid_equal(&st->uuid, sw->uuid))
51 return st; 51 return st;
52 } 52 }
53 53
@@ -1461,7 +1461,7 @@ struct tb_sw_lookup {
1461 struct tb *tb; 1461 struct tb *tb;
1462 u8 link; 1462 u8 link;
1463 u8 depth; 1463 u8 depth;
1464 const uuid_be *uuid; 1464 const uuid_t *uuid;
1465}; 1465};
1466 1466
1467static int tb_switch_match(struct device *dev, void *data) 1467static int tb_switch_match(struct device *dev, void *data)
@@ -1518,7 +1518,7 @@ struct tb_switch *tb_switch_find_by_link_depth(struct tb *tb, u8 link, u8 depth)
1518 * Returned switch has reference count increased so the caller needs to 1518 * Returned switch has reference count increased so the caller needs to
1519 * call tb_switch_put() when done with the switch. 1519 * call tb_switch_put() when done with the switch.
1520 */ 1520 */
1521struct tb_switch *tb_switch_find_by_uuid(struct tb *tb, const uuid_be *uuid) 1521struct tb_switch *tb_switch_find_by_uuid(struct tb *tb, const uuid_t *uuid)
1522{ 1522{
1523 struct tb_sw_lookup lookup; 1523 struct tb_sw_lookup lookup;
1524 struct device *dev; 1524 struct device *dev;
diff --git a/drivers/thunderbolt/tb.h b/drivers/thunderbolt/tb.h
index 3d9f64676e58..e0deee4f1eb0 100644
--- a/drivers/thunderbolt/tb.h
+++ b/drivers/thunderbolt/tb.h
@@ -101,7 +101,7 @@ struct tb_switch {
101 struct tb_dma_port *dma_port; 101 struct tb_dma_port *dma_port;
102 struct tb *tb; 102 struct tb *tb;
103 u64 uid; 103 u64 uid;
104 uuid_be *uuid; 104 uuid_t *uuid;
105 u16 vendor; 105 u16 vendor;
106 u16 device; 106 u16 device;
107 const char *vendor_name; 107 const char *vendor_name;
@@ -407,7 +407,7 @@ void tb_sw_set_unplugged(struct tb_switch *sw);
407struct tb_switch *get_switch_at_route(struct tb_switch *sw, u64 route); 407struct tb_switch *get_switch_at_route(struct tb_switch *sw, u64 route);
408struct tb_switch *tb_switch_find_by_link_depth(struct tb *tb, u8 link, 408struct tb_switch *tb_switch_find_by_link_depth(struct tb *tb, u8 link,
409 u8 depth); 409 u8 depth);
410struct tb_switch *tb_switch_find_by_uuid(struct tb *tb, const uuid_be *uuid); 410struct tb_switch *tb_switch_find_by_uuid(struct tb *tb, const uuid_t *uuid);
411 411
412static inline unsigned int tb_switch_phy_port_from_link(unsigned int link) 412static inline unsigned int tb_switch_phy_port_from_link(unsigned int link)
413{ 413{
diff --git a/drivers/thunderbolt/tb_msgs.h b/drivers/thunderbolt/tb_msgs.h
index 85b6d33c0919..de6441e4a060 100644
--- a/drivers/thunderbolt/tb_msgs.h
+++ b/drivers/thunderbolt/tb_msgs.h
@@ -179,7 +179,7 @@ struct icm_fr_pkg_get_topology_response {
179 179
180struct icm_fr_event_device_connected { 180struct icm_fr_event_device_connected {
181 struct icm_pkg_header hdr; 181 struct icm_pkg_header hdr;
182 uuid_be ep_uuid; 182 uuid_t ep_uuid;
183 u8 connection_key; 183 u8 connection_key;
184 u8 connection_id; 184 u8 connection_id;
185 u16 link_info; 185 u16 link_info;
@@ -193,7 +193,7 @@ struct icm_fr_event_device_connected {
193 193
194struct icm_fr_pkg_approve_device { 194struct icm_fr_pkg_approve_device {
195 struct icm_pkg_header hdr; 195 struct icm_pkg_header hdr;
196 uuid_be ep_uuid; 196 uuid_t ep_uuid;
197 u8 connection_key; 197 u8 connection_key;
198 u8 connection_id; 198 u8 connection_id;
199 u16 reserved; 199 u16 reserved;
@@ -207,7 +207,7 @@ struct icm_fr_event_device_disconnected {
207 207
208struct icm_fr_pkg_add_device_key { 208struct icm_fr_pkg_add_device_key {
209 struct icm_pkg_header hdr; 209 struct icm_pkg_header hdr;
210 uuid_be ep_uuid; 210 uuid_t ep_uuid;
211 u8 connection_key; 211 u8 connection_key;
212 u8 connection_id; 212 u8 connection_id;
213 u16 reserved; 213 u16 reserved;
@@ -216,7 +216,7 @@ struct icm_fr_pkg_add_device_key {
216 216
217struct icm_fr_pkg_add_device_key_response { 217struct icm_fr_pkg_add_device_key_response {
218 struct icm_pkg_header hdr; 218 struct icm_pkg_header hdr;
219 uuid_be ep_uuid; 219 uuid_t ep_uuid;
220 u8 connection_key; 220 u8 connection_key;
221 u8 connection_id; 221 u8 connection_id;
222 u16 reserved; 222 u16 reserved;
@@ -224,7 +224,7 @@ struct icm_fr_pkg_add_device_key_response {
224 224
225struct icm_fr_pkg_challenge_device { 225struct icm_fr_pkg_challenge_device {
226 struct icm_pkg_header hdr; 226 struct icm_pkg_header hdr;
227 uuid_be ep_uuid; 227 uuid_t ep_uuid;
228 u8 connection_key; 228 u8 connection_key;
229 u8 connection_id; 229 u8 connection_id;
230 u16 reserved; 230 u16 reserved;
@@ -233,7 +233,7 @@ struct icm_fr_pkg_challenge_device {
233 233
234struct icm_fr_pkg_challenge_device_response { 234struct icm_fr_pkg_challenge_device_response {
235 struct icm_pkg_header hdr; 235 struct icm_pkg_header hdr;
236 uuid_be ep_uuid; 236 uuid_t ep_uuid;
237 u8 connection_key; 237 u8 connection_key;
238 u8 connection_id; 238 u8 connection_id;
239 u16 reserved; 239 u16 reserved;
diff --git a/drivers/tty/serial/8250/8250_exar.c b/drivers/tty/serial/8250/8250_exar.c
index b5c98e5bf524..c6360fbdf808 100644
--- a/drivers/tty/serial/8250/8250_exar.c
+++ b/drivers/tty/serial/8250/8250_exar.c
@@ -261,7 +261,7 @@ __xr17v35x_register_gpio(struct pci_dev *pcidev,
261} 261}
262 262
263static const struct property_entry exar_gpio_properties[] = { 263static const struct property_entry exar_gpio_properties[] = {
264 PROPERTY_ENTRY_U32("linux,first-pin", 0), 264 PROPERTY_ENTRY_U32("exar,first-pin", 0),
265 PROPERTY_ENTRY_U32("ngpios", 16), 265 PROPERTY_ENTRY_U32("ngpios", 16),
266 { } 266 { }
267}; 267};
@@ -326,7 +326,7 @@ static int iot2040_rs485_config(struct uart_port *port,
326} 326}
327 327
328static const struct property_entry iot2040_gpio_properties[] = { 328static const struct property_entry iot2040_gpio_properties[] = {
329 PROPERTY_ENTRY_U32("linux,first-pin", 10), 329 PROPERTY_ENTRY_U32("exar,first-pin", 10),
330 PROPERTY_ENTRY_U32("ngpios", 1), 330 PROPERTY_ENTRY_U32("ngpios", 1),
331 { } 331 { }
332}; 332};
diff --git a/drivers/vfio/pci/vfio_pci.c b/drivers/vfio/pci/vfio_pci.c
index 063c1ce6fa42..f041b1a6cf66 100644
--- a/drivers/vfio/pci/vfio_pci.c
+++ b/drivers/vfio/pci/vfio_pci.c
@@ -226,7 +226,14 @@ static int vfio_pci_enable(struct vfio_pci_device *vdev)
226 if (ret) 226 if (ret)
227 return ret; 227 return ret;
228 228
229 vdev->reset_works = (pci_reset_function(pdev) == 0); 229 /* If reset fails because of the device lock, fail this path entirely */
230 ret = pci_try_reset_function(pdev);
231 if (ret == -EAGAIN) {
232 pci_disable_device(pdev);
233 return ret;
234 }
235
236 vdev->reset_works = !ret;
230 pci_save_state(pdev); 237 pci_save_state(pdev);
231 vdev->pci_saved_state = pci_store_saved_state(pdev); 238 vdev->pci_saved_state = pci_store_saved_state(pdev);
232 if (!vdev->pci_saved_state) 239 if (!vdev->pci_saved_state)
diff --git a/drivers/vfio/pci/vfio_pci_config.c b/drivers/vfio/pci/vfio_pci_config.c
index 330a57024cbc..5628fe114347 100644
--- a/drivers/vfio/pci/vfio_pci_config.c
+++ b/drivers/vfio/pci/vfio_pci_config.c
@@ -839,7 +839,7 @@ static int vfio_exp_config_write(struct vfio_pci_device *vdev, int pos,
839/* Permissions for PCI Express capability */ 839/* Permissions for PCI Express capability */
840static int __init init_pci_cap_exp_perm(struct perm_bits *perm) 840static int __init init_pci_cap_exp_perm(struct perm_bits *perm)
841{ 841{
842 /* Alloc larger of two possible sizes */ 842 /* Alloc largest of possible sizes */
843 if (alloc_perm_bits(perm, PCI_CAP_EXP_ENDPOINT_SIZEOF_V2)) 843 if (alloc_perm_bits(perm, PCI_CAP_EXP_ENDPOINT_SIZEOF_V2))
844 return -ENOMEM; 844 return -ENOMEM;
845 845
@@ -1243,11 +1243,16 @@ static int vfio_cap_len(struct vfio_pci_device *vdev, u8 cap, u8 pos)
1243 vdev->extended_caps = (dword != 0); 1243 vdev->extended_caps = (dword != 0);
1244 } 1244 }
1245 1245
1246 /* length based on version */ 1246 /* length based on version and type */
1247 if ((pcie_caps_reg(pdev) & PCI_EXP_FLAGS_VERS) == 1) 1247 if ((pcie_caps_reg(pdev) & PCI_EXP_FLAGS_VERS) == 1) {
1248 if (pci_pcie_type(pdev) == PCI_EXP_TYPE_RC_END)
1249 return 0xc; /* "All Devices" only, no link */
1248 return PCI_CAP_EXP_ENDPOINT_SIZEOF_V1; 1250 return PCI_CAP_EXP_ENDPOINT_SIZEOF_V1;
1249 else 1251 } else {
1252 if (pci_pcie_type(pdev) == PCI_EXP_TYPE_RC_END)
1253 return 0x2c; /* No link */
1250 return PCI_CAP_EXP_ENDPOINT_SIZEOF_V2; 1254 return PCI_CAP_EXP_ENDPOINT_SIZEOF_V2;
1255 }
1251 case PCI_CAP_ID_HT: 1256 case PCI_CAP_ID_HT:
1252 ret = pci_read_config_byte(pdev, pos + 3, &byte); 1257 ret = pci_read_config_byte(pdev, pos + 3, &byte);
1253 if (ret) 1258 if (ret)
diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
index e4613a3c362d..9cb3f722dce1 100644
--- a/drivers/vhost/vhost.c
+++ b/drivers/vhost/vhost.c
@@ -308,7 +308,6 @@ static void vhost_vq_reset(struct vhost_dev *dev,
308 vq->avail = NULL; 308 vq->avail = NULL;
309 vq->used = NULL; 309 vq->used = NULL;
310 vq->last_avail_idx = 0; 310 vq->last_avail_idx = 0;
311 vq->last_used_event = 0;
312 vq->avail_idx = 0; 311 vq->avail_idx = 0;
313 vq->last_used_idx = 0; 312 vq->last_used_idx = 0;
314 vq->signalled_used = 0; 313 vq->signalled_used = 0;
@@ -1402,7 +1401,7 @@ long vhost_vring_ioctl(struct vhost_dev *d, int ioctl, void __user *argp)
1402 r = -EINVAL; 1401 r = -EINVAL;
1403 break; 1402 break;
1404 } 1403 }
1405 vq->last_avail_idx = vq->last_used_event = s.num; 1404 vq->last_avail_idx = s.num;
1406 /* Forget the cached index value. */ 1405 /* Forget the cached index value. */
1407 vq->avail_idx = vq->last_avail_idx; 1406 vq->avail_idx = vq->last_avail_idx;
1408 break; 1407 break;
@@ -2241,6 +2240,10 @@ static bool vhost_notify(struct vhost_dev *dev, struct vhost_virtqueue *vq)
2241 __u16 old, new; 2240 __u16 old, new;
2242 __virtio16 event; 2241 __virtio16 event;
2243 bool v; 2242 bool v;
2243 /* Flush out used index updates. This is paired
2244 * with the barrier that the Guest executes when enabling
2245 * interrupts. */
2246 smp_mb();
2244 2247
2245 if (vhost_has_feature(vq, VIRTIO_F_NOTIFY_ON_EMPTY) && 2248 if (vhost_has_feature(vq, VIRTIO_F_NOTIFY_ON_EMPTY) &&
2246 unlikely(vq->avail_idx == vq->last_avail_idx)) 2249 unlikely(vq->avail_idx == vq->last_avail_idx))
@@ -2248,10 +2251,6 @@ static bool vhost_notify(struct vhost_dev *dev, struct vhost_virtqueue *vq)
2248 2251
2249 if (!vhost_has_feature(vq, VIRTIO_RING_F_EVENT_IDX)) { 2252 if (!vhost_has_feature(vq, VIRTIO_RING_F_EVENT_IDX)) {
2250 __virtio16 flags; 2253 __virtio16 flags;
2251 /* Flush out used index updates. This is paired
2252 * with the barrier that the Guest executes when enabling
2253 * interrupts. */
2254 smp_mb();
2255 if (vhost_get_avail(vq, flags, &vq->avail->flags)) { 2254 if (vhost_get_avail(vq, flags, &vq->avail->flags)) {
2256 vq_err(vq, "Failed to get flags"); 2255 vq_err(vq, "Failed to get flags");
2257 return true; 2256 return true;
@@ -2266,26 +2265,11 @@ static bool vhost_notify(struct vhost_dev *dev, struct vhost_virtqueue *vq)
2266 if (unlikely(!v)) 2265 if (unlikely(!v))
2267 return true; 2266 return true;
2268 2267
2269 /* We're sure if the following conditions are met, there's no
2270 * need to notify guest:
2271 * 1) cached used event is ahead of new
2272 * 2) old to new updating does not cross cached used event. */
2273 if (vring_need_event(vq->last_used_event, new + vq->num, new) &&
2274 !vring_need_event(vq->last_used_event, new, old))
2275 return false;
2276
2277 /* Flush out used index updates. This is paired
2278 * with the barrier that the Guest executes when enabling
2279 * interrupts. */
2280 smp_mb();
2281
2282 if (vhost_get_avail(vq, event, vhost_used_event(vq))) { 2268 if (vhost_get_avail(vq, event, vhost_used_event(vq))) {
2283 vq_err(vq, "Failed to get used event idx"); 2269 vq_err(vq, "Failed to get used event idx");
2284 return true; 2270 return true;
2285 } 2271 }
2286 vq->last_used_event = vhost16_to_cpu(vq, event); 2272 return vring_need_event(vhost16_to_cpu(vq, event), new, old);
2287
2288 return vring_need_event(vq->last_used_event, new, old);
2289} 2273}
2290 2274
2291/* This actually signals the guest, using eventfd. */ 2275/* This actually signals the guest, using eventfd. */
diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h
index f72095868b93..bb7c29b8b9fc 100644
--- a/drivers/vhost/vhost.h
+++ b/drivers/vhost/vhost.h
@@ -115,9 +115,6 @@ struct vhost_virtqueue {
115 /* Last index we used. */ 115 /* Last index we used. */
116 u16 last_used_idx; 116 u16 last_used_idx;
117 117
118 /* Last used evet we've seen */
119 u16 last_used_event;
120
121 /* Used flags */ 118 /* Used flags */
122 u16 used_flags; 119 u16 used_flags;
123 120
diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
index 22caf808bfab..f0b3a0b9d42f 100644
--- a/drivers/virtio/virtio_balloon.c
+++ b/drivers/virtio/virtio_balloon.c
@@ -104,12 +104,6 @@ static u32 page_to_balloon_pfn(struct page *page)
104 return pfn * VIRTIO_BALLOON_PAGES_PER_PAGE; 104 return pfn * VIRTIO_BALLOON_PAGES_PER_PAGE;
105} 105}
106 106
107static struct page *balloon_pfn_to_page(u32 pfn)
108{
109 BUG_ON(pfn % VIRTIO_BALLOON_PAGES_PER_PAGE);
110 return pfn_to_page(pfn / VIRTIO_BALLOON_PAGES_PER_PAGE);
111}
112
113static void balloon_ack(struct virtqueue *vq) 107static void balloon_ack(struct virtqueue *vq)
114{ 108{
115 struct virtio_balloon *vb = vq->vdev->priv; 109 struct virtio_balloon *vb = vq->vdev->priv;
@@ -138,8 +132,10 @@ static void set_page_pfns(struct virtio_balloon *vb,
138{ 132{
139 unsigned int i; 133 unsigned int i;
140 134
141 /* Set balloon pfns pointing at this page. 135 /*
142 * Note that the first pfn points at start of the page. */ 136 * Set balloon pfns pointing at this page.
137 * Note that the first pfn points at start of the page.
138 */
143 for (i = 0; i < VIRTIO_BALLOON_PAGES_PER_PAGE; i++) 139 for (i = 0; i < VIRTIO_BALLOON_PAGES_PER_PAGE; i++)
144 pfns[i] = cpu_to_virtio32(vb->vdev, 140 pfns[i] = cpu_to_virtio32(vb->vdev,
145 page_to_balloon_pfn(page) + i); 141 page_to_balloon_pfn(page) + i);
@@ -182,18 +178,16 @@ static unsigned fill_balloon(struct virtio_balloon *vb, size_t num)
182 return num_allocated_pages; 178 return num_allocated_pages;
183} 179}
184 180
185static void release_pages_balloon(struct virtio_balloon *vb) 181static void release_pages_balloon(struct virtio_balloon *vb,
182 struct list_head *pages)
186{ 183{
187 unsigned int i; 184 struct page *page, *next;
188 struct page *page;
189 185
190 /* Find pfns pointing at start of each page, get pages and free them. */ 186 list_for_each_entry_safe(page, next, pages, lru) {
191 for (i = 0; i < vb->num_pfns; i += VIRTIO_BALLOON_PAGES_PER_PAGE) {
192 page = balloon_pfn_to_page(virtio32_to_cpu(vb->vdev,
193 vb->pfns[i]));
194 if (!virtio_has_feature(vb->vdev, 187 if (!virtio_has_feature(vb->vdev,
195 VIRTIO_BALLOON_F_DEFLATE_ON_OOM)) 188 VIRTIO_BALLOON_F_DEFLATE_ON_OOM))
196 adjust_managed_page_count(page, 1); 189 adjust_managed_page_count(page, 1);
190 list_del(&page->lru);
197 put_page(page); /* balloon reference */ 191 put_page(page); /* balloon reference */
198 } 192 }
199} 193}
@@ -203,6 +197,7 @@ static unsigned leak_balloon(struct virtio_balloon *vb, size_t num)
203 unsigned num_freed_pages; 197 unsigned num_freed_pages;
204 struct page *page; 198 struct page *page;
205 struct balloon_dev_info *vb_dev_info = &vb->vb_dev_info; 199 struct balloon_dev_info *vb_dev_info = &vb->vb_dev_info;
200 LIST_HEAD(pages);
206 201
207 /* We can only do one array worth at a time. */ 202 /* We can only do one array worth at a time. */
208 num = min(num, ARRAY_SIZE(vb->pfns)); 203 num = min(num, ARRAY_SIZE(vb->pfns));
@@ -216,6 +211,7 @@ static unsigned leak_balloon(struct virtio_balloon *vb, size_t num)
216 if (!page) 211 if (!page)
217 break; 212 break;
218 set_page_pfns(vb, vb->pfns + vb->num_pfns, page); 213 set_page_pfns(vb, vb->pfns + vb->num_pfns, page);
214 list_add(&page->lru, &pages);
219 vb->num_pages -= VIRTIO_BALLOON_PAGES_PER_PAGE; 215 vb->num_pages -= VIRTIO_BALLOON_PAGES_PER_PAGE;
220 } 216 }
221 217
@@ -227,7 +223,7 @@ static unsigned leak_balloon(struct virtio_balloon *vb, size_t num)
227 */ 223 */
228 if (vb->num_pfns != 0) 224 if (vb->num_pfns != 0)
229 tell_host(vb, vb->deflate_vq); 225 tell_host(vb, vb->deflate_vq);
230 release_pages_balloon(vb); 226 release_pages_balloon(vb, &pages);
231 mutex_unlock(&vb->balloon_lock); 227 mutex_unlock(&vb->balloon_lock);
232 return num_freed_pages; 228 return num_freed_pages;
233} 229}
diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
index b241bfa529ce..bae1f5d36c26 100644
--- a/drivers/xen/events/events_base.c
+++ b/drivers/xen/events/events_base.c
@@ -343,14 +343,6 @@ static void bind_evtchn_to_cpu(unsigned int chn, unsigned int cpu)
343 info->cpu = cpu; 343 info->cpu = cpu;
344} 344}
345 345
346static void xen_evtchn_mask_all(void)
347{
348 unsigned int evtchn;
349
350 for (evtchn = 0; evtchn < xen_evtchn_nr_channels(); evtchn++)
351 mask_evtchn(evtchn);
352}
353
354/** 346/**
355 * notify_remote_via_irq - send event to remote end of event channel via irq 347 * notify_remote_via_irq - send event to remote end of event channel via irq
356 * @irq: irq of event channel to send event to 348 * @irq: irq of event channel to send event to
@@ -1573,7 +1565,6 @@ void xen_irq_resume(void)
1573 struct irq_info *info; 1565 struct irq_info *info;
1574 1566
1575 /* New event-channel space is not 'live' yet. */ 1567 /* New event-channel space is not 'live' yet. */
1576 xen_evtchn_mask_all();
1577 xen_evtchn_resume(); 1568 xen_evtchn_resume();
1578 1569
1579 /* No IRQ <-> event-channel mappings. */ 1570 /* No IRQ <-> event-channel mappings. */
@@ -1681,6 +1672,7 @@ module_param(fifo_events, bool, 0);
1681void __init xen_init_IRQ(void) 1672void __init xen_init_IRQ(void)
1682{ 1673{
1683 int ret = -EINVAL; 1674 int ret = -EINVAL;
1675 unsigned int evtchn;
1684 1676
1685 if (fifo_events) 1677 if (fifo_events)
1686 ret = xen_evtchn_fifo_init(); 1678 ret = xen_evtchn_fifo_init();
@@ -1692,7 +1684,8 @@ void __init xen_init_IRQ(void)
1692 BUG_ON(!evtchn_to_irq); 1684 BUG_ON(!evtchn_to_irq);
1693 1685
1694 /* No event channels are 'live' right now. */ 1686 /* No event channels are 'live' right now. */
1695 xen_evtchn_mask_all(); 1687 for (evtchn = 0; evtchn < xen_evtchn_nr_channels(); evtchn++)
1688 mask_evtchn(evtchn);
1696 1689
1697 pirq_needs_eoi = pirq_needs_eoi_flag; 1690 pirq_needs_eoi = pirq_needs_eoi_flag;
1698 1691
diff --git a/drivers/xen/xen-selfballoon.c b/drivers/xen/xen-selfballoon.c
index 66620713242a..a67e955cacd1 100644
--- a/drivers/xen/xen-selfballoon.c
+++ b/drivers/xen/xen-selfballoon.c
@@ -151,8 +151,8 @@ static unsigned long frontswap_inertia_counter;
151static void frontswap_selfshrink(void) 151static void frontswap_selfshrink(void)
152{ 152{
153 static unsigned long cur_frontswap_pages; 153 static unsigned long cur_frontswap_pages;
154 static unsigned long last_frontswap_pages; 154 unsigned long last_frontswap_pages;
155 static unsigned long tgt_frontswap_pages; 155 unsigned long tgt_frontswap_pages;
156 156
157 last_frontswap_pages = cur_frontswap_pages; 157 last_frontswap_pages = cur_frontswap_pages;
158 cur_frontswap_pages = frontswap_curr_pages(); 158 cur_frontswap_pages = frontswap_curr_pages();
diff --git a/drivers/xen/xenfs/super.c b/drivers/xen/xenfs/super.c
index 967f069385d0..71ddfb4cf61c 100644
--- a/drivers/xen/xenfs/super.c
+++ b/drivers/xen/xenfs/super.c
@@ -87,7 +87,6 @@ static int __init xenfs_init(void)
87 if (xen_domain()) 87 if (xen_domain())
88 return register_filesystem(&xenfs_type); 88 return register_filesystem(&xenfs_type);
89 89
90 pr_info("not registering filesystem on non-xen platform\n");
91 return 0; 90 return 0;
92} 91}
93 92
diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index 375f8c728d91..e3b0b4196d3d 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -4825,10 +4825,6 @@ skip_async:
4825 else 4825 else
4826 flush = BTRFS_RESERVE_NO_FLUSH; 4826 flush = BTRFS_RESERVE_NO_FLUSH;
4827 spin_lock(&space_info->lock); 4827 spin_lock(&space_info->lock);
4828 if (can_overcommit(fs_info, space_info, orig, flush, false)) {
4829 spin_unlock(&space_info->lock);
4830 break;
4831 }
4832 if (list_empty(&space_info->tickets) && 4828 if (list_empty(&space_info->tickets) &&
4833 list_empty(&space_info->priority_tickets)) { 4829 list_empty(&space_info->priority_tickets)) {
4834 spin_unlock(&space_info->lock); 4830 spin_unlock(&space_info->lock);
@@ -7589,6 +7585,10 @@ search:
7589 u64 offset; 7585 u64 offset;
7590 int cached; 7586 int cached;
7591 7587
7588 /* If the block group is read-only, we can skip it entirely. */
7589 if (unlikely(block_group->ro))
7590 continue;
7591
7592 btrfs_grab_block_group(block_group, delalloc); 7592 btrfs_grab_block_group(block_group, delalloc);
7593 search_start = block_group->key.objectid; 7593 search_start = block_group->key.objectid;
7594 7594
@@ -7624,8 +7624,6 @@ have_block_group:
7624 7624
7625 if (unlikely(block_group->cached == BTRFS_CACHE_ERROR)) 7625 if (unlikely(block_group->cached == BTRFS_CACHE_ERROR))
7626 goto loop; 7626 goto loop;
7627 if (unlikely(block_group->ro))
7628 goto loop;
7629 7627
7630 /* 7628 /*
7631 * Ok we want to try and use the cluster allocator, so 7629 * Ok we want to try and use the cluster allocator, so
@@ -7839,6 +7837,7 @@ loop:
7839 failed_alloc = false; 7837 failed_alloc = false;
7840 BUG_ON(index != get_block_group_index(block_group)); 7838 BUG_ON(index != get_block_group_index(block_group));
7841 btrfs_release_block_group(block_group, delalloc); 7839 btrfs_release_block_group(block_group, delalloc);
7840 cond_resched();
7842 } 7841 }
7843 up_read(&space_info->groups_sem); 7842 up_read(&space_info->groups_sem);
7844 7843
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
index f20ef211a73d..3a11ae63676e 100644
--- a/fs/btrfs/tree-log.c
+++ b/fs/btrfs/tree-log.c
@@ -2153,8 +2153,7 @@ process_leaf:
2153 u32 this_len = sizeof(*di) + name_len + data_len; 2153 u32 this_len = sizeof(*di) + name_len + data_len;
2154 char *name; 2154 char *name;
2155 2155
2156 ret = verify_dir_item(fs_info, path->nodes[0], 2156 ret = verify_dir_item(fs_info, path->nodes[0], i, di);
2157 path->slots[0], di);
2158 if (ret) { 2157 if (ret) {
2159 ret = -EIO; 2158 ret = -EIO;
2160 goto out; 2159 goto out;
diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
index 5eb7217738ed..e8b9a269fdde 100644
--- a/fs/btrfs/volumes.c
+++ b/fs/btrfs/volumes.c
@@ -2702,7 +2702,7 @@ int btrfs_grow_device(struct btrfs_trans_handle *trans,
2702 2702
2703 mutex_lock(&fs_info->chunk_mutex); 2703 mutex_lock(&fs_info->chunk_mutex);
2704 old_total = btrfs_super_total_bytes(super_copy); 2704 old_total = btrfs_super_total_bytes(super_copy);
2705 diff = new_size - device->total_bytes; 2705 diff = round_down(new_size - device->total_bytes, fs_info->sectorsize);
2706 2706
2707 if (new_size <= device->total_bytes || 2707 if (new_size <= device->total_bytes ||
2708 device->is_tgtdev_for_dev_replace) { 2708 device->is_tgtdev_for_dev_replace) {
@@ -4406,7 +4406,7 @@ int btrfs_shrink_device(struct btrfs_device *device, u64 new_size)
4406 u64 diff; 4406 u64 diff;
4407 4407
4408 new_size = round_down(new_size, fs_info->sectorsize); 4408 new_size = round_down(new_size, fs_info->sectorsize);
4409 diff = old_size - new_size; 4409 diff = round_down(old_size - new_size, fs_info->sectorsize);
4410 4410
4411 if (device->is_tgtdev_for_dev_replace) 4411 if (device->is_tgtdev_for_dev_replace)
4412 return -EINVAL; 4412 return -EINVAL;
diff --git a/fs/ext4/acl.c b/fs/ext4/acl.c
index 09441ae07a5b..46ff2229ff5e 100644
--- a/fs/ext4/acl.c
+++ b/fs/ext4/acl.c
@@ -193,13 +193,6 @@ __ext4_set_acl(handle_t *handle, struct inode *inode, int type,
193 switch (type) { 193 switch (type) {
194 case ACL_TYPE_ACCESS: 194 case ACL_TYPE_ACCESS:
195 name_index = EXT4_XATTR_INDEX_POSIX_ACL_ACCESS; 195 name_index = EXT4_XATTR_INDEX_POSIX_ACL_ACCESS;
196 if (acl) {
197 error = posix_acl_update_mode(inode, &inode->i_mode, &acl);
198 if (error)
199 return error;
200 inode->i_ctime = current_time(inode);
201 ext4_mark_inode_dirty(handle, inode);
202 }
203 break; 196 break;
204 197
205 case ACL_TYPE_DEFAULT: 198 case ACL_TYPE_DEFAULT:
@@ -221,8 +214,9 @@ __ext4_set_acl(handle_t *handle, struct inode *inode, int type,
221 value, size, xattr_flags); 214 value, size, xattr_flags);
222 215
223 kfree(value); 216 kfree(value);
224 if (!error) 217 if (!error) {
225 set_cached_acl(inode, type, acl); 218 set_cached_acl(inode, type, acl);
219 }
226 220
227 return error; 221 return error;
228} 222}
@@ -233,6 +227,8 @@ ext4_set_acl(struct inode *inode, struct posix_acl *acl, int type)
233 handle_t *handle; 227 handle_t *handle;
234 int error, credits, retries = 0; 228 int error, credits, retries = 0;
235 size_t acl_size = acl ? ext4_acl_size(acl->a_count) : 0; 229 size_t acl_size = acl ? ext4_acl_size(acl->a_count) : 0;
230 umode_t mode = inode->i_mode;
231 int update_mode = 0;
236 232
237 error = dquot_initialize(inode); 233 error = dquot_initialize(inode);
238 if (error) 234 if (error)
@@ -247,7 +243,20 @@ retry:
247 if (IS_ERR(handle)) 243 if (IS_ERR(handle))
248 return PTR_ERR(handle); 244 return PTR_ERR(handle);
249 245
246 if ((type == ACL_TYPE_ACCESS) && acl) {
247 error = posix_acl_update_mode(inode, &mode, &acl);
248 if (error)
249 goto out_stop;
250 update_mode = 1;
251 }
252
250 error = __ext4_set_acl(handle, inode, type, acl, 0 /* xattr_flags */); 253 error = __ext4_set_acl(handle, inode, type, acl, 0 /* xattr_flags */);
254 if (!error && update_mode) {
255 inode->i_mode = mode;
256 inode->i_ctime = current_time(inode);
257 ext4_mark_inode_dirty(handle, inode);
258 }
259out_stop:
251 ext4_journal_stop(handle); 260 ext4_journal_stop(handle);
252 if (error == -ENOSPC && ext4_should_retry_alloc(inode->i_sb, &retries)) 261 if (error == -ENOSPC && ext4_should_retry_alloc(inode->i_sb, &retries))
253 goto retry; 262 goto retry;
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
index 9ebde0cd632e..a2bb7d2870e4 100644
--- a/fs/ext4/ext4.h
+++ b/fs/ext4/ext4.h
@@ -961,7 +961,7 @@ struct ext4_inode_info {
961 /* 961 /*
962 * i_block_group is the number of the block group which contains 962 * i_block_group is the number of the block group which contains
963 * this file's inode. Constant across the lifetime of the inode, 963 * this file's inode. Constant across the lifetime of the inode,
964 * it is ued for making block allocation decisions - we try to 964 * it is used for making block allocation decisions - we try to
965 * place a file's data blocks near its inode block, and new inodes 965 * place a file's data blocks near its inode block, and new inodes
966 * near to their parent directory's inode. 966 * near to their parent directory's inode.
967 */ 967 */
@@ -1049,10 +1049,8 @@ struct ext4_inode_info {
1049 ext4_group_t i_last_alloc_group; 1049 ext4_group_t i_last_alloc_group;
1050 1050
1051 /* allocation reservation info for delalloc */ 1051 /* allocation reservation info for delalloc */
1052 /* In case of bigalloc, these refer to clusters rather than blocks */ 1052 /* In case of bigalloc, this refer to clusters rather than blocks */
1053 unsigned int i_reserved_data_blocks; 1053 unsigned int i_reserved_data_blocks;
1054 unsigned int i_reserved_meta_blocks;
1055 unsigned int i_allocated_meta_blocks;
1056 ext4_lblk_t i_da_metadata_calc_last_lblock; 1054 ext4_lblk_t i_da_metadata_calc_last_lblock;
1057 int i_da_metadata_calc_len; 1055 int i_da_metadata_calc_len;
1058 1056
@@ -2022,7 +2020,8 @@ static inline __le16 ext4_rec_len_to_disk(unsigned len, unsigned blocksize)
2022 2020
2023#define is_dx(dir) (ext4_has_feature_dir_index((dir)->i_sb) && \ 2021#define is_dx(dir) (ext4_has_feature_dir_index((dir)->i_sb) && \
2024 ext4_test_inode_flag((dir), EXT4_INODE_INDEX)) 2022 ext4_test_inode_flag((dir), EXT4_INODE_INDEX))
2025#define EXT4_DIR_LINK_MAX(dir) (!is_dx(dir) && (dir)->i_nlink >= EXT4_LINK_MAX) 2023#define EXT4_DIR_LINK_MAX(dir) unlikely((dir)->i_nlink >= EXT4_LINK_MAX && \
2024 !(ext4_has_feature_dir_nlink((dir)->i_sb) && is_dx(dir)))
2026#define EXT4_DIR_LINK_EMPTY(dir) ((dir)->i_nlink == 2 || (dir)->i_nlink == 1) 2025#define EXT4_DIR_LINK_EMPTY(dir) ((dir)->i_nlink == 2 || (dir)->i_nlink == 1)
2027 2026
2028/* Legal values for the dx_root hash_version field: */ 2027/* Legal values for the dx_root hash_version field: */
@@ -2462,6 +2461,8 @@ extern void ext4_process_freed_data(struct super_block *sb, tid_t commit_tid);
2462int ext4_inode_is_fast_symlink(struct inode *inode); 2461int ext4_inode_is_fast_symlink(struct inode *inode);
2463struct buffer_head *ext4_getblk(handle_t *, struct inode *, ext4_lblk_t, int); 2462struct buffer_head *ext4_getblk(handle_t *, struct inode *, ext4_lblk_t, int);
2464struct buffer_head *ext4_bread(handle_t *, struct inode *, ext4_lblk_t, int); 2463struct buffer_head *ext4_bread(handle_t *, struct inode *, ext4_lblk_t, int);
2464int ext4_bread_batch(struct inode *inode, ext4_lblk_t block, int bh_count,
2465 bool wait, struct buffer_head **bhs);
2465int ext4_get_block_unwritten(struct inode *inode, sector_t iblock, 2466int ext4_get_block_unwritten(struct inode *inode, sector_t iblock,
2466 struct buffer_head *bh_result, int create); 2467 struct buffer_head *bh_result, int create);
2467int ext4_get_block(struct inode *inode, sector_t iblock, 2468int ext4_get_block(struct inode *inode, sector_t iblock,
@@ -3074,7 +3075,7 @@ extern int ext4_handle_dirty_dirent_node(handle_t *handle,
3074 struct inode *inode, 3075 struct inode *inode,
3075 struct buffer_head *bh); 3076 struct buffer_head *bh);
3076#define S_SHIFT 12 3077#define S_SHIFT 12
3077static const unsigned char ext4_type_by_mode[S_IFMT >> S_SHIFT] = { 3078static const unsigned char ext4_type_by_mode[(S_IFMT >> S_SHIFT) + 1] = {
3078 [S_IFREG >> S_SHIFT] = EXT4_FT_REG_FILE, 3079 [S_IFREG >> S_SHIFT] = EXT4_FT_REG_FILE,
3079 [S_IFDIR >> S_SHIFT] = EXT4_FT_DIR, 3080 [S_IFDIR >> S_SHIFT] = EXT4_FT_DIR,
3080 [S_IFCHR >> S_SHIFT] = EXT4_FT_CHRDEV, 3081 [S_IFCHR >> S_SHIFT] = EXT4_FT_CHRDEV,
diff --git a/fs/ext4/ext4_jbd2.h b/fs/ext4/ext4_jbd2.h
index dabad1bc8617..48143e32411c 100644
--- a/fs/ext4/ext4_jbd2.h
+++ b/fs/ext4/ext4_jbd2.h
@@ -227,6 +227,9 @@ int ext4_reserve_inode_write(handle_t *handle, struct inode *inode,
227 227
228int ext4_mark_inode_dirty(handle_t *handle, struct inode *inode); 228int ext4_mark_inode_dirty(handle_t *handle, struct inode *inode);
229 229
230int ext4_expand_extra_isize(struct inode *inode,
231 unsigned int new_extra_isize,
232 struct ext4_iloc *iloc);
230/* 233/*
231 * Wrapper functions with which ext4 calls into JBD. 234 * Wrapper functions with which ext4 calls into JBD.
232 */ 235 */
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
index e0a8425ff74d..97f0fd06728d 100644
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -4652,7 +4652,7 @@ retry:
4652 4652
4653static int ext4_alloc_file_blocks(struct file *file, ext4_lblk_t offset, 4653static int ext4_alloc_file_blocks(struct file *file, ext4_lblk_t offset,
4654 ext4_lblk_t len, loff_t new_size, 4654 ext4_lblk_t len, loff_t new_size,
4655 int flags, int mode) 4655 int flags)
4656{ 4656{
4657 struct inode *inode = file_inode(file); 4657 struct inode *inode = file_inode(file);
4658 handle_t *handle; 4658 handle_t *handle;
@@ -4815,7 +4815,7 @@ static long ext4_zero_range(struct file *file, loff_t offset,
4815 round_down(offset, 1 << blkbits) >> blkbits, 4815 round_down(offset, 1 << blkbits) >> blkbits,
4816 (round_up((offset + len), 1 << blkbits) - 4816 (round_up((offset + len), 1 << blkbits) -
4817 round_down(offset, 1 << blkbits)) >> blkbits, 4817 round_down(offset, 1 << blkbits)) >> blkbits,
4818 new_size, flags, mode); 4818 new_size, flags);
4819 if (ret) 4819 if (ret)
4820 goto out_dio; 4820 goto out_dio;
4821 4821
@@ -4841,7 +4841,7 @@ static long ext4_zero_range(struct file *file, loff_t offset,
4841 inode->i_mtime = inode->i_ctime = current_time(inode); 4841 inode->i_mtime = inode->i_ctime = current_time(inode);
4842 4842
4843 ret = ext4_alloc_file_blocks(file, lblk, max_blocks, new_size, 4843 ret = ext4_alloc_file_blocks(file, lblk, max_blocks, new_size,
4844 flags, mode); 4844 flags);
4845 up_write(&EXT4_I(inode)->i_mmap_sem); 4845 up_write(&EXT4_I(inode)->i_mmap_sem);
4846 if (ret) 4846 if (ret)
4847 goto out_dio; 4847 goto out_dio;
@@ -4976,8 +4976,7 @@ long ext4_fallocate(struct file *file, int mode, loff_t offset, loff_t len)
4976 ext4_inode_block_unlocked_dio(inode); 4976 ext4_inode_block_unlocked_dio(inode);
4977 inode_dio_wait(inode); 4977 inode_dio_wait(inode);
4978 4978
4979 ret = ext4_alloc_file_blocks(file, lblk, max_blocks, new_size, 4979 ret = ext4_alloc_file_blocks(file, lblk, max_blocks, new_size, flags);
4980 flags, mode);
4981 ext4_inode_resume_unlocked_dio(inode); 4980 ext4_inode_resume_unlocked_dio(inode);
4982 if (ret) 4981 if (ret)
4983 goto out; 4982 goto out;
@@ -5837,7 +5836,7 @@ ext4_swap_extents(handle_t *handle, struct inode *inode1,
5837 if (e1_blk > lblk1) 5836 if (e1_blk > lblk1)
5838 next1 = e1_blk; 5837 next1 = e1_blk;
5839 if (e2_blk > lblk2) 5838 if (e2_blk > lblk2)
5840 next2 = e1_blk; 5839 next2 = e2_blk;
5841 /* Do we have something to swap */ 5840 /* Do we have something to swap */
5842 if (next1 == EXT_MAX_BLOCKS || next2 == EXT_MAX_BLOCKS) 5841 if (next1 == EXT_MAX_BLOCKS || next2 == EXT_MAX_BLOCKS)
5843 goto finish; 5842 goto finish;
diff --git a/fs/ext4/file.c b/fs/ext4/file.c
index 58294c9a7e1d..0d7cf0cc9b87 100644
--- a/fs/ext4/file.c
+++ b/fs/ext4/file.c
@@ -537,6 +537,8 @@ static int ext4_find_unwritten_pgoff(struct inode *inode,
537 lastoff = page_offset(page); 537 lastoff = page_offset(page);
538 bh = head = page_buffers(page); 538 bh = head = page_buffers(page);
539 do { 539 do {
540 if (lastoff + bh->b_size <= startoff)
541 goto next;
540 if (buffer_uptodate(bh) || 542 if (buffer_uptodate(bh) ||
541 buffer_unwritten(bh)) { 543 buffer_unwritten(bh)) {
542 if (whence == SEEK_DATA) 544 if (whence == SEEK_DATA)
@@ -551,6 +553,7 @@ static int ext4_find_unwritten_pgoff(struct inode *inode,
551 unlock_page(page); 553 unlock_page(page);
552 goto out; 554 goto out;
553 } 555 }
556next:
554 lastoff += bh->b_size; 557 lastoff += bh->b_size;
555 bh = bh->b_this_page; 558 bh = bh->b_this_page;
556 } while (bh != head); 559 } while (bh != head);
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index 3c600f02673f..c774bdc22759 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -892,7 +892,7 @@ static int ext4_dio_get_block_unwritten_async(struct inode *inode,
892/* 892/*
893 * Get block function for non-AIO DIO writes when we create unwritten extent if 893 * Get block function for non-AIO DIO writes when we create unwritten extent if
894 * blocks are not allocated yet. The extent will be converted to written 894 * blocks are not allocated yet. The extent will be converted to written
895 * after IO is complete from ext4_ext_direct_IO() function. 895 * after IO is complete by ext4_direct_IO_write().
896 */ 896 */
897static int ext4_dio_get_block_unwritten_sync(struct inode *inode, 897static int ext4_dio_get_block_unwritten_sync(struct inode *inode,
898 sector_t iblock, struct buffer_head *bh_result, int create) 898 sector_t iblock, struct buffer_head *bh_result, int create)
@@ -907,7 +907,7 @@ static int ext4_dio_get_block_unwritten_sync(struct inode *inode,
907 907
908 /* 908 /*
909 * Mark inode as having pending DIO writes to unwritten extents. 909 * Mark inode as having pending DIO writes to unwritten extents.
910 * ext4_ext_direct_IO() checks this flag and converts extents to 910 * ext4_direct_IO_write() checks this flag and converts extents to
911 * written. 911 * written.
912 */ 912 */
913 if (!ret && buffer_unwritten(bh_result)) 913 if (!ret && buffer_unwritten(bh_result))
@@ -1015,6 +1015,50 @@ struct buffer_head *ext4_bread(handle_t *handle, struct inode *inode,
1015 return ERR_PTR(-EIO); 1015 return ERR_PTR(-EIO);
1016} 1016}
1017 1017
1018/* Read a contiguous batch of blocks. */
1019int ext4_bread_batch(struct inode *inode, ext4_lblk_t block, int bh_count,
1020 bool wait, struct buffer_head **bhs)
1021{
1022 int i, err;
1023
1024 for (i = 0; i < bh_count; i++) {
1025 bhs[i] = ext4_getblk(NULL, inode, block + i, 0 /* map_flags */);
1026 if (IS_ERR(bhs[i])) {
1027 err = PTR_ERR(bhs[i]);
1028 bh_count = i;
1029 goto out_brelse;
1030 }
1031 }
1032
1033 for (i = 0; i < bh_count; i++)
1034 /* Note that NULL bhs[i] is valid because of holes. */
1035 if (bhs[i] && !buffer_uptodate(bhs[i]))
1036 ll_rw_block(REQ_OP_READ, REQ_META | REQ_PRIO, 1,
1037 &bhs[i]);
1038
1039 if (!wait)
1040 return 0;
1041
1042 for (i = 0; i < bh_count; i++)
1043 if (bhs[i])
1044 wait_on_buffer(bhs[i]);
1045
1046 for (i = 0; i < bh_count; i++) {
1047 if (bhs[i] && !buffer_uptodate(bhs[i])) {
1048 err = -EIO;
1049 goto out_brelse;
1050 }
1051 }
1052 return 0;
1053
1054out_brelse:
1055 for (i = 0; i < bh_count; i++) {
1056 brelse(bhs[i]);
1057 bhs[i] = NULL;
1058 }
1059 return err;
1060}
1061
1018int ext4_walk_page_buffers(handle_t *handle, 1062int ext4_walk_page_buffers(handle_t *handle,
1019 struct buffer_head *head, 1063 struct buffer_head *head,
1020 unsigned from, 1064 unsigned from,
@@ -5658,22 +5702,16 @@ ext4_reserve_inode_write(handle_t *handle, struct inode *inode,
5658 return err; 5702 return err;
5659} 5703}
5660 5704
5661/* 5705static int __ext4_expand_extra_isize(struct inode *inode,
5662 * Expand an inode by new_extra_isize bytes. 5706 unsigned int new_extra_isize,
5663 * Returns 0 on success or negative error number on failure. 5707 struct ext4_iloc *iloc,
5664 */ 5708 handle_t *handle, int *no_expand)
5665static int ext4_expand_extra_isize(struct inode *inode,
5666 unsigned int new_extra_isize,
5667 struct ext4_iloc iloc,
5668 handle_t *handle)
5669{ 5709{
5670 struct ext4_inode *raw_inode; 5710 struct ext4_inode *raw_inode;
5671 struct ext4_xattr_ibody_header *header; 5711 struct ext4_xattr_ibody_header *header;
5712 int error;
5672 5713
5673 if (EXT4_I(inode)->i_extra_isize >= new_extra_isize) 5714 raw_inode = ext4_raw_inode(iloc);
5674 return 0;
5675
5676 raw_inode = ext4_raw_inode(&iloc);
5677 5715
5678 header = IHDR(inode, raw_inode); 5716 header = IHDR(inode, raw_inode);
5679 5717
@@ -5688,8 +5726,98 @@ static int ext4_expand_extra_isize(struct inode *inode,
5688 } 5726 }
5689 5727
5690 /* try to expand with EAs present */ 5728 /* try to expand with EAs present */
5691 return ext4_expand_extra_isize_ea(inode, new_extra_isize, 5729 error = ext4_expand_extra_isize_ea(inode, new_extra_isize,
5692 raw_inode, handle); 5730 raw_inode, handle);
5731 if (error) {
5732 /*
5733 * Inode size expansion failed; don't try again
5734 */
5735 *no_expand = 1;
5736 }
5737
5738 return error;
5739}
5740
5741/*
5742 * Expand an inode by new_extra_isize bytes.
5743 * Returns 0 on success or negative error number on failure.
5744 */
5745static int ext4_try_to_expand_extra_isize(struct inode *inode,
5746 unsigned int new_extra_isize,
5747 struct ext4_iloc iloc,
5748 handle_t *handle)
5749{
5750 int no_expand;
5751 int error;
5752
5753 if (ext4_test_inode_state(inode, EXT4_STATE_NO_EXPAND))
5754 return -EOVERFLOW;
5755
5756 /*
5757 * In nojournal mode, we can immediately attempt to expand
5758 * the inode. When journaled, we first need to obtain extra
5759 * buffer credits since we may write into the EA block
5760 * with this same handle. If journal_extend fails, then it will
5761 * only result in a minor loss of functionality for that inode.
5762 * If this is felt to be critical, then e2fsck should be run to
5763 * force a large enough s_min_extra_isize.
5764 */
5765 if (ext4_handle_valid(handle) &&
5766 jbd2_journal_extend(handle,
5767 EXT4_DATA_TRANS_BLOCKS(inode->i_sb)) != 0)
5768 return -ENOSPC;
5769
5770 if (ext4_write_trylock_xattr(inode, &no_expand) == 0)
5771 return -EBUSY;
5772
5773 error = __ext4_expand_extra_isize(inode, new_extra_isize, &iloc,
5774 handle, &no_expand);
5775 ext4_write_unlock_xattr(inode, &no_expand);
5776
5777 return error;
5778}
5779
5780int ext4_expand_extra_isize(struct inode *inode,
5781 unsigned int new_extra_isize,
5782 struct ext4_iloc *iloc)
5783{
5784 handle_t *handle;
5785 int no_expand;
5786 int error, rc;
5787
5788 if (ext4_test_inode_state(inode, EXT4_STATE_NO_EXPAND)) {
5789 brelse(iloc->bh);
5790 return -EOVERFLOW;
5791 }
5792
5793 handle = ext4_journal_start(inode, EXT4_HT_INODE,
5794 EXT4_DATA_TRANS_BLOCKS(inode->i_sb));
5795 if (IS_ERR(handle)) {
5796 error = PTR_ERR(handle);
5797 brelse(iloc->bh);
5798 return error;
5799 }
5800
5801 ext4_write_lock_xattr(inode, &no_expand);
5802
5803 BUFFER_TRACE(iloc.bh, "get_write_access");
5804 error = ext4_journal_get_write_access(handle, iloc->bh);
5805 if (error) {
5806 brelse(iloc->bh);
5807 goto out_stop;
5808 }
5809
5810 error = __ext4_expand_extra_isize(inode, new_extra_isize, iloc,
5811 handle, &no_expand);
5812
5813 rc = ext4_mark_iloc_dirty(handle, inode, iloc);
5814 if (!error)
5815 error = rc;
5816
5817 ext4_write_unlock_xattr(inode, &no_expand);
5818out_stop:
5819 ext4_journal_stop(handle);
5820 return error;
5693} 5821}
5694 5822
5695/* 5823/*
@@ -5709,44 +5837,18 @@ int ext4_mark_inode_dirty(handle_t *handle, struct inode *inode)
5709{ 5837{
5710 struct ext4_iloc iloc; 5838 struct ext4_iloc iloc;
5711 struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); 5839 struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
5712 static unsigned int mnt_count; 5840 int err;
5713 int err, ret;
5714 5841
5715 might_sleep(); 5842 might_sleep();
5716 trace_ext4_mark_inode_dirty(inode, _RET_IP_); 5843 trace_ext4_mark_inode_dirty(inode, _RET_IP_);
5717 err = ext4_reserve_inode_write(handle, inode, &iloc); 5844 err = ext4_reserve_inode_write(handle, inode, &iloc);
5718 if (err) 5845 if (err)
5719 return err; 5846 return err;
5720 if (EXT4_I(inode)->i_extra_isize < sbi->s_want_extra_isize && 5847
5721 !ext4_test_inode_state(inode, EXT4_STATE_NO_EXPAND)) { 5848 if (EXT4_I(inode)->i_extra_isize < sbi->s_want_extra_isize)
5722 /* 5849 ext4_try_to_expand_extra_isize(inode, sbi->s_want_extra_isize,
5723 * In nojournal mode, we can immediately attempt to expand 5850 iloc, handle);
5724 * the inode. When journaled, we first need to obtain extra 5851
5725 * buffer credits since we may write into the EA block
5726 * with this same handle. If journal_extend fails, then it will
5727 * only result in a minor loss of functionality for that inode.
5728 * If this is felt to be critical, then e2fsck should be run to
5729 * force a large enough s_min_extra_isize.
5730 */
5731 if (!ext4_handle_valid(handle) ||
5732 jbd2_journal_extend(handle,
5733 EXT4_DATA_TRANS_BLOCKS(inode->i_sb)) == 0) {
5734 ret = ext4_expand_extra_isize(inode,
5735 sbi->s_want_extra_isize,
5736 iloc, handle);
5737 if (ret) {
5738 if (mnt_count !=
5739 le16_to_cpu(sbi->s_es->s_mnt_count)) {
5740 ext4_warning(inode->i_sb,
5741 "Unable to expand inode %lu. Delete"
5742 " some EAs or run e2fsck.",
5743 inode->i_ino);
5744 mnt_count =
5745 le16_to_cpu(sbi->s_es->s_mnt_count);
5746 }
5747 }
5748 }
5749 }
5750 return ext4_mark_iloc_dirty(handle, inode, &iloc); 5852 return ext4_mark_iloc_dirty(handle, inode, &iloc);
5751} 5853}
5752 5854
diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c
index 42b3a73143cf..afb66d4ab5cf 100644
--- a/fs/ext4/ioctl.c
+++ b/fs/ext4/ioctl.c
@@ -64,18 +64,16 @@ static void swap_inode_data(struct inode *inode1, struct inode *inode2)
64 ei1 = EXT4_I(inode1); 64 ei1 = EXT4_I(inode1);
65 ei2 = EXT4_I(inode2); 65 ei2 = EXT4_I(inode2);
66 66
67 memswap(&inode1->i_flags, &inode2->i_flags, sizeof(inode1->i_flags)); 67 swap(inode1->i_flags, inode2->i_flags);
68 memswap(&inode1->i_version, &inode2->i_version, 68 swap(inode1->i_version, inode2->i_version);
69 sizeof(inode1->i_version)); 69 swap(inode1->i_blocks, inode2->i_blocks);
70 memswap(&inode1->i_blocks, &inode2->i_blocks, 70 swap(inode1->i_bytes, inode2->i_bytes);
71 sizeof(inode1->i_blocks)); 71 swap(inode1->i_atime, inode2->i_atime);
72 memswap(&inode1->i_bytes, &inode2->i_bytes, sizeof(inode1->i_bytes)); 72 swap(inode1->i_mtime, inode2->i_mtime);
73 memswap(&inode1->i_atime, &inode2->i_atime, sizeof(inode1->i_atime));
74 memswap(&inode1->i_mtime, &inode2->i_mtime, sizeof(inode1->i_mtime));
75 73
76 memswap(ei1->i_data, ei2->i_data, sizeof(ei1->i_data)); 74 memswap(ei1->i_data, ei2->i_data, sizeof(ei1->i_data));
77 memswap(&ei1->i_flags, &ei2->i_flags, sizeof(ei1->i_flags)); 75 swap(ei1->i_flags, ei2->i_flags);
78 memswap(&ei1->i_disksize, &ei2->i_disksize, sizeof(ei1->i_disksize)); 76 swap(ei1->i_disksize, ei2->i_disksize);
79 ext4_es_remove_extent(inode1, 0, EXT_MAX_BLOCKS); 77 ext4_es_remove_extent(inode1, 0, EXT_MAX_BLOCKS);
80 ext4_es_remove_extent(inode2, 0, EXT_MAX_BLOCKS); 78 ext4_es_remove_extent(inode2, 0, EXT_MAX_BLOCKS);
81 79
@@ -351,11 +349,14 @@ static int ext4_ioctl_setproject(struct file *filp, __u32 projid)
351 349
352 raw_inode = ext4_raw_inode(&iloc); 350 raw_inode = ext4_raw_inode(&iloc);
353 if (!EXT4_FITS_IN_INODE(raw_inode, ei, i_projid)) { 351 if (!EXT4_FITS_IN_INODE(raw_inode, ei, i_projid)) {
354 err = -EOVERFLOW; 352 err = ext4_expand_extra_isize(inode,
353 EXT4_SB(sb)->s_want_extra_isize,
354 &iloc);
355 if (err)
356 goto out_unlock;
357 } else {
355 brelse(iloc.bh); 358 brelse(iloc.bh);
356 goto out_unlock;
357 } 359 }
358 brelse(iloc.bh);
359 360
360 dquot_initialize(inode); 361 dquot_initialize(inode);
361 362
diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
index 581e357e8406..5a1052627a81 100644
--- a/fs/ext4/mballoc.c
+++ b/fs/ext4/mballoc.c
@@ -2295,9 +2295,12 @@ static int ext4_mb_seq_groups_show(struct seq_file *seq, void *v)
2295 int err, buddy_loaded = 0; 2295 int err, buddy_loaded = 0;
2296 struct ext4_buddy e4b; 2296 struct ext4_buddy e4b;
2297 struct ext4_group_info *grinfo; 2297 struct ext4_group_info *grinfo;
2298 unsigned char blocksize_bits = min_t(unsigned char,
2299 sb->s_blocksize_bits,
2300 EXT4_MAX_BLOCK_LOG_SIZE);
2298 struct sg { 2301 struct sg {
2299 struct ext4_group_info info; 2302 struct ext4_group_info info;
2300 ext4_grpblk_t counters[EXT4_MAX_BLOCK_LOG_SIZE + 2]; 2303 ext4_grpblk_t counters[blocksize_bits + 2];
2301 } sg; 2304 } sg;
2302 2305
2303 group--; 2306 group--;
@@ -2306,8 +2309,6 @@ static int ext4_mb_seq_groups_show(struct seq_file *seq, void *v)
2306 " 2^0 2^1 2^2 2^3 2^4 2^5 2^6 " 2309 " 2^0 2^1 2^2 2^3 2^4 2^5 2^6 "
2307 " 2^7 2^8 2^9 2^10 2^11 2^12 2^13 ]\n"); 2310 " 2^7 2^8 2^9 2^10 2^11 2^12 2^13 ]\n");
2308 2311
2309 i = (sb->s_blocksize_bits + 2) * sizeof(sg.info.bb_counters[0]) +
2310 sizeof(struct ext4_group_info);
2311 grinfo = ext4_get_group_info(sb, group); 2312 grinfo = ext4_get_group_info(sb, group);
2312 /* Load the group info in memory only if not already loaded. */ 2313 /* Load the group info in memory only if not already loaded. */
2313 if (unlikely(EXT4_MB_GRP_NEED_INIT(grinfo))) { 2314 if (unlikely(EXT4_MB_GRP_NEED_INIT(grinfo))) {
@@ -2319,7 +2320,7 @@ static int ext4_mb_seq_groups_show(struct seq_file *seq, void *v)
2319 buddy_loaded = 1; 2320 buddy_loaded = 1;
2320 } 2321 }
2321 2322
2322 memcpy(&sg, ext4_get_group_info(sb, group), i); 2323 memcpy(&sg, ext4_get_group_info(sb, group), sizeof(sg));
2323 2324
2324 if (buddy_loaded) 2325 if (buddy_loaded)
2325 ext4_mb_unload_buddy(&e4b); 2326 ext4_mb_unload_buddy(&e4b);
@@ -2327,7 +2328,7 @@ static int ext4_mb_seq_groups_show(struct seq_file *seq, void *v)
2327 seq_printf(seq, "#%-5u: %-5u %-5u %-5u [", group, sg.info.bb_free, 2328 seq_printf(seq, "#%-5u: %-5u %-5u %-5u [", group, sg.info.bb_free,
2328 sg.info.bb_fragments, sg.info.bb_first_free); 2329 sg.info.bb_fragments, sg.info.bb_first_free);
2329 for (i = 0; i <= 13; i++) 2330 for (i = 0; i <= 13; i++)
2330 seq_printf(seq, " %-5u", i <= sb->s_blocksize_bits + 1 ? 2331 seq_printf(seq, " %-5u", i <= blocksize_bits + 1 ?
2331 sg.info.bb_counters[i] : 0); 2332 sg.info.bb_counters[i] : 0);
2332 seq_printf(seq, " ]\n"); 2333 seq_printf(seq, " ]\n");
2333 2334
@@ -2892,8 +2893,10 @@ void ext4_process_freed_data(struct super_block *sb, tid_t commit_tid)
2892 break; 2893 break;
2893 } 2894 }
2894 2895
2895 if (discard_bio) 2896 if (discard_bio) {
2896 submit_bio_wait(discard_bio); 2897 submit_bio_wait(discard_bio);
2898 bio_put(discard_bio);
2899 }
2897 } 2900 }
2898 2901
2899 list_for_each_entry_safe(entry, tmp, &freed_data_list, efd_list) 2902 list_for_each_entry_safe(entry, tmp, &freed_data_list, efd_list)
diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
index 13f0cadb1238..c1cf020d1889 100644
--- a/fs/ext4/namei.c
+++ b/fs/ext4/namei.c
@@ -1342,13 +1342,12 @@ static struct buffer_head * ext4_find_entry (struct inode *dir,
1342 struct super_block *sb; 1342 struct super_block *sb;
1343 struct buffer_head *bh_use[NAMEI_RA_SIZE]; 1343 struct buffer_head *bh_use[NAMEI_RA_SIZE];
1344 struct buffer_head *bh, *ret = NULL; 1344 struct buffer_head *bh, *ret = NULL;
1345 ext4_lblk_t start, block, b; 1345 ext4_lblk_t start, block;
1346 const u8 *name = d_name->name; 1346 const u8 *name = d_name->name;
1347 int ra_max = 0; /* Number of bh's in the readahead 1347 size_t ra_max = 0; /* Number of bh's in the readahead
1348 buffer, bh_use[] */ 1348 buffer, bh_use[] */
1349 int ra_ptr = 0; /* Current index into readahead 1349 size_t ra_ptr = 0; /* Current index into readahead
1350 buffer */ 1350 buffer */
1351 int num = 0;
1352 ext4_lblk_t nblocks; 1351 ext4_lblk_t nblocks;
1353 int i, namelen, retval; 1352 int i, namelen, retval;
1354 struct ext4_filename fname; 1353 struct ext4_filename fname;
@@ -1411,31 +1410,17 @@ restart:
1411 if (ra_ptr >= ra_max) { 1410 if (ra_ptr >= ra_max) {
1412 /* Refill the readahead buffer */ 1411 /* Refill the readahead buffer */
1413 ra_ptr = 0; 1412 ra_ptr = 0;
1414 b = block; 1413 if (block < start)
1415 for (ra_max = 0; ra_max < NAMEI_RA_SIZE; ra_max++) { 1414 ra_max = start - block;
1416 /* 1415 else
1417 * Terminate if we reach the end of the 1416 ra_max = nblocks - block;
1418 * directory and must wrap, or if our 1417 ra_max = min(ra_max, ARRAY_SIZE(bh_use));
1419 * search has finished at this block. 1418 retval = ext4_bread_batch(dir, block, ra_max,
1420 */ 1419 false /* wait */, bh_use);
1421 if (b >= nblocks || (num && block == start)) { 1420 if (retval) {
1422 bh_use[ra_max] = NULL; 1421 ret = ERR_PTR(retval);
1423 break; 1422 ra_max = 0;
1424 } 1423 goto cleanup_and_exit;
1425 num++;
1426 bh = ext4_getblk(NULL, dir, b++, 0);
1427 if (IS_ERR(bh)) {
1428 if (ra_max == 0) {
1429 ret = bh;
1430 goto cleanup_and_exit;
1431 }
1432 break;
1433 }
1434 bh_use[ra_max] = bh;
1435 if (bh)
1436 ll_rw_block(REQ_OP_READ,
1437 REQ_META | REQ_PRIO,
1438 1, &bh);
1439 } 1424 }
1440 } 1425 }
1441 if ((bh = bh_use[ra_ptr++]) == NULL) 1426 if ((bh = bh_use[ra_ptr++]) == NULL)
@@ -2395,19 +2380,22 @@ out:
2395} 2380}
2396 2381
2397/* 2382/*
2398 * DIR_NLINK feature is set if 1) nlinks > EXT4_LINK_MAX or 2) nlinks == 2, 2383 * Set directory link count to 1 if nlinks > EXT4_LINK_MAX, or if nlinks == 2
2399 * since this indicates that nlinks count was previously 1. 2384 * since this indicates that nlinks count was previously 1 to avoid overflowing
2385 * the 16-bit i_links_count field on disk. Directories with i_nlink == 1 mean
2386 * that subdirectory link counts are not being maintained accurately.
2387 *
2388 * The caller has already checked for i_nlink overflow in case the DIR_LINK
2389 * feature is not enabled and returned -EMLINK. The is_dx() check is a proxy
2390 * for checking S_ISDIR(inode) (since the INODE_INDEX feature will not be set
2391 * on regular files) and to avoid creating huge/slow non-HTREE directories.
2400 */ 2392 */
2401static void ext4_inc_count(handle_t *handle, struct inode *inode) 2393static void ext4_inc_count(handle_t *handle, struct inode *inode)
2402{ 2394{
2403 inc_nlink(inode); 2395 inc_nlink(inode);
2404 if (is_dx(inode) && inode->i_nlink > 1) { 2396 if (is_dx(inode) &&
2405 /* limit is 16-bit i_links_count */ 2397 (inode->i_nlink > EXT4_LINK_MAX || inode->i_nlink == 2))
2406 if (inode->i_nlink >= EXT4_LINK_MAX || inode->i_nlink == 2) { 2398 set_nlink(inode, 1);
2407 set_nlink(inode, 1);
2408 ext4_set_feature_dir_nlink(inode->i_sb);
2409 }
2410 }
2411} 2399}
2412 2400
2413/* 2401/*
diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
index c3ed9021b781..035cd3f4785e 100644
--- a/fs/ext4/resize.c
+++ b/fs/ext4/resize.c
@@ -1927,7 +1927,8 @@ retry:
1927 n_desc_blocks = o_desc_blocks + 1927 n_desc_blocks = o_desc_blocks +
1928 le16_to_cpu(es->s_reserved_gdt_blocks); 1928 le16_to_cpu(es->s_reserved_gdt_blocks);
1929 n_group = n_desc_blocks * EXT4_DESC_PER_BLOCK(sb); 1929 n_group = n_desc_blocks * EXT4_DESC_PER_BLOCK(sb);
1930 n_blocks_count = n_group * EXT4_BLOCKS_PER_GROUP(sb); 1930 n_blocks_count = (ext4_fsblk_t)n_group *
1931 EXT4_BLOCKS_PER_GROUP(sb);
1931 n_group--; /* set to last group number */ 1932 n_group--; /* set to last group number */
1932 } 1933 }
1933 1934
diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index 0886fe82e9c4..d61a70e2193a 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -978,8 +978,6 @@ static struct inode *ext4_alloc_inode(struct super_block *sb)
978 ei->i_es_shk_nr = 0; 978 ei->i_es_shk_nr = 0;
979 ei->i_es_shrink_lblk = 0; 979 ei->i_es_shrink_lblk = 0;
980 ei->i_reserved_data_blocks = 0; 980 ei->i_reserved_data_blocks = 0;
981 ei->i_reserved_meta_blocks = 0;
982 ei->i_allocated_meta_blocks = 0;
983 ei->i_da_metadata_calc_len = 0; 981 ei->i_da_metadata_calc_len = 0;
984 ei->i_da_metadata_calc_last_lblock = 0; 982 ei->i_da_metadata_calc_last_lblock = 0;
985 spin_lock_init(&(ei->i_block_reservation_lock)); 983 spin_lock_init(&(ei->i_block_reservation_lock));
diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c
index cff4f41ced61..82a5af9f6668 100644
--- a/fs/ext4/xattr.c
+++ b/fs/ext4/xattr.c
@@ -317,28 +317,41 @@ static void ext4_xattr_inode_set_hash(struct inode *ea_inode, u32 hash)
317 */ 317 */
318static int ext4_xattr_inode_read(struct inode *ea_inode, void *buf, size_t size) 318static int ext4_xattr_inode_read(struct inode *ea_inode, void *buf, size_t size)
319{ 319{
320 unsigned long block = 0; 320 int blocksize = 1 << ea_inode->i_blkbits;
321 struct buffer_head *bh; 321 int bh_count = (size + blocksize - 1) >> ea_inode->i_blkbits;
322 int blocksize = ea_inode->i_sb->s_blocksize; 322 int tail_size = (size % blocksize) ?: blocksize;
323 size_t csize, copied = 0; 323 struct buffer_head *bhs_inline[8];
324 void *copy_pos = buf; 324 struct buffer_head **bhs = bhs_inline;
325 325 int i, ret;
326 while (copied < size) { 326
327 csize = (size - copied) > blocksize ? blocksize : size - copied; 327 if (bh_count > ARRAY_SIZE(bhs_inline)) {
328 bh = ext4_bread(NULL, ea_inode, block, 0); 328 bhs = kmalloc_array(bh_count, sizeof(*bhs), GFP_NOFS);
329 if (IS_ERR(bh)) 329 if (!bhs)
330 return PTR_ERR(bh); 330 return -ENOMEM;
331 if (!bh) 331 }
332 return -EFSCORRUPTED;
333 332
334 memcpy(copy_pos, bh->b_data, csize); 333 ret = ext4_bread_batch(ea_inode, 0 /* block */, bh_count,
335 brelse(bh); 334 true /* wait */, bhs);
335 if (ret)
336 goto free_bhs;
336 337
337 copy_pos += csize; 338 for (i = 0; i < bh_count; i++) {
338 block += 1; 339 /* There shouldn't be any holes in ea_inode. */
339 copied += csize; 340 if (!bhs[i]) {
341 ret = -EFSCORRUPTED;
342 goto put_bhs;
343 }
344 memcpy((char *)buf + blocksize * i, bhs[i]->b_data,
345 i < bh_count - 1 ? blocksize : tail_size);
340 } 346 }
341 return 0; 347 ret = 0;
348put_bhs:
349 for (i = 0; i < bh_count; i++)
350 brelse(bhs[i]);
351free_bhs:
352 if (bhs != bhs_inline)
353 kfree(bhs);
354 return ret;
342} 355}
343 356
344static int ext4_xattr_inode_iget(struct inode *parent, unsigned long ea_ino, 357static int ext4_xattr_inode_iget(struct inode *parent, unsigned long ea_ino,
@@ -451,6 +464,7 @@ ext4_xattr_inode_get(struct inode *inode, struct ext4_xattr_entry *entry,
451 } 464 }
452 /* Do not add ea_inode to the cache. */ 465 /* Do not add ea_inode to the cache. */
453 ea_inode_cache = NULL; 466 ea_inode_cache = NULL;
467 err = 0;
454 } else if (err) 468 } else if (err)
455 goto out; 469 goto out;
456 470
@@ -1815,9 +1829,6 @@ ext4_xattr_block_set(handle_t *handle, struct inode *inode,
1815 ea_bdebug(bs->bh, "modifying in-place"); 1829 ea_bdebug(bs->bh, "modifying in-place");
1816 error = ext4_xattr_set_entry(i, s, handle, inode, 1830 error = ext4_xattr_set_entry(i, s, handle, inode,
1817 true /* is_block */); 1831 true /* is_block */);
1818 if (!error)
1819 ext4_xattr_block_cache_insert(ea_block_cache,
1820 bs->bh);
1821 ext4_xattr_block_csum_set(inode, bs->bh); 1832 ext4_xattr_block_csum_set(inode, bs->bh);
1822 unlock_buffer(bs->bh); 1833 unlock_buffer(bs->bh);
1823 if (error == -EFSCORRUPTED) 1834 if (error == -EFSCORRUPTED)
@@ -1973,6 +1984,7 @@ inserted:
1973 } else if (bs->bh && s->base == bs->bh->b_data) { 1984 } else if (bs->bh && s->base == bs->bh->b_data) {
1974 /* We were modifying this block in-place. */ 1985 /* We were modifying this block in-place. */
1975 ea_bdebug(bs->bh, "keeping this block"); 1986 ea_bdebug(bs->bh, "keeping this block");
1987 ext4_xattr_block_cache_insert(ea_block_cache, bs->bh);
1976 new_bh = bs->bh; 1988 new_bh = bs->bh;
1977 get_bh(new_bh); 1989 get_bh(new_bh);
1978 } else { 1990 } else {
@@ -2625,23 +2637,21 @@ int ext4_expand_extra_isize_ea(struct inode *inode, int new_extra_isize,
2625 struct ext4_inode *raw_inode, handle_t *handle) 2637 struct ext4_inode *raw_inode, handle_t *handle)
2626{ 2638{
2627 struct ext4_xattr_ibody_header *header; 2639 struct ext4_xattr_ibody_header *header;
2628 struct buffer_head *bh = NULL; 2640 struct buffer_head *bh;
2641 struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb);
2642 static unsigned int mnt_count;
2629 size_t min_offs; 2643 size_t min_offs;
2630 size_t ifree, bfree; 2644 size_t ifree, bfree;
2631 int total_ino; 2645 int total_ino;
2632 void *base, *end; 2646 void *base, *end;
2633 int error = 0, tried_min_extra_isize = 0; 2647 int error = 0, tried_min_extra_isize = 0;
2634 int s_min_extra_isize = le16_to_cpu(EXT4_SB(inode->i_sb)->s_es->s_min_extra_isize); 2648 int s_min_extra_isize = le16_to_cpu(sbi->s_es->s_min_extra_isize);
2635 int isize_diff; /* How much do we need to grow i_extra_isize */ 2649 int isize_diff; /* How much do we need to grow i_extra_isize */
2636 int no_expand;
2637
2638 if (ext4_write_trylock_xattr(inode, &no_expand) == 0)
2639 return 0;
2640 2650
2641retry: 2651retry:
2642 isize_diff = new_extra_isize - EXT4_I(inode)->i_extra_isize; 2652 isize_diff = new_extra_isize - EXT4_I(inode)->i_extra_isize;
2643 if (EXT4_I(inode)->i_extra_isize >= new_extra_isize) 2653 if (EXT4_I(inode)->i_extra_isize >= new_extra_isize)
2644 goto out; 2654 return 0;
2645 2655
2646 header = IHDR(inode, raw_inode); 2656 header = IHDR(inode, raw_inode);
2647 2657
@@ -2676,6 +2686,7 @@ retry:
2676 EXT4_ERROR_INODE(inode, "bad block %llu", 2686 EXT4_ERROR_INODE(inode, "bad block %llu",
2677 EXT4_I(inode)->i_file_acl); 2687 EXT4_I(inode)->i_file_acl);
2678 error = -EFSCORRUPTED; 2688 error = -EFSCORRUPTED;
2689 brelse(bh);
2679 goto cleanup; 2690 goto cleanup;
2680 } 2691 }
2681 base = BHDR(bh); 2692 base = BHDR(bh);
@@ -2683,11 +2694,11 @@ retry:
2683 min_offs = end - base; 2694 min_offs = end - base;
2684 bfree = ext4_xattr_free_space(BFIRST(bh), &min_offs, base, 2695 bfree = ext4_xattr_free_space(BFIRST(bh), &min_offs, base,
2685 NULL); 2696 NULL);
2697 brelse(bh);
2686 if (bfree + ifree < isize_diff) { 2698 if (bfree + ifree < isize_diff) {
2687 if (!tried_min_extra_isize && s_min_extra_isize) { 2699 if (!tried_min_extra_isize && s_min_extra_isize) {
2688 tried_min_extra_isize++; 2700 tried_min_extra_isize++;
2689 new_extra_isize = s_min_extra_isize; 2701 new_extra_isize = s_min_extra_isize;
2690 brelse(bh);
2691 goto retry; 2702 goto retry;
2692 } 2703 }
2693 error = -ENOSPC; 2704 error = -ENOSPC;
@@ -2705,7 +2716,6 @@ retry:
2705 s_min_extra_isize) { 2716 s_min_extra_isize) {
2706 tried_min_extra_isize++; 2717 tried_min_extra_isize++;
2707 new_extra_isize = s_min_extra_isize; 2718 new_extra_isize = s_min_extra_isize;
2708 brelse(bh);
2709 goto retry; 2719 goto retry;
2710 } 2720 }
2711 goto cleanup; 2721 goto cleanup;
@@ -2717,18 +2727,13 @@ shift:
2717 EXT4_GOOD_OLD_INODE_SIZE + new_extra_isize, 2727 EXT4_GOOD_OLD_INODE_SIZE + new_extra_isize,
2718 (void *)header, total_ino); 2728 (void *)header, total_ino);
2719 EXT4_I(inode)->i_extra_isize = new_extra_isize; 2729 EXT4_I(inode)->i_extra_isize = new_extra_isize;
2720 brelse(bh);
2721out:
2722 ext4_write_unlock_xattr(inode, &no_expand);
2723 return 0;
2724 2730
2725cleanup: 2731cleanup:
2726 brelse(bh); 2732 if (error && (mnt_count != le16_to_cpu(sbi->s_es->s_mnt_count))) {
2727 /* 2733 ext4_warning(inode->i_sb, "Unable to expand inode %lu. Delete some EAs or run e2fsck.",
2728 * Inode size expansion failed; don't try again 2734 inode->i_ino);
2729 */ 2735 mnt_count = le16_to_cpu(sbi->s_es->s_mnt_count);
2730 no_expand = 1; 2736 }
2731 ext4_write_unlock_xattr(inode, &no_expand);
2732 return error; 2737 return error;
2733} 2738}
2734 2739
diff --git a/fs/jfs/acl.c b/fs/jfs/acl.c
index 7bc186f4ed4d..2e71b6e7e646 100644
--- a/fs/jfs/acl.c
+++ b/fs/jfs/acl.c
@@ -77,13 +77,6 @@ static int __jfs_set_acl(tid_t tid, struct inode *inode, int type,
77 switch (type) { 77 switch (type) {
78 case ACL_TYPE_ACCESS: 78 case ACL_TYPE_ACCESS:
79 ea_name = XATTR_NAME_POSIX_ACL_ACCESS; 79 ea_name = XATTR_NAME_POSIX_ACL_ACCESS;
80 if (acl) {
81 rc = posix_acl_update_mode(inode, &inode->i_mode, &acl);
82 if (rc)
83 return rc;
84 inode->i_ctime = current_time(inode);
85 mark_inode_dirty(inode);
86 }
87 break; 80 break;
88 case ACL_TYPE_DEFAULT: 81 case ACL_TYPE_DEFAULT:
89 ea_name = XATTR_NAME_POSIX_ACL_DEFAULT; 82 ea_name = XATTR_NAME_POSIX_ACL_DEFAULT;
@@ -115,12 +108,27 @@ int jfs_set_acl(struct inode *inode, struct posix_acl *acl, int type)
115{ 108{
116 int rc; 109 int rc;
117 tid_t tid; 110 tid_t tid;
111 int update_mode = 0;
112 umode_t mode = inode->i_mode;
118 113
119 tid = txBegin(inode->i_sb, 0); 114 tid = txBegin(inode->i_sb, 0);
120 mutex_lock(&JFS_IP(inode)->commit_mutex); 115 mutex_lock(&JFS_IP(inode)->commit_mutex);
116 if (type == ACL_TYPE_ACCESS && acl) {
117 rc = posix_acl_update_mode(inode, &mode, &acl);
118 if (rc)
119 goto end_tx;
120 update_mode = 1;
121 }
121 rc = __jfs_set_acl(tid, inode, type, acl); 122 rc = __jfs_set_acl(tid, inode, type, acl);
122 if (!rc) 123 if (!rc) {
124 if (update_mode) {
125 inode->i_mode = mode;
126 inode->i_ctime = current_time(inode);
127 mark_inode_dirty(inode);
128 }
123 rc = txCommit(tid, 1, &inode, 0); 129 rc = txCommit(tid, 1, &inode, 0);
130 }
131end_tx:
124 txEnd(tid); 132 txEnd(tid);
125 mutex_unlock(&JFS_IP(inode)->commit_mutex); 133 mutex_unlock(&JFS_IP(inode)->commit_mutex);
126 return rc; 134 return rc;
diff --git a/fs/jfs/resize.c b/fs/jfs/resize.c
index bd9b641ada2c..7ddcb445a3d9 100644
--- a/fs/jfs/resize.c
+++ b/fs/jfs/resize.c
@@ -98,7 +98,7 @@ int jfs_extendfs(struct super_block *sb, s64 newLVSize, int newLogSize)
98 goto out; 98 goto out;
99 } 99 }
100 100
101 VolumeSize = sb->s_bdev->bd_inode->i_size >> sb->s_blocksize_bits; 101 VolumeSize = i_size_read(sb->s_bdev->bd_inode) >> sb->s_blocksize_bits;
102 102
103 if (VolumeSize) { 103 if (VolumeSize) {
104 if (newLVSize > VolumeSize) { 104 if (newLVSize > VolumeSize) {
@@ -211,7 +211,7 @@ int jfs_extendfs(struct super_block *sb, s64 newLVSize, int newLogSize)
211 txQuiesce(sb); 211 txQuiesce(sb);
212 212
213 /* Reset size of direct inode */ 213 /* Reset size of direct inode */
214 sbi->direct_inode->i_size = sb->s_bdev->bd_inode->i_size; 214 sbi->direct_inode->i_size = i_size_read(sb->s_bdev->bd_inode);
215 215
216 if (sbi->mntflag & JFS_INLINELOG) { 216 if (sbi->mntflag & JFS_INLINELOG) {
217 /* 217 /*
diff --git a/fs/jfs/super.c b/fs/jfs/super.c
index e8aad7d87b8c..78b41e1d5c67 100644
--- a/fs/jfs/super.c
+++ b/fs/jfs/super.c
@@ -313,7 +313,7 @@ static int parse_options(char *options, struct super_block *sb, s64 *newLVSize,
313 } 313 }
314 case Opt_resize_nosize: 314 case Opt_resize_nosize:
315 { 315 {
316 *newLVSize = sb->s_bdev->bd_inode->i_size >> 316 *newLVSize = i_size_read(sb->s_bdev->bd_inode) >>
317 sb->s_blocksize_bits; 317 sb->s_blocksize_bits;
318 if (*newLVSize == 0) 318 if (*newLVSize == 0)
319 pr_err("JFS: Cannot determine volume size\n"); 319 pr_err("JFS: Cannot determine volume size\n");
@@ -579,7 +579,7 @@ static int jfs_fill_super(struct super_block *sb, void *data, int silent)
579 goto out_unload; 579 goto out_unload;
580 } 580 }
581 inode->i_ino = 0; 581 inode->i_ino = 0;
582 inode->i_size = sb->s_bdev->bd_inode->i_size; 582 inode->i_size = i_size_read(sb->s_bdev->bd_inode);
583 inode->i_mapping->a_ops = &jfs_metapage_aops; 583 inode->i_mapping->a_ops = &jfs_metapage_aops;
584 hlist_add_fake(&inode->i_hash); 584 hlist_add_fake(&inode->i_hash);
585 mapping_set_gfp_mask(inode->i_mapping, GFP_NOFS); 585 mapping_set_gfp_mask(inode->i_mapping, GFP_NOFS);
diff --git a/fs/nfs/file.c b/fs/nfs/file.c
index 5713eb32a45e..af330c31f627 100644
--- a/fs/nfs/file.c
+++ b/fs/nfs/file.c
@@ -617,6 +617,8 @@ ssize_t nfs_file_write(struct kiocb *iocb, struct iov_iter *from)
617 if (result) 617 if (result)
618 goto out; 618 goto out;
619 } 619 }
620 if (iocb->ki_pos > i_size_read(inode))
621 nfs_revalidate_mapping(inode, file->f_mapping);
620 622
621 nfs_start_io_write(inode); 623 nfs_start_io_write(inode);
622 result = generic_write_checks(iocb, from); 624 result = generic_write_checks(iocb, from);
@@ -750,7 +752,7 @@ do_setlk(struct file *filp, int cmd, struct file_lock *fl, int is_local)
750 */ 752 */
751 nfs_sync_mapping(filp->f_mapping); 753 nfs_sync_mapping(filp->f_mapping);
752 if (!NFS_PROTO(inode)->have_delegation(inode, FMODE_READ)) 754 if (!NFS_PROTO(inode)->have_delegation(inode, FMODE_READ))
753 nfs_zap_mapping(inode, filp->f_mapping); 755 nfs_zap_caches(inode);
754out: 756out:
755 return status; 757 return status;
756} 758}
diff --git a/fs/nfs/nfs4client.c b/fs/nfs/nfs4client.c
index 50566acb5469..e9bea90dc017 100644
--- a/fs/nfs/nfs4client.c
+++ b/fs/nfs/nfs4client.c
@@ -660,9 +660,6 @@ int nfs4_detect_session_trunking(struct nfs_client *clp,
660 if (!nfs4_check_server_scope(clp->cl_serverscope, res->server_scope)) 660 if (!nfs4_check_server_scope(clp->cl_serverscope, res->server_scope))
661 goto out_err; 661 goto out_err;
662 662
663 /* Session trunking passed, add the xprt */
664 rpc_clnt_xprt_switch_add_xprt(clp->cl_rpcclient, xprt);
665
666 pr_info("NFS: %s: Session trunking succeeded for %s\n", 663 pr_info("NFS: %s: Session trunking succeeded for %s\n",
667 clp->cl_hostname, 664 clp->cl_hostname,
668 xprt->address_strings[RPC_DISPLAY_ADDR]); 665 xprt->address_strings[RPC_DISPLAY_ADDR]);
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
index a0b4e1091340..ffd2e712595d 100644
--- a/fs/nfs/nfs4proc.c
+++ b/fs/nfs/nfs4proc.c
@@ -2236,7 +2236,7 @@ static int nfs4_opendata_access(struct rpc_cred *cred,
2236 int openflags) 2236 int openflags)
2237{ 2237{
2238 struct nfs_access_entry cache; 2238 struct nfs_access_entry cache;
2239 u32 mask; 2239 u32 mask, flags;
2240 2240
2241 /* access call failed or for some reason the server doesn't 2241 /* access call failed or for some reason the server doesn't
2242 * support any access modes -- defer access call until later */ 2242 * support any access modes -- defer access call until later */
@@ -2250,16 +2250,20 @@ static int nfs4_opendata_access(struct rpc_cred *cred,
2250 */ 2250 */
2251 if (openflags & __FMODE_EXEC) { 2251 if (openflags & __FMODE_EXEC) {
2252 /* ONLY check for exec rights */ 2252 /* ONLY check for exec rights */
2253 mask = MAY_EXEC; 2253 if (S_ISDIR(state->inode->i_mode))
2254 mask = NFS4_ACCESS_LOOKUP;
2255 else
2256 mask = NFS4_ACCESS_EXECUTE;
2254 } else if ((fmode & FMODE_READ) && !opendata->file_created) 2257 } else if ((fmode & FMODE_READ) && !opendata->file_created)
2255 mask = MAY_READ; 2258 mask = NFS4_ACCESS_READ;
2256 2259
2257 cache.cred = cred; 2260 cache.cred = cred;
2258 cache.jiffies = jiffies; 2261 cache.jiffies = jiffies;
2259 nfs_access_set_mask(&cache, opendata->o_res.access_result); 2262 nfs_access_set_mask(&cache, opendata->o_res.access_result);
2260 nfs_access_add_cache(state->inode, &cache); 2263 nfs_access_add_cache(state->inode, &cache);
2261 2264
2262 if ((mask & ~cache.mask & (MAY_READ | MAY_EXEC)) == 0) 2265 flags = NFS4_ACCESS_READ | NFS4_ACCESS_EXECUTE | NFS4_ACCESS_LOOKUP;
2266 if ((mask & ~cache.mask & flags) == 0)
2263 return 0; 2267 return 0;
2264 2268
2265 return -EACCES; 2269 return -EACCES;
@@ -6492,7 +6496,7 @@ nfs4_retry_setlk(struct nfs4_state *state, int cmd, struct file_lock *request)
6492 set_current_state(TASK_INTERRUPTIBLE); 6496 set_current_state(TASK_INTERRUPTIBLE);
6493 spin_unlock_irqrestore(&q->lock, flags); 6497 spin_unlock_irqrestore(&q->lock, flags);
6494 6498
6495 freezable_schedule_timeout_interruptible(NFS4_LOCK_MAXTIMEOUT); 6499 freezable_schedule_timeout(NFS4_LOCK_MAXTIMEOUT);
6496 } 6500 }
6497 6501
6498 finish_wait(q, &wait); 6502 finish_wait(q, &wait);
@@ -7457,7 +7461,7 @@ static void nfs4_exchange_id_done(struct rpc_task *task, void *data)
7457 cdata->res.server_scope = NULL; 7461 cdata->res.server_scope = NULL;
7458 } 7462 }
7459 /* Save the EXCHANGE_ID verifier session trunk tests */ 7463 /* Save the EXCHANGE_ID verifier session trunk tests */
7460 memcpy(clp->cl_confirm.data, cdata->args.verifier->data, 7464 memcpy(clp->cl_confirm.data, cdata->args.verifier.data,
7461 sizeof(clp->cl_confirm.data)); 7465 sizeof(clp->cl_confirm.data));
7462 } 7466 }
7463out: 7467out:
@@ -7470,10 +7474,6 @@ static void nfs4_exchange_id_release(void *data)
7470 struct nfs41_exchange_id_data *cdata = 7474 struct nfs41_exchange_id_data *cdata =
7471 (struct nfs41_exchange_id_data *)data; 7475 (struct nfs41_exchange_id_data *)data;
7472 7476
7473 if (cdata->xprt) {
7474 xprt_put(cdata->xprt);
7475 rpc_clnt_xprt_switch_put(cdata->args.client->cl_rpcclient);
7476 }
7477 nfs_put_client(cdata->args.client); 7477 nfs_put_client(cdata->args.client);
7478 kfree(cdata->res.impl_id); 7478 kfree(cdata->res.impl_id);
7479 kfree(cdata->res.server_scope); 7479 kfree(cdata->res.server_scope);
@@ -7494,7 +7494,6 @@ static const struct rpc_call_ops nfs4_exchange_id_call_ops = {
7494static int _nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred, 7494static int _nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred,
7495 u32 sp4_how, struct rpc_xprt *xprt) 7495 u32 sp4_how, struct rpc_xprt *xprt)
7496{ 7496{
7497 nfs4_verifier verifier;
7498 struct rpc_message msg = { 7497 struct rpc_message msg = {
7499 .rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_EXCHANGE_ID], 7498 .rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_EXCHANGE_ID],
7500 .rpc_cred = cred, 7499 .rpc_cred = cred,
@@ -7503,7 +7502,7 @@ static int _nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred,
7503 .rpc_client = clp->cl_rpcclient, 7502 .rpc_client = clp->cl_rpcclient,
7504 .callback_ops = &nfs4_exchange_id_call_ops, 7503 .callback_ops = &nfs4_exchange_id_call_ops,
7505 .rpc_message = &msg, 7504 .rpc_message = &msg,
7506 .flags = RPC_TASK_ASYNC | RPC_TASK_TIMEOUT, 7505 .flags = RPC_TASK_TIMEOUT,
7507 }; 7506 };
7508 struct nfs41_exchange_id_data *calldata; 7507 struct nfs41_exchange_id_data *calldata;
7509 struct rpc_task *task; 7508 struct rpc_task *task;
@@ -7518,8 +7517,7 @@ static int _nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred,
7518 return -ENOMEM; 7517 return -ENOMEM;
7519 } 7518 }
7520 7519
7521 if (!xprt) 7520 nfs4_init_boot_verifier(clp, &calldata->args.verifier);
7522 nfs4_init_boot_verifier(clp, &verifier);
7523 7521
7524 status = nfs4_init_uniform_client_string(clp); 7522 status = nfs4_init_uniform_client_string(clp);
7525 if (status) 7523 if (status)
@@ -7558,11 +7556,9 @@ static int _nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred,
7558 if (xprt) { 7556 if (xprt) {
7559 calldata->xprt = xprt; 7557 calldata->xprt = xprt;
7560 task_setup_data.rpc_xprt = xprt; 7558 task_setup_data.rpc_xprt = xprt;
7561 task_setup_data.flags = 7559 task_setup_data.flags |= RPC_TASK_SOFTCONN;
7562 RPC_TASK_SOFT|RPC_TASK_SOFTCONN|RPC_TASK_ASYNC; 7560 memcpy(calldata->args.verifier.data, clp->cl_confirm.data,
7563 calldata->args.verifier = &clp->cl_confirm; 7561 sizeof(calldata->args.verifier.data));
7564 } else {
7565 calldata->args.verifier = &verifier;
7566 } 7562 }
7567 calldata->args.client = clp; 7563 calldata->args.client = clp;
7568#ifdef CONFIG_NFS_V4_1_MIGRATION 7564#ifdef CONFIG_NFS_V4_1_MIGRATION
@@ -7581,12 +7577,7 @@ static int _nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred,
7581 if (IS_ERR(task)) 7577 if (IS_ERR(task))
7582 return PTR_ERR(task); 7578 return PTR_ERR(task);
7583 7579
7584 if (!xprt) { 7580 status = calldata->rpc_status;
7585 status = rpc_wait_for_completion_task(task);
7586 if (!status)
7587 status = calldata->rpc_status;
7588 } else /* session trunking test */
7589 status = calldata->rpc_status;
7590 7581
7591 rpc_put_task(task); 7582 rpc_put_task(task);
7592out: 7583out:
diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
index fa3eb361d4f8..37c8af003275 100644
--- a/fs/nfs/nfs4xdr.c
+++ b/fs/nfs/nfs4xdr.c
@@ -1785,7 +1785,7 @@ static void encode_exchange_id(struct xdr_stream *xdr,
1785 int len = 0; 1785 int len = 0;
1786 1786
1787 encode_op_hdr(xdr, OP_EXCHANGE_ID, decode_exchange_id_maxsz, hdr); 1787 encode_op_hdr(xdr, OP_EXCHANGE_ID, decode_exchange_id_maxsz, hdr);
1788 encode_nfs4_verifier(xdr, args->verifier); 1788 encode_nfs4_verifier(xdr, &args->verifier);
1789 1789
1790 encode_string(xdr, strlen(args->client->cl_owner_id), 1790 encode_string(xdr, strlen(args->client->cl_owner_id),
1791 args->client->cl_owner_id); 1791 args->client->cl_owner_id);
diff --git a/fs/ocfs2/acl.c b/fs/ocfs2/acl.c
index dc22ba8c710f..e50a387959bf 100644
--- a/fs/ocfs2/acl.c
+++ b/fs/ocfs2/acl.c
@@ -240,18 +240,6 @@ int ocfs2_set_acl(handle_t *handle,
240 switch (type) { 240 switch (type) {
241 case ACL_TYPE_ACCESS: 241 case ACL_TYPE_ACCESS:
242 name_index = OCFS2_XATTR_INDEX_POSIX_ACL_ACCESS; 242 name_index = OCFS2_XATTR_INDEX_POSIX_ACL_ACCESS;
243 if (acl) {
244 umode_t mode;
245
246 ret = posix_acl_update_mode(inode, &mode, &acl);
247 if (ret)
248 return ret;
249
250 ret = ocfs2_acl_set_mode(inode, di_bh,
251 handle, mode);
252 if (ret)
253 return ret;
254 }
255 break; 243 break;
256 case ACL_TYPE_DEFAULT: 244 case ACL_TYPE_DEFAULT:
257 name_index = OCFS2_XATTR_INDEX_POSIX_ACL_DEFAULT; 245 name_index = OCFS2_XATTR_INDEX_POSIX_ACL_DEFAULT;
@@ -289,7 +277,19 @@ int ocfs2_iop_set_acl(struct inode *inode, struct posix_acl *acl, int type)
289 had_lock = ocfs2_inode_lock_tracker(inode, &bh, 1, &oh); 277 had_lock = ocfs2_inode_lock_tracker(inode, &bh, 1, &oh);
290 if (had_lock < 0) 278 if (had_lock < 0)
291 return had_lock; 279 return had_lock;
280 if (type == ACL_TYPE_ACCESS && acl) {
281 umode_t mode;
282
283 status = posix_acl_update_mode(inode, &mode, &acl);
284 if (status)
285 goto unlock;
286
287 status = ocfs2_acl_set_mode(inode, bh, NULL, mode);
288 if (status)
289 goto unlock;
290 }
292 status = ocfs2_set_acl(NULL, inode, bh, type, acl, NULL, NULL); 291 status = ocfs2_set_acl(NULL, inode, bh, type, acl, NULL, NULL);
292unlock:
293 ocfs2_inode_unlock_tracker(inode, 1, &oh, had_lock); 293 ocfs2_inode_unlock_tracker(inode, 1, &oh, had_lock);
294 brelse(bh); 294 brelse(bh);
295 return status; 295 return status;
diff --git a/fs/userfaultfd.c b/fs/userfaultfd.c
index cadcd12a3d35..06ea26b8c996 100644
--- a/fs/userfaultfd.c
+++ b/fs/userfaultfd.c
@@ -854,6 +854,9 @@ wakeup:
854 __wake_up_locked_key(&ctx->fault_wqh, TASK_NORMAL, &range); 854 __wake_up_locked_key(&ctx->fault_wqh, TASK_NORMAL, &range);
855 spin_unlock(&ctx->fault_pending_wqh.lock); 855 spin_unlock(&ctx->fault_pending_wqh.lock);
856 856
857 /* Flush pending events that may still wait on event_wqh */
858 wake_up_all(&ctx->event_wqh);
859
857 wake_up_poll(&ctx->fd_wqh, POLLHUP); 860 wake_up_poll(&ctx->fd_wqh, POLLHUP);
858 userfaultfd_ctx_put(ctx); 861 userfaultfd_ctx_put(ctx);
859 return 0; 862 return 0;
@@ -1643,6 +1646,8 @@ static int userfaultfd_zeropage(struct userfaultfd_ctx *ctx,
1643 ret = mfill_zeropage(ctx->mm, uffdio_zeropage.range.start, 1646 ret = mfill_zeropage(ctx->mm, uffdio_zeropage.range.start,
1644 uffdio_zeropage.range.len); 1647 uffdio_zeropage.range.len);
1645 mmput(ctx->mm); 1648 mmput(ctx->mm);
1649 } else {
1650 return -ENOSPC;
1646 } 1651 }
1647 if (unlikely(put_user(ret, &user_uffdio_zeropage->zeropage))) 1652 if (unlikely(put_user(ret, &user_uffdio_zeropage->zeropage)))
1648 return -EFAULT; 1653 return -EFAULT;
diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c
index 0a9880777c9c..c09c16b1ad3b 100644
--- a/fs/xfs/libxfs/xfs_bmap.c
+++ b/fs/xfs/libxfs/xfs_bmap.c
@@ -5435,6 +5435,7 @@ __xfs_bunmapi(
5435 xfs_fsblock_t sum; 5435 xfs_fsblock_t sum;
5436 xfs_filblks_t len = *rlen; /* length to unmap in file */ 5436 xfs_filblks_t len = *rlen; /* length to unmap in file */
5437 xfs_fileoff_t max_len; 5437 xfs_fileoff_t max_len;
5438 xfs_agnumber_t prev_agno = NULLAGNUMBER, agno;
5438 5439
5439 trace_xfs_bunmap(ip, bno, len, flags, _RET_IP_); 5440 trace_xfs_bunmap(ip, bno, len, flags, _RET_IP_);
5440 5441
@@ -5534,6 +5535,17 @@ __xfs_bunmapi(
5534 */ 5535 */
5535 del = got; 5536 del = got;
5536 wasdel = isnullstartblock(del.br_startblock); 5537 wasdel = isnullstartblock(del.br_startblock);
5538
5539 /*
5540 * Make sure we don't touch multiple AGF headers out of order
5541 * in a single transaction, as that could cause AB-BA deadlocks.
5542 */
5543 if (!wasdel) {
5544 agno = XFS_FSB_TO_AGNO(mp, del.br_startblock);
5545 if (prev_agno != NULLAGNUMBER && prev_agno > agno)
5546 break;
5547 prev_agno = agno;
5548 }
5537 if (got.br_startoff < start) { 5549 if (got.br_startoff < start) {
5538 del.br_startoff = start; 5550 del.br_startoff = start;
5539 del.br_blockcount -= start - got.br_startoff; 5551 del.br_blockcount -= start - got.br_startoff;
@@ -6499,6 +6511,15 @@ xfs_bmap_finish_one(
6499 xfs_fsblock_t firstfsb; 6511 xfs_fsblock_t firstfsb;
6500 int error = 0; 6512 int error = 0;
6501 6513
6514 /*
6515 * firstfsb is tied to the transaction lifetime and is used to
6516 * ensure correct AG locking order and schedule work item
6517 * continuations. XFS_BUI_MAX_FAST_EXTENTS (== 1) restricts us
6518 * to only making one bmap call per transaction, so it should
6519 * be safe to have it as a local variable here.
6520 */
6521 firstfsb = NULLFSBLOCK;
6522
6502 trace_xfs_bmap_deferred(tp->t_mountp, 6523 trace_xfs_bmap_deferred(tp->t_mountp,
6503 XFS_FSB_TO_AGNO(tp->t_mountp, startblock), type, 6524 XFS_FSB_TO_AGNO(tp->t_mountp, startblock), type,
6504 XFS_FSB_TO_AGBNO(tp->t_mountp, startblock), 6525 XFS_FSB_TO_AGBNO(tp->t_mountp, startblock),
diff --git a/fs/xfs/libxfs/xfs_btree.c b/fs/xfs/libxfs/xfs_btree.c
index 4da85fff69ad..e0bcc4a59efd 100644
--- a/fs/xfs/libxfs/xfs_btree.c
+++ b/fs/xfs/libxfs/xfs_btree.c
@@ -728,7 +728,8 @@ xfs_btree_firstrec(
728 * Get the block pointer for this level. 728 * Get the block pointer for this level.
729 */ 729 */
730 block = xfs_btree_get_block(cur, level, &bp); 730 block = xfs_btree_get_block(cur, level, &bp);
731 xfs_btree_check_block(cur, block, level, bp); 731 if (xfs_btree_check_block(cur, block, level, bp))
732 return 0;
732 /* 733 /*
733 * It's empty, there is no such record. 734 * It's empty, there is no such record.
734 */ 735 */
@@ -757,7 +758,8 @@ xfs_btree_lastrec(
757 * Get the block pointer for this level. 758 * Get the block pointer for this level.
758 */ 759 */
759 block = xfs_btree_get_block(cur, level, &bp); 760 block = xfs_btree_get_block(cur, level, &bp);
760 xfs_btree_check_block(cur, block, level, bp); 761 if (xfs_btree_check_block(cur, block, level, bp))
762 return 0;
761 /* 763 /*
762 * It's empty, there is no such record. 764 * It's empty, there is no such record.
763 */ 765 */
diff --git a/fs/xfs/libxfs/xfs_dir2_data.c b/fs/xfs/libxfs/xfs_dir2_data.c
index d478065b9544..8727a43115ef 100644
--- a/fs/xfs/libxfs/xfs_dir2_data.c
+++ b/fs/xfs/libxfs/xfs_dir2_data.c
@@ -136,6 +136,8 @@ __xfs_dir3_data_check(
136 */ 136 */
137 if (be16_to_cpu(dup->freetag) == XFS_DIR2_DATA_FREE_TAG) { 137 if (be16_to_cpu(dup->freetag) == XFS_DIR2_DATA_FREE_TAG) {
138 XFS_WANT_CORRUPTED_RETURN(mp, lastfree == 0); 138 XFS_WANT_CORRUPTED_RETURN(mp, lastfree == 0);
139 XFS_WANT_CORRUPTED_RETURN(mp, endp >=
140 p + be16_to_cpu(dup->length));
139 XFS_WANT_CORRUPTED_RETURN(mp, 141 XFS_WANT_CORRUPTED_RETURN(mp,
140 be16_to_cpu(*xfs_dir2_data_unused_tag_p(dup)) == 142 be16_to_cpu(*xfs_dir2_data_unused_tag_p(dup)) ==
141 (char *)dup - (char *)hdr); 143 (char *)dup - (char *)hdr);
@@ -164,6 +166,8 @@ __xfs_dir3_data_check(
164 XFS_WANT_CORRUPTED_RETURN(mp, dep->namelen != 0); 166 XFS_WANT_CORRUPTED_RETURN(mp, dep->namelen != 0);
165 XFS_WANT_CORRUPTED_RETURN(mp, 167 XFS_WANT_CORRUPTED_RETURN(mp,
166 !xfs_dir_ino_validate(mp, be64_to_cpu(dep->inumber))); 168 !xfs_dir_ino_validate(mp, be64_to_cpu(dep->inumber)));
169 XFS_WANT_CORRUPTED_RETURN(mp, endp >=
170 p + ops->data_entsize(dep->namelen));
167 XFS_WANT_CORRUPTED_RETURN(mp, 171 XFS_WANT_CORRUPTED_RETURN(mp,
168 be16_to_cpu(*ops->data_entry_tag_p(dep)) == 172 be16_to_cpu(*ops->data_entry_tag_p(dep)) ==
169 (char *)dep - (char *)hdr); 173 (char *)dep - (char *)hdr);
diff --git a/fs/xfs/libxfs/xfs_refcount.c b/fs/xfs/libxfs/xfs_refcount.c
index 900ea231f9a3..45b1c3b4e047 100644
--- a/fs/xfs/libxfs/xfs_refcount.c
+++ b/fs/xfs/libxfs/xfs_refcount.c
@@ -1638,6 +1638,10 @@ xfs_refcount_recover_cow_leftovers(
1638 error = xfs_alloc_read_agf(mp, tp, agno, 0, &agbp); 1638 error = xfs_alloc_read_agf(mp, tp, agno, 0, &agbp);
1639 if (error) 1639 if (error)
1640 goto out_trans; 1640 goto out_trans;
1641 if (!agbp) {
1642 error = -ENOMEM;
1643 goto out_trans;
1644 }
1641 cur = xfs_refcountbt_init_cursor(mp, tp, agbp, agno, NULL); 1645 cur = xfs_refcountbt_init_cursor(mp, tp, agbp, agno, NULL);
1642 1646
1643 /* Find all the leftover CoW staging extents. */ 1647 /* Find all the leftover CoW staging extents. */
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index ceef77c0416a..ff48f0096810 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
@@ -874,7 +874,6 @@ xfs_ialloc(
874 case S_IFREG: 874 case S_IFREG:
875 case S_IFDIR: 875 case S_IFDIR:
876 if (pip && (pip->i_d.di_flags & XFS_DIFLAG_ANY)) { 876 if (pip && (pip->i_d.di_flags & XFS_DIFLAG_ANY)) {
877 uint64_t di_flags2 = 0;
878 uint di_flags = 0; 877 uint di_flags = 0;
879 878
880 if (S_ISDIR(mode)) { 879 if (S_ISDIR(mode)) {
@@ -911,20 +910,23 @@ xfs_ialloc(
911 di_flags |= XFS_DIFLAG_NODEFRAG; 910 di_flags |= XFS_DIFLAG_NODEFRAG;
912 if (pip->i_d.di_flags & XFS_DIFLAG_FILESTREAM) 911 if (pip->i_d.di_flags & XFS_DIFLAG_FILESTREAM)
913 di_flags |= XFS_DIFLAG_FILESTREAM; 912 di_flags |= XFS_DIFLAG_FILESTREAM;
914 if (pip->i_d.di_flags2 & XFS_DIFLAG2_DAX)
915 di_flags2 |= XFS_DIFLAG2_DAX;
916 913
917 ip->i_d.di_flags |= di_flags; 914 ip->i_d.di_flags |= di_flags;
918 ip->i_d.di_flags2 |= di_flags2;
919 } 915 }
920 if (pip && 916 if (pip &&
921 (pip->i_d.di_flags2 & XFS_DIFLAG2_ANY) && 917 (pip->i_d.di_flags2 & XFS_DIFLAG2_ANY) &&
922 pip->i_d.di_version == 3 && 918 pip->i_d.di_version == 3 &&
923 ip->i_d.di_version == 3) { 919 ip->i_d.di_version == 3) {
920 uint64_t di_flags2 = 0;
921
924 if (pip->i_d.di_flags2 & XFS_DIFLAG2_COWEXTSIZE) { 922 if (pip->i_d.di_flags2 & XFS_DIFLAG2_COWEXTSIZE) {
925 ip->i_d.di_flags2 |= XFS_DIFLAG2_COWEXTSIZE; 923 di_flags2 |= XFS_DIFLAG2_COWEXTSIZE;
926 ip->i_d.di_cowextsize = pip->i_d.di_cowextsize; 924 ip->i_d.di_cowextsize = pip->i_d.di_cowextsize;
927 } 925 }
926 if (pip->i_d.di_flags2 & XFS_DIFLAG2_DAX)
927 di_flags2 |= XFS_DIFLAG2_DAX;
928
929 ip->i_d.di_flags2 |= di_flags2;
928 } 930 }
929 /* FALLTHROUGH */ 931 /* FALLTHROUGH */
930 case S_IFLNK: 932 case S_IFLNK:
diff --git a/fs/xfs/xfs_log_cil.c b/fs/xfs/xfs_log_cil.c
index fbe72b134bef..43aa42a3a5d3 100644
--- a/fs/xfs/xfs_log_cil.c
+++ b/fs/xfs/xfs_log_cil.c
@@ -539,6 +539,7 @@ xlog_discard_endio(
539 539
540 INIT_WORK(&ctx->discard_endio_work, xlog_discard_endio_work); 540 INIT_WORK(&ctx->discard_endio_work, xlog_discard_endio_work);
541 queue_work(xfs_discard_wq, &ctx->discard_endio_work); 541 queue_work(xfs_discard_wq, &ctx->discard_endio_work);
542 bio_put(bio);
542} 543}
543 544
544static void 545static void
diff --git a/fs/xfs/xfs_qm.c b/fs/xfs/xfs_qm.c
index 6ce948c436d5..15751dc2a27d 100644
--- a/fs/xfs/xfs_qm.c
+++ b/fs/xfs/xfs_qm.c
@@ -111,6 +111,9 @@ restart:
111 skipped = 0; 111 skipped = 0;
112 break; 112 break;
113 } 113 }
114 /* we're done if id overflows back to zero */
115 if (!next_index)
116 break;
114 } 117 }
115 118
116 if (skipped) { 119 if (skipped) {
diff --git a/fs/xfs/xfs_reflink.c b/fs/xfs/xfs_reflink.c
index ab2270a87196..f45fbf0db9bb 100644
--- a/fs/xfs/xfs_reflink.c
+++ b/fs/xfs/xfs_reflink.c
@@ -170,6 +170,8 @@ xfs_reflink_find_shared(
170 error = xfs_alloc_read_agf(mp, tp, agno, 0, &agbp); 170 error = xfs_alloc_read_agf(mp, tp, agno, 0, &agbp);
171 if (error) 171 if (error)
172 return error; 172 return error;
173 if (!agbp)
174 return -ENOMEM;
173 175
174 cur = xfs_refcountbt_init_cursor(mp, tp, agbp, agno, NULL); 176 cur = xfs_refcountbt_init_cursor(mp, tp, agbp, agno, NULL);
175 177
@@ -329,7 +331,7 @@ xfs_reflink_convert_cow_extent(
329 xfs_filblks_t count_fsb, 331 xfs_filblks_t count_fsb,
330 struct xfs_defer_ops *dfops) 332 struct xfs_defer_ops *dfops)
331{ 333{
332 xfs_fsblock_t first_block; 334 xfs_fsblock_t first_block = NULLFSBLOCK;
333 int nimaps = 1; 335 int nimaps = 1;
334 336
335 if (imap->br_state == XFS_EXT_NORM) 337 if (imap->br_state == XFS_EXT_NORM)
diff --git a/include/acpi/acpi_numa.h b/include/acpi/acpi_numa.h
index d4b72944ccda..1e3a74f94131 100644
--- a/include/acpi/acpi_numa.h
+++ b/include/acpi/acpi_numa.h
@@ -3,6 +3,7 @@
3 3
4#ifdef CONFIG_ACPI_NUMA 4#ifdef CONFIG_ACPI_NUMA
5#include <linux/kernel.h> 5#include <linux/kernel.h>
6#include <linux/numa.h>
6 7
7/* Proximity bitmap length */ 8/* Proximity bitmap length */
8#if MAX_NUMNODES > 256 9#if MAX_NUMNODES > 256
diff --git a/include/kvm/arm_pmu.h b/include/kvm/arm_pmu.h
index f6e030617467..f87fe20fcb05 100644
--- a/include/kvm/arm_pmu.h
+++ b/include/kvm/arm_pmu.h
@@ -48,7 +48,6 @@ void kvm_pmu_vcpu_reset(struct kvm_vcpu *vcpu);
48void kvm_pmu_vcpu_destroy(struct kvm_vcpu *vcpu); 48void kvm_pmu_vcpu_destroy(struct kvm_vcpu *vcpu);
49void kvm_pmu_disable_counter(struct kvm_vcpu *vcpu, u64 val); 49void kvm_pmu_disable_counter(struct kvm_vcpu *vcpu, u64 val);
50void kvm_pmu_enable_counter(struct kvm_vcpu *vcpu, u64 val); 50void kvm_pmu_enable_counter(struct kvm_vcpu *vcpu, u64 val);
51void kvm_pmu_overflow_set(struct kvm_vcpu *vcpu, u64 val);
52void kvm_pmu_flush_hwstate(struct kvm_vcpu *vcpu); 51void kvm_pmu_flush_hwstate(struct kvm_vcpu *vcpu);
53void kvm_pmu_sync_hwstate(struct kvm_vcpu *vcpu); 52void kvm_pmu_sync_hwstate(struct kvm_vcpu *vcpu);
54bool kvm_pmu_should_notify_user(struct kvm_vcpu *vcpu); 53bool kvm_pmu_should_notify_user(struct kvm_vcpu *vcpu);
@@ -86,7 +85,6 @@ static inline void kvm_pmu_vcpu_reset(struct kvm_vcpu *vcpu) {}
86static inline void kvm_pmu_vcpu_destroy(struct kvm_vcpu *vcpu) {} 85static inline void kvm_pmu_vcpu_destroy(struct kvm_vcpu *vcpu) {}
87static inline void kvm_pmu_disable_counter(struct kvm_vcpu *vcpu, u64 val) {} 86static inline void kvm_pmu_disable_counter(struct kvm_vcpu *vcpu, u64 val) {}
88static inline void kvm_pmu_enable_counter(struct kvm_vcpu *vcpu, u64 val) {} 87static inline void kvm_pmu_enable_counter(struct kvm_vcpu *vcpu, u64 val) {}
89static inline void kvm_pmu_overflow_set(struct kvm_vcpu *vcpu, u64 val) {}
90static inline void kvm_pmu_flush_hwstate(struct kvm_vcpu *vcpu) {} 88static inline void kvm_pmu_flush_hwstate(struct kvm_vcpu *vcpu) {}
91static inline void kvm_pmu_sync_hwstate(struct kvm_vcpu *vcpu) {} 89static inline void kvm_pmu_sync_hwstate(struct kvm_vcpu *vcpu) {}
92static inline bool kvm_pmu_should_notify_user(struct kvm_vcpu *vcpu) 90static inline bool kvm_pmu_should_notify_user(struct kvm_vcpu *vcpu)
diff --git a/include/linux/ceph/osd_client.h b/include/linux/ceph/osd_client.h
index c6d96a5f46fd..adf670ecaf94 100644
--- a/include/linux/ceph/osd_client.h
+++ b/include/linux/ceph/osd_client.h
@@ -148,6 +148,7 @@ struct ceph_osd_request_target {
148 int size; 148 int size;
149 int min_size; 149 int min_size;
150 bool sort_bitwise; 150 bool sort_bitwise;
151 bool recovery_deletes;
151 152
152 unsigned int flags; /* CEPH_OSD_FLAG_* */ 153 unsigned int flags; /* CEPH_OSD_FLAG_* */
153 bool paused; 154 bool paused;
diff --git a/include/linux/ceph/osdmap.h b/include/linux/ceph/osdmap.h
index a0996cb9faed..af3444a5bfdd 100644
--- a/include/linux/ceph/osdmap.h
+++ b/include/linux/ceph/osdmap.h
@@ -272,6 +272,8 @@ bool ceph_is_new_interval(const struct ceph_osds *old_acting,
272 u32 new_pg_num, 272 u32 new_pg_num,
273 bool old_sort_bitwise, 273 bool old_sort_bitwise,
274 bool new_sort_bitwise, 274 bool new_sort_bitwise,
275 bool old_recovery_deletes,
276 bool new_recovery_deletes,
275 const struct ceph_pg *pgid); 277 const struct ceph_pg *pgid);
276bool ceph_osds_changed(const struct ceph_osds *old_acting, 278bool ceph_osds_changed(const struct ceph_osds *old_acting,
277 const struct ceph_osds *new_acting, 279 const struct ceph_osds *new_acting,
diff --git a/include/linux/ceph/rados.h b/include/linux/ceph/rados.h
index 385db08bb8b2..b8281feda9c7 100644
--- a/include/linux/ceph/rados.h
+++ b/include/linux/ceph/rados.h
@@ -158,6 +158,10 @@ extern const char *ceph_osd_state_name(int s);
158#define CEPH_OSDMAP_NOTIERAGENT (1<<13) /* disable tiering agent */ 158#define CEPH_OSDMAP_NOTIERAGENT (1<<13) /* disable tiering agent */
159#define CEPH_OSDMAP_NOREBALANCE (1<<14) /* block osd backfill unless pg is degraded */ 159#define CEPH_OSDMAP_NOREBALANCE (1<<14) /* block osd backfill unless pg is degraded */
160#define CEPH_OSDMAP_SORTBITWISE (1<<15) /* use bitwise hobject_t sort */ 160#define CEPH_OSDMAP_SORTBITWISE (1<<15) /* use bitwise hobject_t sort */
161#define CEPH_OSDMAP_REQUIRE_JEWEL (1<<16) /* require jewel for booting osds */
162#define CEPH_OSDMAP_REQUIRE_KRAKEN (1<<17) /* require kraken for booting osds */
163#define CEPH_OSDMAP_REQUIRE_LUMINOUS (1<<18) /* require l for booting osds */
164#define CEPH_OSDMAP_RECOVERY_DELETES (1<<19) /* deletes performed during recovery instead of peering */
161 165
162/* 166/*
163 * The error code to return when an OSD can't handle a write 167 * The error code to return when an OSD can't handle a write
diff --git a/include/linux/cpuhotplug.h b/include/linux/cpuhotplug.h
index b56573bf440d..82b30e638430 100644
--- a/include/linux/cpuhotplug.h
+++ b/include/linux/cpuhotplug.h
@@ -39,8 +39,6 @@ enum cpuhp_state {
39 CPUHP_PCI_XGENE_DEAD, 39 CPUHP_PCI_XGENE_DEAD,
40 CPUHP_IOMMU_INTEL_DEAD, 40 CPUHP_IOMMU_INTEL_DEAD,
41 CPUHP_LUSTRE_CFS_DEAD, 41 CPUHP_LUSTRE_CFS_DEAD,
42 CPUHP_SCSI_BNX2FC_DEAD,
43 CPUHP_SCSI_BNX2I_DEAD,
44 CPUHP_WORKQUEUE_PREP, 42 CPUHP_WORKQUEUE_PREP,
45 CPUHP_POWER_NUMA_PREPARE, 43 CPUHP_POWER_NUMA_PREPARE,
46 CPUHP_HRTIMERS_PREPARE, 44 CPUHP_HRTIMERS_PREPARE,
diff --git a/include/linux/cpuset.h b/include/linux/cpuset.h
index 119a3f9604b0..898cfe2eeb42 100644
--- a/include/linux/cpuset.h
+++ b/include/linux/cpuset.h
@@ -18,6 +18,19 @@
18 18
19#ifdef CONFIG_CPUSETS 19#ifdef CONFIG_CPUSETS
20 20
21/*
22 * Static branch rewrites can happen in an arbitrary order for a given
23 * key. In code paths where we need to loop with read_mems_allowed_begin() and
24 * read_mems_allowed_retry() to get a consistent view of mems_allowed, we need
25 * to ensure that begin() always gets rewritten before retry() in the
26 * disabled -> enabled transition. If not, then if local irqs are disabled
27 * around the loop, we can deadlock since retry() would always be
28 * comparing the latest value of the mems_allowed seqcount against 0 as
29 * begin() still would see cpusets_enabled() as false. The enabled -> disabled
30 * transition should happen in reverse order for the same reasons (want to stop
31 * looking at real value of mems_allowed.sequence in retry() first).
32 */
33extern struct static_key_false cpusets_pre_enable_key;
21extern struct static_key_false cpusets_enabled_key; 34extern struct static_key_false cpusets_enabled_key;
22static inline bool cpusets_enabled(void) 35static inline bool cpusets_enabled(void)
23{ 36{
@@ -32,12 +45,14 @@ static inline int nr_cpusets(void)
32 45
33static inline void cpuset_inc(void) 46static inline void cpuset_inc(void)
34{ 47{
48 static_branch_inc(&cpusets_pre_enable_key);
35 static_branch_inc(&cpusets_enabled_key); 49 static_branch_inc(&cpusets_enabled_key);
36} 50}
37 51
38static inline void cpuset_dec(void) 52static inline void cpuset_dec(void)
39{ 53{
40 static_branch_dec(&cpusets_enabled_key); 54 static_branch_dec(&cpusets_enabled_key);
55 static_branch_dec(&cpusets_pre_enable_key);
41} 56}
42 57
43extern int cpuset_init(void); 58extern int cpuset_init(void);
@@ -115,7 +130,7 @@ extern void cpuset_print_current_mems_allowed(void);
115 */ 130 */
116static inline unsigned int read_mems_allowed_begin(void) 131static inline unsigned int read_mems_allowed_begin(void)
117{ 132{
118 if (!cpusets_enabled()) 133 if (!static_branch_unlikely(&cpusets_pre_enable_key))
119 return 0; 134 return 0;
120 135
121 return read_seqcount_begin(&current->mems_allowed_seq); 136 return read_seqcount_begin(&current->mems_allowed_seq);
@@ -129,7 +144,7 @@ static inline unsigned int read_mems_allowed_begin(void)
129 */ 144 */
130static inline bool read_mems_allowed_retry(unsigned int seq) 145static inline bool read_mems_allowed_retry(unsigned int seq)
131{ 146{
132 if (!cpusets_enabled()) 147 if (!static_branch_unlikely(&cpusets_enabled_key))
133 return false; 148 return false;
134 149
135 return read_seqcount_retry(&current->mems_allowed_seq, seq); 150 return read_seqcount_retry(&current->mems_allowed_seq, seq);
diff --git a/include/linux/crush/crush.h b/include/linux/crush/crush.h
index 92e165d417a6..07eed95e10c7 100644
--- a/include/linux/crush/crush.h
+++ b/include/linux/crush/crush.h
@@ -193,7 +193,7 @@ struct crush_choose_arg {
193struct crush_choose_arg_map { 193struct crush_choose_arg_map {
194#ifdef __KERNEL__ 194#ifdef __KERNEL__
195 struct rb_node node; 195 struct rb_node node;
196 u64 choose_args_index; 196 s64 choose_args_index;
197#endif 197#endif
198 struct crush_choose_arg *args; /*!< replacement for each bucket 198 struct crush_choose_arg *args; /*!< replacement for each bucket
199 in the crushmap */ 199 in the crushmap */
diff --git a/include/linux/dax.h b/include/linux/dax.h
index 794811875732..df97b7af7e2c 100644
--- a/include/linux/dax.h
+++ b/include/linux/dax.h
@@ -87,6 +87,7 @@ size_t dax_copy_from_iter(struct dax_device *dax_dev, pgoff_t pgoff, void *addr,
87void dax_flush(struct dax_device *dax_dev, pgoff_t pgoff, void *addr, 87void dax_flush(struct dax_device *dax_dev, pgoff_t pgoff, void *addr,
88 size_t size); 88 size_t size);
89void dax_write_cache(struct dax_device *dax_dev, bool wc); 89void dax_write_cache(struct dax_device *dax_dev, bool wc);
90bool dax_write_cache_enabled(struct dax_device *dax_dev);
90 91
91/* 92/*
92 * We use lowest available bit in exceptional entry for locking, one bit for 93 * We use lowest available bit in exceptional entry for locking, one bit for
diff --git a/include/linux/device.h b/include/linux/device.h
index 723cd54b94da..beabdbc08420 100644
--- a/include/linux/device.h
+++ b/include/linux/device.h
@@ -843,7 +843,7 @@ struct dev_links_info {
843 * hibernation, system resume and during runtime PM transitions 843 * hibernation, system resume and during runtime PM transitions
844 * along with subsystem-level and driver-level callbacks. 844 * along with subsystem-level and driver-level callbacks.
845 * @pins: For device pin management. 845 * @pins: For device pin management.
846 * See Documentation/pinctrl.txt for details. 846 * See Documentation/driver-api/pinctl.rst for details.
847 * @msi_list: Hosts MSI descriptors 847 * @msi_list: Hosts MSI descriptors
848 * @msi_domain: The generic MSI domain this device is using. 848 * @msi_domain: The generic MSI domain this device is using.
849 * @numa_node: NUMA node this device is close to. 849 * @numa_node: NUMA node this device is close to.
diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
index 843ab866e0f4..03c0196a6f24 100644
--- a/include/linux/dma-mapping.h
+++ b/include/linux/dma-mapping.h
@@ -157,16 +157,40 @@ static inline int is_device_dma_capable(struct device *dev)
157 * These three functions are only for dma allocator. 157 * These three functions are only for dma allocator.
158 * Don't use them in device drivers. 158 * Don't use them in device drivers.
159 */ 159 */
160int dma_alloc_from_coherent(struct device *dev, ssize_t size, 160int dma_alloc_from_dev_coherent(struct device *dev, ssize_t size,
161 dma_addr_t *dma_handle, void **ret); 161 dma_addr_t *dma_handle, void **ret);
162int dma_release_from_coherent(struct device *dev, int order, void *vaddr); 162int dma_release_from_dev_coherent(struct device *dev, int order, void *vaddr);
163 163
164int dma_mmap_from_coherent(struct device *dev, struct vm_area_struct *vma, 164int dma_mmap_from_dev_coherent(struct device *dev, struct vm_area_struct *vma,
165 void *cpu_addr, size_t size, int *ret); 165 void *cpu_addr, size_t size, int *ret);
166
167void *dma_alloc_from_global_coherent(ssize_t size, dma_addr_t *dma_handle);
168int dma_release_from_global_coherent(int order, void *vaddr);
169int dma_mmap_from_global_coherent(struct vm_area_struct *vma, void *cpu_addr,
170 size_t size, int *ret);
171
166#else 172#else
167#define dma_alloc_from_coherent(dev, size, handle, ret) (0) 173#define dma_alloc_from_dev_coherent(dev, size, handle, ret) (0)
168#define dma_release_from_coherent(dev, order, vaddr) (0) 174#define dma_release_from_dev_coherent(dev, order, vaddr) (0)
169#define dma_mmap_from_coherent(dev, vma, vaddr, order, ret) (0) 175#define dma_mmap_from_dev_coherent(dev, vma, vaddr, order, ret) (0)
176
177static inline void *dma_alloc_from_global_coherent(ssize_t size,
178 dma_addr_t *dma_handle)
179{
180 return NULL;
181}
182
183static inline int dma_release_from_global_coherent(int order, void *vaddr)
184{
185 return 0;
186}
187
188static inline int dma_mmap_from_global_coherent(struct vm_area_struct *vma,
189 void *cpu_addr, size_t size,
190 int *ret)
191{
192 return 0;
193}
170#endif /* CONFIG_HAVE_GENERIC_DMA_COHERENT */ 194#endif /* CONFIG_HAVE_GENERIC_DMA_COHERENT */
171 195
172#ifdef CONFIG_HAS_DMA 196#ifdef CONFIG_HAS_DMA
@@ -481,7 +505,7 @@ static inline void *dma_alloc_attrs(struct device *dev, size_t size,
481 505
482 BUG_ON(!ops); 506 BUG_ON(!ops);
483 507
484 if (dma_alloc_from_coherent(dev, size, dma_handle, &cpu_addr)) 508 if (dma_alloc_from_dev_coherent(dev, size, dma_handle, &cpu_addr))
485 return cpu_addr; 509 return cpu_addr;
486 510
487 if (!arch_dma_alloc_attrs(&dev, &flag)) 511 if (!arch_dma_alloc_attrs(&dev, &flag))
@@ -503,7 +527,7 @@ static inline void dma_free_attrs(struct device *dev, size_t size,
503 BUG_ON(!ops); 527 BUG_ON(!ops);
504 WARN_ON(irqs_disabled()); 528 WARN_ON(irqs_disabled());
505 529
506 if (dma_release_from_coherent(dev, get_order(size), cpu_addr)) 530 if (dma_release_from_dev_coherent(dev, get_order(size), cpu_addr))
507 return; 531 return;
508 532
509 if (!ops->free || !cpu_addr) 533 if (!ops->free || !cpu_addr)
diff --git a/include/linux/i2c.h b/include/linux/i2c.h
index 00ca5b86a753..d501d3956f13 100644
--- a/include/linux/i2c.h
+++ b/include/linux/i2c.h
@@ -689,7 +689,8 @@ i2c_unlock_adapter(struct i2c_adapter *adapter)
689#define I2C_CLASS_HWMON (1<<0) /* lm_sensors, ... */ 689#define I2C_CLASS_HWMON (1<<0) /* lm_sensors, ... */
690#define I2C_CLASS_DDC (1<<3) /* DDC bus on graphics adapters */ 690#define I2C_CLASS_DDC (1<<3) /* DDC bus on graphics adapters */
691#define I2C_CLASS_SPD (1<<7) /* Memory modules */ 691#define I2C_CLASS_SPD (1<<7) /* Memory modules */
692#define I2C_CLASS_DEPRECATED (1<<8) /* Warn users that adapter will stop using classes */ 692/* Warn users that the adapter doesn't support classes anymore */
693#define I2C_CLASS_DEPRECATED (1<<8)
693 694
694/* Internal numbers to terminate lists */ 695/* Internal numbers to terminate lists */
695#define I2C_CLIENT_END 0xfffeU 696#define I2C_CLIENT_END 0xfffeU
diff --git a/include/linux/ipv6.h b/include/linux/ipv6.h
index e1b442996f81..474d6bbc158c 100644
--- a/include/linux/ipv6.h
+++ b/include/linux/ipv6.h
@@ -128,6 +128,7 @@ struct inet6_skb_parm {
128#define IP6SKB_FRAGMENTED 16 128#define IP6SKB_FRAGMENTED 16
129#define IP6SKB_HOPBYHOP 32 129#define IP6SKB_HOPBYHOP 32
130#define IP6SKB_L3SLAVE 64 130#define IP6SKB_L3SLAVE 64
131#define IP6SKB_JUMBOGRAM 128
131}; 132};
132 133
133#if defined(CONFIG_NET_L3_MASTER_DEV) 134#if defined(CONFIG_NET_L3_MASTER_DEV)
@@ -152,6 +153,11 @@ static inline int inet6_iif(const struct sk_buff *skb)
152 return l3_slave ? skb->skb_iif : IP6CB(skb)->iif; 153 return l3_slave ? skb->skb_iif : IP6CB(skb)->iif;
153} 154}
154 155
156static inline bool inet6_is_jumbogram(const struct sk_buff *skb)
157{
158 return !!(IP6CB(skb)->flags & IP6SKB_JUMBOGRAM);
159}
160
155/* can not be used in TCP layer after tcp_v6_fill_cb */ 161/* can not be used in TCP layer after tcp_v6_fill_cb */
156static inline bool inet6_exact_dif_match(struct net *net, struct sk_buff *skb) 162static inline bool inet6_exact_dif_match(struct net *net, struct sk_buff *skb)
157{ 163{
diff --git a/include/linux/irq.h b/include/linux/irq.h
index 00db35b61e9e..d2d543794093 100644
--- a/include/linux/irq.h
+++ b/include/linux/irq.h
@@ -388,7 +388,12 @@ static inline irq_hw_number_t irqd_to_hwirq(struct irq_data *d)
388 * @irq_mask_ack: ack and mask an interrupt source 388 * @irq_mask_ack: ack and mask an interrupt source
389 * @irq_unmask: unmask an interrupt source 389 * @irq_unmask: unmask an interrupt source
390 * @irq_eoi: end of interrupt 390 * @irq_eoi: end of interrupt
391 * @irq_set_affinity: set the CPU affinity on SMP machines 391 * @irq_set_affinity: Set the CPU affinity on SMP machines. If the force
392 * argument is true, it tells the driver to
393 * unconditionally apply the affinity setting. Sanity
394 * checks against the supplied affinity mask are not
395 * required. This is used for CPU hotplug where the
396 * target CPU is not yet set in the cpu_online_mask.
392 * @irq_retrigger: resend an IRQ to the CPU 397 * @irq_retrigger: resend an IRQ to the CPU
393 * @irq_set_type: set the flow type (IRQ_TYPE_LEVEL/etc.) of an IRQ 398 * @irq_set_type: set the flow type (IRQ_TYPE_LEVEL/etc.) of an IRQ
394 * @irq_set_wake: enable/disable power-management wake-on of an IRQ 399 * @irq_set_wake: enable/disable power-management wake-on of an IRQ
diff --git a/include/linux/kthread.h b/include/linux/kthread.h
index 4fec8b775895..82e197eeac91 100644
--- a/include/linux/kthread.h
+++ b/include/linux/kthread.h
@@ -15,7 +15,7 @@ struct task_struct *kthread_create_on_node(int (*threadfn)(void *data),
15 * @threadfn: the function to run in the thread 15 * @threadfn: the function to run in the thread
16 * @data: data pointer for @threadfn() 16 * @data: data pointer for @threadfn()
17 * @namefmt: printf-style format string for the thread name 17 * @namefmt: printf-style format string for the thread name
18 * @...: arguments for @namefmt. 18 * @arg...: arguments for @namefmt.
19 * 19 *
20 * This macro will create a kthread on the current node, leaving it in 20 * This macro will create a kthread on the current node, leaving it in
21 * the stopped state. This is just a helper for kthread_create_on_node(); 21 * the stopped state. This is just a helper for kthread_create_on_node();
diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
index 648b34cabb38..21a6fd6c44af 100644
--- a/include/linux/kvm_host.h
+++ b/include/linux/kvm_host.h
@@ -445,6 +445,7 @@ struct kvm {
445 struct kvm_stat_data **debugfs_stat_data; 445 struct kvm_stat_data **debugfs_stat_data;
446 struct srcu_struct srcu; 446 struct srcu_struct srcu;
447 struct srcu_struct irq_srcu; 447 struct srcu_struct irq_srcu;
448 pid_t userspace_pid;
448}; 449};
449 450
450#define kvm_err(fmt, ...) \ 451#define kvm_err(fmt, ...) \
@@ -476,7 +477,8 @@ struct kvm {
476static inline struct kvm_io_bus *kvm_get_bus(struct kvm *kvm, enum kvm_bus idx) 477static inline struct kvm_io_bus *kvm_get_bus(struct kvm *kvm, enum kvm_bus idx)
477{ 478{
478 return srcu_dereference_check(kvm->buses[idx], &kvm->srcu, 479 return srcu_dereference_check(kvm->buses[idx], &kvm->srcu,
479 lockdep_is_held(&kvm->slots_lock)); 480 lockdep_is_held(&kvm->slots_lock) ||
481 !refcount_read(&kvm->users_count));
480} 482}
481 483
482static inline struct kvm_vcpu *kvm_get_vcpu(struct kvm *kvm, int i) 484static inline struct kvm_vcpu *kvm_get_vcpu(struct kvm *kvm, int i)
@@ -569,7 +571,8 @@ void kvm_put_kvm(struct kvm *kvm);
569static inline struct kvm_memslots *__kvm_memslots(struct kvm *kvm, int as_id) 571static inline struct kvm_memslots *__kvm_memslots(struct kvm *kvm, int as_id)
570{ 572{
571 return srcu_dereference_check(kvm->memslots[as_id], &kvm->srcu, 573 return srcu_dereference_check(kvm->memslots[as_id], &kvm->srcu,
572 lockdep_is_held(&kvm->slots_lock)); 574 lockdep_is_held(&kvm->slots_lock) ||
575 !refcount_read(&kvm->users_count));
573} 576}
574 577
575static inline struct kvm_memslots *kvm_memslots(struct kvm *kvm) 578static inline struct kvm_memslots *kvm_memslots(struct kvm *kvm)
diff --git a/include/linux/libata.h b/include/linux/libata.h
index 55de3da58b1c..931c32f1f18d 100644
--- a/include/linux/libata.h
+++ b/include/linux/libata.h
@@ -435,7 +435,7 @@ enum {
435 ATA_HORKAGE_NOLPM = (1 << 20), /* don't use LPM */ 435 ATA_HORKAGE_NOLPM = (1 << 20), /* don't use LPM */
436 ATA_HORKAGE_WD_BROKEN_LPM = (1 << 21), /* some WDs have broken LPM */ 436 ATA_HORKAGE_WD_BROKEN_LPM = (1 << 21), /* some WDs have broken LPM */
437 ATA_HORKAGE_ZERO_AFTER_TRIM = (1 << 22),/* guarantees zero after trim */ 437 ATA_HORKAGE_ZERO_AFTER_TRIM = (1 << 22),/* guarantees zero after trim */
438 ATA_HORKAGE_NO_NCQ_LOG = (1 << 23), /* don't use NCQ for log read */ 438 ATA_HORKAGE_NO_DMA_LOG = (1 << 23), /* don't use DMA for log read */
439 ATA_HORKAGE_NOTRIM = (1 << 24), /* don't use TRIM */ 439 ATA_HORKAGE_NOTRIM = (1 << 24), /* don't use TRIM */
440 ATA_HORKAGE_MAX_SEC_1024 = (1 << 25), /* Limit max sects to 1024 */ 440 ATA_HORKAGE_MAX_SEC_1024 = (1 << 25), /* Limit max sects to 1024 */
441 441
diff --git a/include/linux/mlx4/device.h b/include/linux/mlx4/device.h
index aad5d81dfb44..b54517c05e9a 100644
--- a/include/linux/mlx4/device.h
+++ b/include/linux/mlx4/device.h
@@ -620,6 +620,7 @@ struct mlx4_caps {
620 u32 dmfs_high_rate_qpn_base; 620 u32 dmfs_high_rate_qpn_base;
621 u32 dmfs_high_rate_qpn_range; 621 u32 dmfs_high_rate_qpn_range;
622 u32 vf_caps; 622 u32 vf_caps;
623 bool wol_port[MLX4_MAX_PORTS + 1];
623 struct mlx4_rate_limit_caps rl_caps; 624 struct mlx4_rate_limit_caps rl_caps;
624}; 625};
625 626
diff --git a/include/linux/mlx5/mlx5_ifc.h b/include/linux/mlx5/mlx5_ifc.h
index 87869c04849a..3030121b4746 100644
--- a/include/linux/mlx5/mlx5_ifc.h
+++ b/include/linux/mlx5/mlx5_ifc.h
@@ -7749,8 +7749,10 @@ struct mlx5_ifc_pcam_reg_bits {
7749}; 7749};
7750 7750
7751struct mlx5_ifc_mcam_enhanced_features_bits { 7751struct mlx5_ifc_mcam_enhanced_features_bits {
7752 u8 reserved_at_0[0x7f]; 7752 u8 reserved_at_0[0x7d];
7753 7753
7754 u8 mtpps_enh_out_per_adj[0x1];
7755 u8 mtpps_fs[0x1];
7754 u8 pcie_performance_group[0x1]; 7756 u8 pcie_performance_group[0x1];
7755}; 7757};
7756 7758
@@ -8159,7 +8161,8 @@ struct mlx5_ifc_mtpps_reg_bits {
8159 u8 reserved_at_78[0x4]; 8161 u8 reserved_at_78[0x4];
8160 u8 cap_pin_4_mode[0x4]; 8162 u8 cap_pin_4_mode[0x4];
8161 8163
8162 u8 reserved_at_80[0x80]; 8164 u8 field_select[0x20];
8165 u8 reserved_at_a0[0x60];
8163 8166
8164 u8 enable[0x1]; 8167 u8 enable[0x1];
8165 u8 reserved_at_101[0xb]; 8168 u8 reserved_at_101[0xb];
@@ -8174,8 +8177,9 @@ struct mlx5_ifc_mtpps_reg_bits {
8174 8177
8175 u8 out_pulse_duration[0x10]; 8178 u8 out_pulse_duration[0x10];
8176 u8 out_periodic_adjustment[0x10]; 8179 u8 out_periodic_adjustment[0x10];
8180 u8 enhanced_out_periodic_adjustment[0x20];
8177 8181
8178 u8 reserved_at_1a0[0x60]; 8182 u8 reserved_at_1c0[0x20];
8179}; 8183};
8180 8184
8181struct mlx5_ifc_mtppse_reg_bits { 8185struct mlx5_ifc_mtppse_reg_bits {
diff --git a/include/linux/mlx5/qp.h b/include/linux/mlx5/qp.h
index 6f41270d80c0..f378dc0e7eaf 100644
--- a/include/linux/mlx5/qp.h
+++ b/include/linux/mlx5/qp.h
@@ -212,7 +212,6 @@ struct mlx5_wqe_ctrl_seg {
212#define MLX5_WQE_CTRL_OPCODE_MASK 0xff 212#define MLX5_WQE_CTRL_OPCODE_MASK 0xff
213#define MLX5_WQE_CTRL_WQE_INDEX_MASK 0x00ffff00 213#define MLX5_WQE_CTRL_WQE_INDEX_MASK 0x00ffff00
214#define MLX5_WQE_CTRL_WQE_INDEX_SHIFT 8 214#define MLX5_WQE_CTRL_WQE_INDEX_SHIFT 8
215#define MLX5_WQE_AV_EXT 0x80000000
216 215
217enum { 216enum {
218 MLX5_ETH_WQE_L3_INNER_CSUM = 1 << 4, 217 MLX5_ETH_WQE_L3_INNER_CSUM = 1 << 4,
diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
index ff151814a02d..7f384bb62d8e 100644
--- a/include/linux/mm_types.h
+++ b/include/linux/mm_types.h
@@ -495,6 +495,10 @@ struct mm_struct {
495 */ 495 */
496 bool tlb_flush_pending; 496 bool tlb_flush_pending;
497#endif 497#endif
498#ifdef CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH
499 /* See flush_tlb_batched_pending() */
500 bool tlb_flush_batched;
501#endif
498 struct uprobes_state uprobes_state; 502 struct uprobes_state uprobes_state;
499#ifdef CONFIG_HUGETLB_PAGE 503#ifdef CONFIG_HUGETLB_PAGE
500 atomic_long_t hugetlb_usage; 504 atomic_long_t hugetlb_usage;
diff --git a/include/linux/mtd/nand.h b/include/linux/mtd/nand.h
index 892148c448cc..5216d2eb2289 100644
--- a/include/linux/mtd/nand.h
+++ b/include/linux/mtd/nand.h
@@ -681,10 +681,10 @@ struct nand_buffers {
681 * @tWW_min: WP# transition to WE# low 681 * @tWW_min: WP# transition to WE# low
682 */ 682 */
683struct nand_sdr_timings { 683struct nand_sdr_timings {
684 u32 tBERS_max; 684 u64 tBERS_max;
685 u32 tCCS_min; 685 u32 tCCS_min;
686 u32 tPROG_max; 686 u64 tPROG_max;
687 u32 tR_max; 687 u64 tR_max;
688 u32 tALH_min; 688 u32 tALH_min;
689 u32 tADL_min; 689 u32 tADL_min;
690 u32 tALS_min; 690 u32 tALS_min;
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h
index ca3bcc4ed4e5..62cbcb842f99 100644
--- a/include/linux/nfs_xdr.h
+++ b/include/linux/nfs_xdr.h
@@ -1235,7 +1235,7 @@ struct nfs41_state_protection {
1235 1235
1236struct nfs41_exchange_id_args { 1236struct nfs41_exchange_id_args {
1237 struct nfs_client *client; 1237 struct nfs_client *client;
1238 nfs4_verifier *verifier; 1238 nfs4_verifier verifier;
1239 u32 flags; 1239 u32 flags;
1240 struct nfs41_state_protection state_protect; 1240 struct nfs41_state_protection state_protect;
1241}; 1241};
diff --git a/include/linux/nvme-fc.h b/include/linux/nvme-fc.h
index 21c37e39e41a..36cca93a5ff2 100644
--- a/include/linux/nvme-fc.h
+++ b/include/linux/nvme-fc.h
@@ -334,5 +334,24 @@ struct fcnvme_ls_disconnect_acc {
334#define NVME_FC_LS_TIMEOUT_SEC 2 /* 2 seconds */ 334#define NVME_FC_LS_TIMEOUT_SEC 2 /* 2 seconds */
335#define NVME_FC_TGTOP_TIMEOUT_SEC 2 /* 2 seconds */ 335#define NVME_FC_TGTOP_TIMEOUT_SEC 2 /* 2 seconds */
336 336
337/*
338 * TRADDR string must be of form "nn-<16hexdigits>:pn-<16hexdigits>"
339 * the string is allowed to be specified with or without a "0x" prefix
340 * infront of the <16hexdigits>. Without is considered the "min" string
341 * and with is considered the "max" string. The hexdigits may be upper
342 * or lower case.
343 */
344#define NVME_FC_TRADDR_NNLEN 3 /* "?n-" */
345#define NVME_FC_TRADDR_OXNNLEN 5 /* "?n-0x" */
346#define NVME_FC_TRADDR_HEXNAMELEN 16
347#define NVME_FC_TRADDR_MINLENGTH \
348 (2 * (NVME_FC_TRADDR_NNLEN + NVME_FC_TRADDR_HEXNAMELEN) + 1)
349#define NVME_FC_TRADDR_MAXLENGTH \
350 (2 * (NVME_FC_TRADDR_OXNNLEN + NVME_FC_TRADDR_HEXNAMELEN) + 1)
351#define NVME_FC_TRADDR_MIN_PN_OFFSET \
352 (NVME_FC_TRADDR_NNLEN + NVME_FC_TRADDR_HEXNAMELEN + 1)
353#define NVME_FC_TRADDR_MAX_PN_OFFSET \
354 (NVME_FC_TRADDR_OXNNLEN + NVME_FC_TRADDR_HEXNAMELEN + 1)
355
337 356
338#endif /* _NVME_FC_H */ 357#endif /* _NVME_FC_H */
diff --git a/include/linux/nvme.h b/include/linux/nvme.h
index bc74da018bdc..25d8225dbd04 100644
--- a/include/linux/nvme.h
+++ b/include/linux/nvme.h
@@ -1006,7 +1006,7 @@ static inline bool nvme_is_write(struct nvme_command *cmd)
1006 * Why can't we simply have a Fabrics In and Fabrics out command? 1006 * Why can't we simply have a Fabrics In and Fabrics out command?
1007 */ 1007 */
1008 if (unlikely(cmd->common.opcode == nvme_fabrics_command)) 1008 if (unlikely(cmd->common.opcode == nvme_fabrics_command))
1009 return cmd->fabrics.opcode & 1; 1009 return cmd->fabrics.fctype & 1;
1010 return cmd->common.opcode & 1; 1010 return cmd->common.opcode & 1;
1011} 1011}
1012 1012
diff --git a/include/linux/pagemap.h b/include/linux/pagemap.h
index baa9344dcd10..79b36f57c3ba 100644
--- a/include/linux/pagemap.h
+++ b/include/linux/pagemap.h
@@ -163,8 +163,6 @@ void release_pages(struct page **pages, int nr, bool cold);
163 */ 163 */
164static inline int page_cache_get_speculative(struct page *page) 164static inline int page_cache_get_speculative(struct page *page)
165{ 165{
166 VM_BUG_ON(in_interrupt());
167
168#ifdef CONFIG_TINY_RCU 166#ifdef CONFIG_TINY_RCU
169# ifdef CONFIG_PREEMPT_COUNT 167# ifdef CONFIG_PREEMPT_COUNT
170 VM_BUG_ON(!in_atomic() && !irqs_disabled()); 168 VM_BUG_ON(!in_atomic() && !irqs_disabled());
diff --git a/include/linux/perf/arm_pmu.h b/include/linux/perf/arm_pmu.h
index 1360dd6d5e61..af0f44effd44 100644
--- a/include/linux/perf/arm_pmu.h
+++ b/include/linux/perf/arm_pmu.h
@@ -24,10 +24,14 @@
24 * interrupt and passed the address of the low level handler, 24 * interrupt and passed the address of the low level handler,
25 * and can be used to implement any platform specific handling 25 * and can be used to implement any platform specific handling
26 * before or after calling it. 26 * before or after calling it.
27 *
28 * @irq_flags: if non-zero, these flags will be passed to request_irq
29 * when requesting interrupts for this PMU device.
27 */ 30 */
28struct arm_pmu_platdata { 31struct arm_pmu_platdata {
29 irqreturn_t (*handle_irq)(int irq, void *dev, 32 irqreturn_t (*handle_irq)(int irq, void *dev,
30 irq_handler_t pmu_handler); 33 irq_handler_t pmu_handler);
34 unsigned long irq_flags;
31}; 35};
32 36
33#ifdef CONFIG_ARM_PMU 37#ifdef CONFIG_ARM_PMU
diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
index a3b873fc59e4..b14095bcf4bb 100644
--- a/include/linux/perf_event.h
+++ b/include/linux/perf_event.h
@@ -310,8 +310,8 @@ struct pmu {
310 * Notification that the event was mapped or unmapped. Called 310 * Notification that the event was mapped or unmapped. Called
311 * in the context of the mapping task. 311 * in the context of the mapping task.
312 */ 312 */
313 void (*event_mapped) (struct perf_event *event); /*optional*/ 313 void (*event_mapped) (struct perf_event *event, struct mm_struct *mm); /* optional */
314 void (*event_unmapped) (struct perf_event *event); /*optional*/ 314 void (*event_unmapped) (struct perf_event *event, struct mm_struct *mm); /* optional */
315 315
316 /* 316 /*
317 * Flags for ->add()/->del()/ ->start()/->stop(). There are 317 * Flags for ->add()/->del()/ ->start()/->stop(). There are
diff --git a/include/linux/phy.h b/include/linux/phy.h
index 2a9567bb8186..0bb5b212ab42 100644
--- a/include/linux/phy.h
+++ b/include/linux/phy.h
@@ -830,7 +830,7 @@ static inline int phy_read_status(struct phy_device *phydev)
830 dev_err(&_phydev->mdio.dev, format, ##args) 830 dev_err(&_phydev->mdio.dev, format, ##args)
831 831
832#define phydev_dbg(_phydev, format, args...) \ 832#define phydev_dbg(_phydev, format, args...) \
833 dev_dbg(&_phydev->mdio.dev, format, ##args); 833 dev_dbg(&_phydev->mdio.dev, format, ##args)
834 834
835static inline const char *phydev_name(const struct phy_device *phydev) 835static inline const char *phydev_name(const struct phy_device *phydev)
836{ 836{
diff --git a/include/linux/pinctrl/pinconf-generic.h b/include/linux/pinctrl/pinconf-generic.h
index 231d3075815a..e91d1b6a260d 100644
--- a/include/linux/pinctrl/pinconf-generic.h
+++ b/include/linux/pinctrl/pinconf-generic.h
@@ -81,8 +81,8 @@
81 * it. 81 * it.
82 * @PIN_CONFIG_OUTPUT: this will configure the pin as an output and drive a 82 * @PIN_CONFIG_OUTPUT: this will configure the pin as an output and drive a
83 * value on the line. Use argument 1 to indicate high level, argument 0 to 83 * value on the line. Use argument 1 to indicate high level, argument 0 to
84 * indicate low level. (Please see Documentation/pinctrl.txt, section 84 * indicate low level. (Please see Documentation/driver-api/pinctl.rst,
85 * "GPIO mode pitfalls" for a discussion around this parameter.) 85 * section "GPIO mode pitfalls" for a discussion around this parameter.)
86 * @PIN_CONFIG_POWER_SOURCE: if the pin can select between different power 86 * @PIN_CONFIG_POWER_SOURCE: if the pin can select between different power
87 * supplies, the argument to this parameter (on a custom format) tells 87 * supplies, the argument to this parameter (on a custom format) tells
88 * the driver which alternative power source to use. 88 * the driver which alternative power source to use.
diff --git a/include/linux/platform_data/hsmmc-omap.h b/include/linux/platform_data/hsmmc-omap.h
index 8e981be2e2c2..0ff1e0dba720 100644
--- a/include/linux/platform_data/hsmmc-omap.h
+++ b/include/linux/platform_data/hsmmc-omap.h
@@ -55,9 +55,6 @@ struct omap_hsmmc_platform_data {
55 u32 caps; /* Used for the MMC driver on 2430 and later */ 55 u32 caps; /* Used for the MMC driver on 2430 and later */
56 u32 pm_caps; /* PM capabilities of the mmc */ 56 u32 pm_caps; /* PM capabilities of the mmc */
57 57
58 /* use the internal clock */
59 unsigned internal_clock:1;
60
61 /* nonremovable e.g. eMMC */ 58 /* nonremovable e.g. eMMC */
62 unsigned nonremovable:1; 59 unsigned nonremovable:1;
63 60
@@ -73,13 +70,6 @@ struct omap_hsmmc_platform_data {
73 int gpio_cd; /* gpio (card detect) */ 70 int gpio_cd; /* gpio (card detect) */
74 int gpio_cod; /* gpio (cover detect) */ 71 int gpio_cod; /* gpio (cover detect) */
75 int gpio_wp; /* gpio (write protect) */ 72 int gpio_wp; /* gpio (write protect) */
76
77 int (*set_power)(struct device *dev, int power_on, int vdd);
78 void (*remux)(struct device *dev, int power_on);
79 /* Call back before enabling / disabling regulators */
80 void (*before_set_reg)(struct device *dev, int power_on, int vdd);
81 /* Call back after enabling / disabling regulators */
82 void (*after_set_reg)(struct device *dev, int power_on, int vdd);
83 /* if we have special card, init it using this callback */ 73 /* if we have special card, init it using this callback */
84 void (*init_card)(struct mmc_card *card); 74 void (*init_card)(struct mmc_card *card);
85 75
diff --git a/include/linux/ptp_clock_kernel.h b/include/linux/ptp_clock_kernel.h
index a026bfd089db..51349d124ee5 100644
--- a/include/linux/ptp_clock_kernel.h
+++ b/include/linux/ptp_clock_kernel.h
@@ -99,6 +99,11 @@ struct system_device_crosststamp;
99 * parameter func: the desired function to use. 99 * parameter func: the desired function to use.
100 * parameter chan: the function channel index to use. 100 * parameter chan: the function channel index to use.
101 * 101 *
102 * @do_work: Request driver to perform auxiliary (periodic) operations
103 * Driver should return delay of the next auxiliary work scheduling
104 * time (>=0) or negative value in case further scheduling
105 * is not required.
106 *
102 * Drivers should embed their ptp_clock_info within a private 107 * Drivers should embed their ptp_clock_info within a private
103 * structure, obtaining a reference to it using container_of(). 108 * structure, obtaining a reference to it using container_of().
104 * 109 *
@@ -126,6 +131,7 @@ struct ptp_clock_info {
126 struct ptp_clock_request *request, int on); 131 struct ptp_clock_request *request, int on);
127 int (*verify)(struct ptp_clock_info *ptp, unsigned int pin, 132 int (*verify)(struct ptp_clock_info *ptp, unsigned int pin,
128 enum ptp_pin_function func, unsigned int chan); 133 enum ptp_pin_function func, unsigned int chan);
134 long (*do_aux_work)(struct ptp_clock_info *ptp);
129}; 135};
130 136
131struct ptp_clock; 137struct ptp_clock;
@@ -211,6 +217,16 @@ extern int ptp_clock_index(struct ptp_clock *ptp);
211int ptp_find_pin(struct ptp_clock *ptp, 217int ptp_find_pin(struct ptp_clock *ptp,
212 enum ptp_pin_function func, unsigned int chan); 218 enum ptp_pin_function func, unsigned int chan);
213 219
220/**
221 * ptp_schedule_worker() - schedule ptp auxiliary work
222 *
223 * @ptp: The clock obtained from ptp_clock_register().
224 * @delay: number of jiffies to wait before queuing
225 * See kthread_queue_delayed_work() for more info.
226 */
227
228int ptp_schedule_worker(struct ptp_clock *ptp, unsigned long delay);
229
214#else 230#else
215static inline struct ptp_clock *ptp_clock_register(struct ptp_clock_info *info, 231static inline struct ptp_clock *ptp_clock_register(struct ptp_clock_info *info,
216 struct device *parent) 232 struct device *parent)
@@ -225,6 +241,10 @@ static inline int ptp_clock_index(struct ptp_clock *ptp)
225static inline int ptp_find_pin(struct ptp_clock *ptp, 241static inline int ptp_find_pin(struct ptp_clock *ptp,
226 enum ptp_pin_function func, unsigned int chan) 242 enum ptp_pin_function func, unsigned int chan)
227{ return -1; } 243{ return -1; }
244static inline int ptp_schedule_worker(struct ptp_clock *ptp,
245 unsigned long delay)
246{ return -EOPNOTSUPP; }
247
228#endif 248#endif
229 249
230#endif 250#endif
diff --git a/include/linux/uuid.h b/include/linux/uuid.h
index 2251e1925ea4..33b0bdbb613c 100644
--- a/include/linux/uuid.h
+++ b/include/linux/uuid.h
@@ -84,26 +84,12 @@ int guid_parse(const char *uuid, guid_t *u);
84int uuid_parse(const char *uuid, uuid_t *u); 84int uuid_parse(const char *uuid, uuid_t *u);
85 85
86/* backwards compatibility, don't use in new code */ 86/* backwards compatibility, don't use in new code */
87typedef uuid_t uuid_be;
88#define UUID_BE(a, _b, c, d0, d1, d2, d3, d4, d5, d6, d7) \
89 UUID_INIT(a, _b, c, d0, d1, d2, d3, d4, d5, d6, d7)
90#define NULL_UUID_BE \
91 UUID_BE(0x00000000, 0x0000, 0x0000, 0x00, 0x00, 0x00, 0x00, \
92 0x00, 0x00, 0x00, 0x00)
93
94#define uuid_le_gen(u) guid_gen(u) 87#define uuid_le_gen(u) guid_gen(u)
95#define uuid_be_gen(u) uuid_gen(u)
96#define uuid_le_to_bin(guid, u) guid_parse(guid, u) 88#define uuid_le_to_bin(guid, u) guid_parse(guid, u)
97#define uuid_be_to_bin(uuid, u) uuid_parse(uuid, u)
98 89
99static inline int uuid_le_cmp(const guid_t u1, const guid_t u2) 90static inline int uuid_le_cmp(const guid_t u1, const guid_t u2)
100{ 91{
101 return memcmp(&u1, &u2, sizeof(guid_t)); 92 return memcmp(&u1, &u2, sizeof(guid_t));
102} 93}
103 94
104static inline int uuid_be_cmp(const uuid_t u1, const uuid_t u2)
105{
106 return memcmp(&u1, &u2, sizeof(uuid_t));
107}
108
109#endif 95#endif
diff --git a/include/linux/vfio.h b/include/linux/vfio.h
index 586809abb273..a47b985341d1 100644
--- a/include/linux/vfio.h
+++ b/include/linux/vfio.h
@@ -152,7 +152,7 @@ extern int vfio_set_irqs_validate_and_prepare(struct vfio_irq_set *hdr,
152 size_t *data_size); 152 size_t *data_size);
153 153
154struct pci_dev; 154struct pci_dev;
155#ifdef CONFIG_EEH 155#if IS_ENABLED(CONFIG_VFIO_SPAPR_EEH)
156extern void vfio_spapr_pci_eeh_open(struct pci_dev *pdev); 156extern void vfio_spapr_pci_eeh_open(struct pci_dev *pdev);
157extern void vfio_spapr_pci_eeh_release(struct pci_dev *pdev); 157extern void vfio_spapr_pci_eeh_release(struct pci_dev *pdev);
158extern long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group, 158extern long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group,
@@ -173,7 +173,7 @@ static inline long vfio_spapr_iommu_eeh_ioctl(struct iommu_group *group,
173{ 173{
174 return -ENOTTY; 174 return -ENOTTY;
175} 175}
176#endif /* CONFIG_EEH */ 176#endif /* CONFIG_VFIO_SPAPR_EEH */
177 177
178/* 178/*
179 * IRQfd - generic 179 * IRQfd - generic
diff --git a/include/linux/wait.h b/include/linux/wait.h
index b289c96151ee..5b74e36c0ca8 100644
--- a/include/linux/wait.h
+++ b/include/linux/wait.h
@@ -529,13 +529,13 @@ do { \
529 529
530/** 530/**
531 * wait_event_interruptible_hrtimeout - sleep until a condition gets true or a timeout elapses 531 * wait_event_interruptible_hrtimeout - sleep until a condition gets true or a timeout elapses
532 * @wq_head: the waitqueue to wait on 532 * @wq: the waitqueue to wait on
533 * @condition: a C expression for the event to wait for 533 * @condition: a C expression for the event to wait for
534 * @timeout: timeout, as a ktime_t 534 * @timeout: timeout, as a ktime_t
535 * 535 *
536 * The process is put to sleep (TASK_INTERRUPTIBLE) until the 536 * The process is put to sleep (TASK_INTERRUPTIBLE) until the
537 * @condition evaluates to true or a signal is received. 537 * @condition evaluates to true or a signal is received.
538 * The @condition is checked each time the waitqueue @wq_head is woken up. 538 * The @condition is checked each time the waitqueue @wq is woken up.
539 * 539 *
540 * wake_up() has to be called after changing any variable that could 540 * wake_up() has to be called after changing any variable that could
541 * change the result of the wait condition. 541 * change the result of the wait condition.
@@ -735,12 +735,12 @@ extern int do_wait_intr_irq(wait_queue_head_t *, wait_queue_entry_t *);
735 735
736/** 736/**
737 * wait_event_killable - sleep until a condition gets true 737 * wait_event_killable - sleep until a condition gets true
738 * @wq: the waitqueue to wait on 738 * @wq_head: the waitqueue to wait on
739 * @condition: a C expression for the event to wait for 739 * @condition: a C expression for the event to wait for
740 * 740 *
741 * The process is put to sleep (TASK_KILLABLE) until the 741 * The process is put to sleep (TASK_KILLABLE) until the
742 * @condition evaluates to true or a signal is received. 742 * @condition evaluates to true or a signal is received.
743 * The @condition is checked each time the waitqueue @wq is woken up. 743 * The @condition is checked each time the waitqueue @wq_head is woken up.
744 * 744 *
745 * wake_up() has to be called after changing any variable that could 745 * wake_up() has to be called after changing any variable that could
746 * change the result of the wait condition. 746 * change the result of the wait condition.
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h
index c102ef65cb64..db6dc9dc0482 100644
--- a/include/linux/workqueue.h
+++ b/include/linux/workqueue.h
@@ -323,6 +323,7 @@ enum {
323 323
324 __WQ_DRAINING = 1 << 16, /* internal: workqueue is draining */ 324 __WQ_DRAINING = 1 << 16, /* internal: workqueue is draining */
325 __WQ_ORDERED = 1 << 17, /* internal: workqueue is ordered */ 325 __WQ_ORDERED = 1 << 17, /* internal: workqueue is ordered */
326 __WQ_ORDERED_EXPLICIT = 1 << 18, /* internal: alloc_ordered_workqueue() */
326 __WQ_LEGACY = 1 << 18, /* internal: create*_workqueue() */ 327 __WQ_LEGACY = 1 << 18, /* internal: create*_workqueue() */
327 328
328 WQ_MAX_ACTIVE = 512, /* I like 512, better ideas? */ 329 WQ_MAX_ACTIVE = 512, /* I like 512, better ideas? */
@@ -422,7 +423,8 @@ __alloc_workqueue_key(const char *fmt, unsigned int flags, int max_active,
422 * Pointer to the allocated workqueue on success, %NULL on failure. 423 * Pointer to the allocated workqueue on success, %NULL on failure.
423 */ 424 */
424#define alloc_ordered_workqueue(fmt, flags, args...) \ 425#define alloc_ordered_workqueue(fmt, flags, args...) \
425 alloc_workqueue(fmt, WQ_UNBOUND | __WQ_ORDERED | (flags), 1, ##args) 426 alloc_workqueue(fmt, WQ_UNBOUND | __WQ_ORDERED | \
427 __WQ_ORDERED_EXPLICIT | (flags), 1, ##args)
426 428
427#define create_workqueue(name) \ 429#define create_workqueue(name) \
428 alloc_workqueue("%s", __WQ_LEGACY | WQ_MEM_RECLAIM, 1, (name)) 430 alloc_workqueue("%s", __WQ_LEGACY | WQ_MEM_RECLAIM, 1, (name))
diff --git a/include/media/cec-notifier.h b/include/media/cec-notifier.h
index 298f996969df..a4f7429c4ae5 100644
--- a/include/media/cec-notifier.h
+++ b/include/media/cec-notifier.h
@@ -57,6 +57,7 @@ void cec_notifier_put(struct cec_notifier *n);
57 * @pa: the CEC physical address 57 * @pa: the CEC physical address
58 * 58 *
59 * Set a new CEC physical address. 59 * Set a new CEC physical address.
60 * Does nothing if @n == NULL.
60 */ 61 */
61void cec_notifier_set_phys_addr(struct cec_notifier *n, u16 pa); 62void cec_notifier_set_phys_addr(struct cec_notifier *n, u16 pa);
62 63
@@ -66,6 +67,7 @@ void cec_notifier_set_phys_addr(struct cec_notifier *n, u16 pa);
66 * @edid: the struct edid pointer 67 * @edid: the struct edid pointer
67 * 68 *
68 * Parses the EDID to obtain the new CEC physical address and set it. 69 * Parses the EDID to obtain the new CEC physical address and set it.
70 * Does nothing if @n == NULL.
69 */ 71 */
70void cec_notifier_set_phys_addr_from_edid(struct cec_notifier *n, 72void cec_notifier_set_phys_addr_from_edid(struct cec_notifier *n,
71 const struct edid *edid); 73 const struct edid *edid);
@@ -118,4 +120,17 @@ static inline void cec_notifier_unregister(struct cec_notifier *n)
118 120
119#endif 121#endif
120 122
123/**
124 * cec_notifier_phys_addr_invalidate() - set the physical address to INVALID
125 *
126 * @n: the CEC notifier
127 *
128 * This is a simple helper function to invalidate the physical
129 * address. Does nothing if @n == NULL.
130 */
131static inline void cec_notifier_phys_addr_invalidate(struct cec_notifier *n)
132{
133 cec_notifier_set_phys_addr(n, CEC_PHYS_ADDR_INVALID);
134}
135
121#endif 136#endif
diff --git a/include/media/davinci/dm644x_ccdc.h b/include/media/davinci/dm644x_ccdc.h
index 7c909da29d43..6ea2ce241851 100644
--- a/include/media/davinci/dm644x_ccdc.h
+++ b/include/media/davinci/dm644x_ccdc.h
@@ -103,16 +103,6 @@ struct ccdc_black_compensation {
103 char gb; 103 char gb;
104}; 104};
105 105
106/* structure for fault pixel correction */
107struct ccdc_fault_pixel {
108 /* Enable or Disable fault pixel correction */
109 unsigned char enable;
110 /* Number of fault pixel */
111 unsigned short fp_num;
112 /* Address of fault pixel table */
113 unsigned long fpc_table_addr;
114};
115
116/* Structure for CCDC configuration parameters for raw capture mode passed 106/* Structure for CCDC configuration parameters for raw capture mode passed
117 * by application 107 * by application
118 */ 108 */
@@ -125,8 +115,6 @@ struct ccdc_config_params_raw {
125 struct ccdc_black_clamp blk_clamp; 115 struct ccdc_black_clamp blk_clamp;
126 /* Structure for Black Compensation */ 116 /* Structure for Black Compensation */
127 struct ccdc_black_compensation blk_comp; 117 struct ccdc_black_compensation blk_comp;
128 /* Structure for Fault Pixel Module Configuration */
129 struct ccdc_fault_pixel fault_pxl;
130}; 118};
131 119
132 120
diff --git a/include/media/davinci/vpfe_capture.h b/include/media/davinci/vpfe_capture.h
index 8e1a4d88daa0..f003533602d0 100644
--- a/include/media/davinci/vpfe_capture.h
+++ b/include/media/davinci/vpfe_capture.h
@@ -183,14 +183,4 @@ struct vpfe_config_params {
183}; 183};
184 184
185#endif /* End of __KERNEL__ */ 185#endif /* End of __KERNEL__ */
186/**
187 * VPFE_CMD_S_CCDC_RAW_PARAMS - EXPERIMENTAL IOCTL to set raw capture params
188 * This can be used to configure modules such as defect pixel correction,
189 * color space conversion, culling etc. This is an experimental ioctl that
190 * will change in future kernels. So use this ioctl with care !
191 * TODO: This is to be split into multiple ioctls and also explore the
192 * possibility of extending the v4l2 api to include this
193 **/
194#define VPFE_CMD_S_CCDC_RAW_PARAMS _IOW('V', BASE_VIDIOC_PRIVATE + 1, \
195 void *)
196#endif /* _DAVINCI_VPFE_H */ 186#endif /* _DAVINCI_VPFE_H */
diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h
index 980807d7506f..45fd4c6056b5 100644
--- a/include/net/sctp/sctp.h
+++ b/include/net/sctp/sctp.h
@@ -469,7 +469,7 @@ _sctp_walk_params((pos), (chunk), ntohs((chunk)->chunk_hdr.length), member)
469 469
470#define _sctp_walk_params(pos, chunk, end, member)\ 470#define _sctp_walk_params(pos, chunk, end, member)\
471for (pos.v = chunk->member;\ 471for (pos.v = chunk->member;\
472 (pos.v + offsetof(struct sctp_paramhdr, length) + sizeof(pos.p->length) <\ 472 (pos.v + offsetof(struct sctp_paramhdr, length) + sizeof(pos.p->length) <=\
473 (void *)chunk + end) &&\ 473 (void *)chunk + end) &&\
474 pos.v <= (void *)chunk + end - ntohs(pos.p->length) &&\ 474 pos.v <= (void *)chunk + end - ntohs(pos.p->length) &&\
475 ntohs(pos.p->length) >= sizeof(struct sctp_paramhdr);\ 475 ntohs(pos.p->length) >= sizeof(struct sctp_paramhdr);\
@@ -481,7 +481,7 @@ _sctp_walk_errors((err), (chunk_hdr), ntohs((chunk_hdr)->length))
481#define _sctp_walk_errors(err, chunk_hdr, end)\ 481#define _sctp_walk_errors(err, chunk_hdr, end)\
482for (err = (sctp_errhdr_t *)((void *)chunk_hdr + \ 482for (err = (sctp_errhdr_t *)((void *)chunk_hdr + \
483 sizeof(struct sctp_chunkhdr));\ 483 sizeof(struct sctp_chunkhdr));\
484 ((void *)err + offsetof(sctp_errhdr_t, length) + sizeof(err->length) <\ 484 ((void *)err + offsetof(sctp_errhdr_t, length) + sizeof(err->length) <=\
485 (void *)chunk_hdr + end) &&\ 485 (void *)chunk_hdr + end) &&\
486 (void *)err <= (void *)chunk_hdr + end - ntohs(err->length) &&\ 486 (void *)err <= (void *)chunk_hdr + end - ntohs(err->length) &&\
487 ntohs(err->length) >= sizeof(sctp_errhdr_t); \ 487 ntohs(err->length) >= sizeof(sctp_errhdr_t); \
diff --git a/include/net/tcp.h b/include/net/tcp.h
index 70483296157f..ada65e767b28 100644
--- a/include/net/tcp.h
+++ b/include/net/tcp.h
@@ -1916,6 +1916,16 @@ extern void tcp_rack_advance(struct tcp_sock *tp, u8 sacked, u32 end_seq,
1916 u64 xmit_time); 1916 u64 xmit_time);
1917extern void tcp_rack_reo_timeout(struct sock *sk); 1917extern void tcp_rack_reo_timeout(struct sock *sk);
1918 1918
1919/* At how many usecs into the future should the RTO fire? */
1920static inline s64 tcp_rto_delta_us(const struct sock *sk)
1921{
1922 const struct sk_buff *skb = tcp_write_queue_head(sk);
1923 u32 rto = inet_csk(sk)->icsk_rto;
1924 u64 rto_time_stamp_us = skb->skb_mstamp + jiffies_to_usecs(rto);
1925
1926 return rto_time_stamp_us - tcp_sk(sk)->tcp_mstamp;
1927}
1928
1919/* 1929/*
1920 * Save and compile IPv4 options, return a pointer to it 1930 * Save and compile IPv4 options, return a pointer to it
1921 */ 1931 */
diff --git a/include/net/udp.h b/include/net/udp.h
index 972ce4baab6b..cc8036987dcb 100644
--- a/include/net/udp.h
+++ b/include/net/udp.h
@@ -260,6 +260,7 @@ static inline struct sk_buff *skb_recv_udp(struct sock *sk, unsigned int flags,
260} 260}
261 261
262void udp_v4_early_demux(struct sk_buff *skb); 262void udp_v4_early_demux(struct sk_buff *skb);
263void udp_sk_rx_dst_set(struct sock *sk, struct dst_entry *dst);
263int udp_get_port(struct sock *sk, unsigned short snum, 264int udp_get_port(struct sock *sk, unsigned short snum,
264 int (*saddr_cmp)(const struct sock *, 265 int (*saddr_cmp)(const struct sock *,
265 const struct sock *)); 266 const struct sock *));
@@ -305,33 +306,44 @@ struct sock *udp6_lib_lookup_skb(struct sk_buff *skb,
305/* UDP uses skb->dev_scratch to cache as much information as possible and avoid 306/* UDP uses skb->dev_scratch to cache as much information as possible and avoid
306 * possibly multiple cache miss on dequeue() 307 * possibly multiple cache miss on dequeue()
307 */ 308 */
308#if BITS_PER_LONG == 64
309
310/* truesize, len and the bit needed to compute skb_csum_unnecessary will be on
311 * cold cache lines at recvmsg time.
312 * skb->len can be stored on 16 bits since the udp header has been already
313 * validated and pulled.
314 */
315struct udp_dev_scratch { 309struct udp_dev_scratch {
316 u32 truesize; 310 /* skb->truesize and the stateless bit are embedded in a single field;
311 * do not use a bitfield since the compiler emits better/smaller code
312 * this way
313 */
314 u32 _tsize_state;
315
316#if BITS_PER_LONG == 64
317 /* len and the bit needed to compute skb_csum_unnecessary
318 * will be on cold cache lines at recvmsg time.
319 * skb->len can be stored on 16 bits since the udp header has been
320 * already validated and pulled.
321 */
317 u16 len; 322 u16 len;
318 bool is_linear; 323 bool is_linear;
319 bool csum_unnecessary; 324 bool csum_unnecessary;
325#endif
320}; 326};
321 327
328static inline struct udp_dev_scratch *udp_skb_scratch(struct sk_buff *skb)
329{
330 return (struct udp_dev_scratch *)&skb->dev_scratch;
331}
332
333#if BITS_PER_LONG == 64
322static inline unsigned int udp_skb_len(struct sk_buff *skb) 334static inline unsigned int udp_skb_len(struct sk_buff *skb)
323{ 335{
324 return ((struct udp_dev_scratch *)&skb->dev_scratch)->len; 336 return udp_skb_scratch(skb)->len;
325} 337}
326 338
327static inline bool udp_skb_csum_unnecessary(struct sk_buff *skb) 339static inline bool udp_skb_csum_unnecessary(struct sk_buff *skb)
328{ 340{
329 return ((struct udp_dev_scratch *)&skb->dev_scratch)->csum_unnecessary; 341 return udp_skb_scratch(skb)->csum_unnecessary;
330} 342}
331 343
332static inline bool udp_skb_is_linear(struct sk_buff *skb) 344static inline bool udp_skb_is_linear(struct sk_buff *skb)
333{ 345{
334 return ((struct udp_dev_scratch *)&skb->dev_scratch)->is_linear; 346 return udp_skb_scratch(skb)->is_linear;
335} 347}
336 348
337#else 349#else
diff --git a/include/sound/soc.h b/include/sound/soc.h
index 9c94b97c17f8..c4a8b1947566 100644
--- a/include/sound/soc.h
+++ b/include/sound/soc.h
@@ -795,10 +795,6 @@ struct snd_soc_component_driver {
795 int (*suspend)(struct snd_soc_component *); 795 int (*suspend)(struct snd_soc_component *);
796 int (*resume)(struct snd_soc_component *); 796 int (*resume)(struct snd_soc_component *);
797 797
798 /* pcm creation and destruction */
799 int (*pcm_new)(struct snd_soc_pcm_runtime *);
800 void (*pcm_free)(struct snd_pcm *);
801
802 /* DT */ 798 /* DT */
803 int (*of_xlate_dai_name)(struct snd_soc_component *component, 799 int (*of_xlate_dai_name)(struct snd_soc_component *component,
804 struct of_phandle_args *args, 800 struct of_phandle_args *args,
@@ -874,8 +870,6 @@ struct snd_soc_component {
874 void (*remove)(struct snd_soc_component *); 870 void (*remove)(struct snd_soc_component *);
875 int (*suspend)(struct snd_soc_component *); 871 int (*suspend)(struct snd_soc_component *);
876 int (*resume)(struct snd_soc_component *); 872 int (*resume)(struct snd_soc_component *);
877 int (*pcm_new)(struct snd_soc_pcm_runtime *);
878 void (*pcm_free)(struct snd_pcm *);
879 873
880 /* machine specific init */ 874 /* machine specific init */
881 int (*init)(struct snd_soc_component *component); 875 int (*init)(struct snd_soc_component *component);
diff --git a/include/trace/events/ext4.h b/include/trace/events/ext4.h
index dfae175ddebc..9c3bc3883d2f 100644
--- a/include/trace/events/ext4.h
+++ b/include/trace/events/ext4.h
@@ -937,21 +937,19 @@ TRACE_EVENT(ext4_alloc_da_blocks,
937 TP_STRUCT__entry( 937 TP_STRUCT__entry(
938 __field( dev_t, dev ) 938 __field( dev_t, dev )
939 __field( ino_t, ino ) 939 __field( ino_t, ino )
940 __field( unsigned int, data_blocks ) 940 __field( unsigned int, data_blocks )
941 __field( unsigned int, meta_blocks )
942 ), 941 ),
943 942
944 TP_fast_assign( 943 TP_fast_assign(
945 __entry->dev = inode->i_sb->s_dev; 944 __entry->dev = inode->i_sb->s_dev;
946 __entry->ino = inode->i_ino; 945 __entry->ino = inode->i_ino;
947 __entry->data_blocks = EXT4_I(inode)->i_reserved_data_blocks; 946 __entry->data_blocks = EXT4_I(inode)->i_reserved_data_blocks;
948 __entry->meta_blocks = EXT4_I(inode)->i_reserved_meta_blocks;
949 ), 947 ),
950 948
951 TP_printk("dev %d,%d ino %lu data_blocks %u meta_blocks %u", 949 TP_printk("dev %d,%d ino %lu reserved_data_blocks %u",
952 MAJOR(__entry->dev), MINOR(__entry->dev), 950 MAJOR(__entry->dev), MINOR(__entry->dev),
953 (unsigned long) __entry->ino, 951 (unsigned long) __entry->ino,
954 __entry->data_blocks, __entry->meta_blocks) 952 __entry->data_blocks)
955); 953);
956 954
957TRACE_EVENT(ext4_mballoc_alloc, 955TRACE_EVENT(ext4_mballoc_alloc,
@@ -1153,8 +1151,6 @@ TRACE_EVENT(ext4_da_update_reserve_space,
1153 __field( __u64, i_blocks ) 1151 __field( __u64, i_blocks )
1154 __field( int, used_blocks ) 1152 __field( int, used_blocks )
1155 __field( int, reserved_data_blocks ) 1153 __field( int, reserved_data_blocks )
1156 __field( int, reserved_meta_blocks )
1157 __field( int, allocated_meta_blocks )
1158 __field( int, quota_claim ) 1154 __field( int, quota_claim )
1159 __field( __u16, mode ) 1155 __field( __u16, mode )
1160 ), 1156 ),
@@ -1166,22 +1162,16 @@ TRACE_EVENT(ext4_da_update_reserve_space,
1166 __entry->used_blocks = used_blocks; 1162 __entry->used_blocks = used_blocks;
1167 __entry->reserved_data_blocks = 1163 __entry->reserved_data_blocks =
1168 EXT4_I(inode)->i_reserved_data_blocks; 1164 EXT4_I(inode)->i_reserved_data_blocks;
1169 __entry->reserved_meta_blocks =
1170 EXT4_I(inode)->i_reserved_meta_blocks;
1171 __entry->allocated_meta_blocks =
1172 EXT4_I(inode)->i_allocated_meta_blocks;
1173 __entry->quota_claim = quota_claim; 1165 __entry->quota_claim = quota_claim;
1174 __entry->mode = inode->i_mode; 1166 __entry->mode = inode->i_mode;
1175 ), 1167 ),
1176 1168
1177 TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu used_blocks %d " 1169 TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu used_blocks %d "
1178 "reserved_data_blocks %d reserved_meta_blocks %d " 1170 "reserved_data_blocks %d quota_claim %d",
1179 "allocated_meta_blocks %d quota_claim %d",
1180 MAJOR(__entry->dev), MINOR(__entry->dev), 1171 MAJOR(__entry->dev), MINOR(__entry->dev),
1181 (unsigned long) __entry->ino, 1172 (unsigned long) __entry->ino,
1182 __entry->mode, __entry->i_blocks, 1173 __entry->mode, __entry->i_blocks,
1183 __entry->used_blocks, __entry->reserved_data_blocks, 1174 __entry->used_blocks, __entry->reserved_data_blocks,
1184 __entry->reserved_meta_blocks, __entry->allocated_meta_blocks,
1185 __entry->quota_claim) 1175 __entry->quota_claim)
1186); 1176);
1187 1177
@@ -1195,7 +1185,6 @@ TRACE_EVENT(ext4_da_reserve_space,
1195 __field( ino_t, ino ) 1185 __field( ino_t, ino )
1196 __field( __u64, i_blocks ) 1186 __field( __u64, i_blocks )
1197 __field( int, reserved_data_blocks ) 1187 __field( int, reserved_data_blocks )
1198 __field( int, reserved_meta_blocks )
1199 __field( __u16, mode ) 1188 __field( __u16, mode )
1200 ), 1189 ),
1201 1190
@@ -1204,17 +1193,15 @@ TRACE_EVENT(ext4_da_reserve_space,
1204 __entry->ino = inode->i_ino; 1193 __entry->ino = inode->i_ino;
1205 __entry->i_blocks = inode->i_blocks; 1194 __entry->i_blocks = inode->i_blocks;
1206 __entry->reserved_data_blocks = EXT4_I(inode)->i_reserved_data_blocks; 1195 __entry->reserved_data_blocks = EXT4_I(inode)->i_reserved_data_blocks;
1207 __entry->reserved_meta_blocks = EXT4_I(inode)->i_reserved_meta_blocks;
1208 __entry->mode = inode->i_mode; 1196 __entry->mode = inode->i_mode;
1209 ), 1197 ),
1210 1198
1211 TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu " 1199 TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu "
1212 "reserved_data_blocks %d reserved_meta_blocks %d", 1200 "reserved_data_blocks %d",
1213 MAJOR(__entry->dev), MINOR(__entry->dev), 1201 MAJOR(__entry->dev), MINOR(__entry->dev),
1214 (unsigned long) __entry->ino, 1202 (unsigned long) __entry->ino,
1215 __entry->mode, __entry->i_blocks, 1203 __entry->mode, __entry->i_blocks,
1216 __entry->reserved_data_blocks, 1204 __entry->reserved_data_blocks)
1217 __entry->reserved_meta_blocks)
1218); 1205);
1219 1206
1220TRACE_EVENT(ext4_da_release_space, 1207TRACE_EVENT(ext4_da_release_space,
@@ -1228,8 +1215,6 @@ TRACE_EVENT(ext4_da_release_space,
1228 __field( __u64, i_blocks ) 1215 __field( __u64, i_blocks )
1229 __field( int, freed_blocks ) 1216 __field( int, freed_blocks )
1230 __field( int, reserved_data_blocks ) 1217 __field( int, reserved_data_blocks )
1231 __field( int, reserved_meta_blocks )
1232 __field( int, allocated_meta_blocks )
1233 __field( __u16, mode ) 1218 __field( __u16, mode )
1234 ), 1219 ),
1235 1220
@@ -1239,19 +1224,15 @@ TRACE_EVENT(ext4_da_release_space,
1239 __entry->i_blocks = inode->i_blocks; 1224 __entry->i_blocks = inode->i_blocks;
1240 __entry->freed_blocks = freed_blocks; 1225 __entry->freed_blocks = freed_blocks;
1241 __entry->reserved_data_blocks = EXT4_I(inode)->i_reserved_data_blocks; 1226 __entry->reserved_data_blocks = EXT4_I(inode)->i_reserved_data_blocks;
1242 __entry->reserved_meta_blocks = EXT4_I(inode)->i_reserved_meta_blocks;
1243 __entry->allocated_meta_blocks = EXT4_I(inode)->i_allocated_meta_blocks;
1244 __entry->mode = inode->i_mode; 1227 __entry->mode = inode->i_mode;
1245 ), 1228 ),
1246 1229
1247 TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu freed_blocks %d " 1230 TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu freed_blocks %d "
1248 "reserved_data_blocks %d reserved_meta_blocks %d " 1231 "reserved_data_blocks %d",
1249 "allocated_meta_blocks %d",
1250 MAJOR(__entry->dev), MINOR(__entry->dev), 1232 MAJOR(__entry->dev), MINOR(__entry->dev),
1251 (unsigned long) __entry->ino, 1233 (unsigned long) __entry->ino,
1252 __entry->mode, __entry->i_blocks, 1234 __entry->mode, __entry->i_blocks,
1253 __entry->freed_blocks, __entry->reserved_data_blocks, 1235 __entry->freed_blocks, __entry->reserved_data_blocks)
1254 __entry->reserved_meta_blocks, __entry->allocated_meta_blocks)
1255); 1236);
1256 1237
1257DECLARE_EVENT_CLASS(ext4__bitmap_load, 1238DECLARE_EVENT_CLASS(ext4__bitmap_load,
diff --git a/ipc/msg.c b/ipc/msg.c
index 5b25e0755656..2c38f10d1483 100644
--- a/ipc/msg.c
+++ b/ipc/msg.c
@@ -1034,7 +1034,8 @@ void msg_exit_ns(struct ipc_namespace *ns)
1034static int sysvipc_msg_proc_show(struct seq_file *s, void *it) 1034static int sysvipc_msg_proc_show(struct seq_file *s, void *it)
1035{ 1035{
1036 struct user_namespace *user_ns = seq_user_ns(s); 1036 struct user_namespace *user_ns = seq_user_ns(s);
1037 struct msg_queue *msq = it; 1037 struct kern_ipc_perm *ipcp = it;
1038 struct msg_queue *msq = container_of(ipcp, struct msg_queue, q_perm);
1038 1039
1039 seq_printf(s, 1040 seq_printf(s,
1040 "%10d %10d %4o %10lu %10lu %5u %5u %5u %5u %5u %5u %10lu %10lu %10lu\n", 1041 "%10d %10d %4o %10lu %10lu %5u %5u %5u %5u %5u %5u %10lu %10lu %10lu\n",
diff --git a/ipc/sem.c b/ipc/sem.c
index 9e70cd7a17da..38371e93bfa5 100644
--- a/ipc/sem.c
+++ b/ipc/sem.c
@@ -2179,7 +2179,8 @@ void exit_sem(struct task_struct *tsk)
2179static int sysvipc_sem_proc_show(struct seq_file *s, void *it) 2179static int sysvipc_sem_proc_show(struct seq_file *s, void *it)
2180{ 2180{
2181 struct user_namespace *user_ns = seq_user_ns(s); 2181 struct user_namespace *user_ns = seq_user_ns(s);
2182 struct sem_array *sma = it; 2182 struct kern_ipc_perm *ipcp = it;
2183 struct sem_array *sma = container_of(ipcp, struct sem_array, sem_perm);
2183 time_t sem_otime; 2184 time_t sem_otime;
2184 2185
2185 /* 2186 /*
diff --git a/ipc/shm.c b/ipc/shm.c
index 28a444861a8f..8828b4c3a190 100644
--- a/ipc/shm.c
+++ b/ipc/shm.c
@@ -1380,9 +1380,11 @@ SYSCALL_DEFINE1(shmdt, char __user *, shmaddr)
1380static int sysvipc_shm_proc_show(struct seq_file *s, void *it) 1380static int sysvipc_shm_proc_show(struct seq_file *s, void *it)
1381{ 1381{
1382 struct user_namespace *user_ns = seq_user_ns(s); 1382 struct user_namespace *user_ns = seq_user_ns(s);
1383 struct shmid_kernel *shp = it; 1383 struct kern_ipc_perm *ipcp = it;
1384 struct shmid_kernel *shp;
1384 unsigned long rss = 0, swp = 0; 1385 unsigned long rss = 0, swp = 0;
1385 1386
1387 shp = container_of(ipcp, struct shmid_kernel, shm_perm);
1386 shm_add_rss_swap(shp, &rss, &swp); 1388 shm_add_rss_swap(shp, &rss, &swp);
1387 1389
1388#if BITS_PER_LONG <= 32 1390#if BITS_PER_LONG <= 32
diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
index 045646da97cc..6c772adabad2 100644
--- a/kernel/bpf/syscall.c
+++ b/kernel/bpf/syscall.c
@@ -1289,7 +1289,7 @@ static int bpf_prog_get_info_by_fd(struct bpf_prog *prog,
1289 info_len = min_t(u32, sizeof(info), info_len); 1289 info_len = min_t(u32, sizeof(info), info_len);
1290 1290
1291 if (copy_from_user(&info, uinfo, info_len)) 1291 if (copy_from_user(&info, uinfo, info_len))
1292 return err; 1292 return -EFAULT;
1293 1293
1294 info.type = prog->type; 1294 info.type = prog->type;
1295 info.id = prog->aux->id; 1295 info.id = prog->aux->id;
@@ -1312,7 +1312,7 @@ static int bpf_prog_get_info_by_fd(struct bpf_prog *prog,
1312 } 1312 }
1313 1313
1314 ulen = info.xlated_prog_len; 1314 ulen = info.xlated_prog_len;
1315 info.xlated_prog_len = bpf_prog_size(prog->len); 1315 info.xlated_prog_len = bpf_prog_insn_size(prog);
1316 if (info.xlated_prog_len && ulen) { 1316 if (info.xlated_prog_len && ulen) {
1317 uinsns = u64_to_user_ptr(info.xlated_prog_insns); 1317 uinsns = u64_to_user_ptr(info.xlated_prog_insns);
1318 ulen = min_t(u32, info.xlated_prog_len, ulen); 1318 ulen = min_t(u32, info.xlated_prog_len, ulen);
diff --git a/kernel/bpf/verifier.c b/kernel/bpf/verifier.c
index af9e84a4944e..664d93972373 100644
--- a/kernel/bpf/verifier.c
+++ b/kernel/bpf/verifier.c
@@ -1865,10 +1865,12 @@ static void adjust_reg_min_max_vals(struct bpf_verifier_env *env,
1865 * do our normal operations to the register, we need to set the values 1865 * do our normal operations to the register, we need to set the values
1866 * to the min/max since they are undefined. 1866 * to the min/max since they are undefined.
1867 */ 1867 */
1868 if (min_val == BPF_REGISTER_MIN_RANGE) 1868 if (opcode != BPF_SUB) {
1869 dst_reg->min_value = BPF_REGISTER_MIN_RANGE; 1869 if (min_val == BPF_REGISTER_MIN_RANGE)
1870 if (max_val == BPF_REGISTER_MAX_RANGE) 1870 dst_reg->min_value = BPF_REGISTER_MIN_RANGE;
1871 dst_reg->max_value = BPF_REGISTER_MAX_RANGE; 1871 if (max_val == BPF_REGISTER_MAX_RANGE)
1872 dst_reg->max_value = BPF_REGISTER_MAX_RANGE;
1873 }
1872 1874
1873 switch (opcode) { 1875 switch (opcode) {
1874 case BPF_ADD: 1876 case BPF_ADD:
@@ -1879,10 +1881,17 @@ static void adjust_reg_min_max_vals(struct bpf_verifier_env *env,
1879 dst_reg->min_align = min(src_align, dst_align); 1881 dst_reg->min_align = min(src_align, dst_align);
1880 break; 1882 break;
1881 case BPF_SUB: 1883 case BPF_SUB:
1884 /* If one of our values was at the end of our ranges, then the
1885 * _opposite_ value in the dst_reg goes to the end of our range.
1886 */
1887 if (min_val == BPF_REGISTER_MIN_RANGE)
1888 dst_reg->max_value = BPF_REGISTER_MAX_RANGE;
1889 if (max_val == BPF_REGISTER_MAX_RANGE)
1890 dst_reg->min_value = BPF_REGISTER_MIN_RANGE;
1882 if (dst_reg->min_value != BPF_REGISTER_MIN_RANGE) 1891 if (dst_reg->min_value != BPF_REGISTER_MIN_RANGE)
1883 dst_reg->min_value -= min_val; 1892 dst_reg->min_value -= max_val;
1884 if (dst_reg->max_value != BPF_REGISTER_MAX_RANGE) 1893 if (dst_reg->max_value != BPF_REGISTER_MAX_RANGE)
1885 dst_reg->max_value -= max_val; 1894 dst_reg->max_value -= min_val;
1886 dst_reg->min_align = min(src_align, dst_align); 1895 dst_reg->min_align = min(src_align, dst_align);
1887 break; 1896 break;
1888 case BPF_MUL: 1897 case BPF_MUL:
diff --git a/kernel/cgroup/cgroup-internal.h b/kernel/cgroup/cgroup-internal.h
index 793565c05742..8b4c3c2f2509 100644
--- a/kernel/cgroup/cgroup-internal.h
+++ b/kernel/cgroup/cgroup-internal.h
@@ -33,6 +33,9 @@ struct cgroup_taskset {
33 struct list_head src_csets; 33 struct list_head src_csets;
34 struct list_head dst_csets; 34 struct list_head dst_csets;
35 35
36 /* the number of tasks in the set */
37 int nr_tasks;
38
36 /* the subsys currently being processed */ 39 /* the subsys currently being processed */
37 int ssid; 40 int ssid;
38 41
diff --git a/kernel/cgroup/cgroup.c b/kernel/cgroup/cgroup.c
index 620794a20a33..df2e0f14a95d 100644
--- a/kernel/cgroup/cgroup.c
+++ b/kernel/cgroup/cgroup.c
@@ -2006,6 +2006,8 @@ static void cgroup_migrate_add_task(struct task_struct *task,
2006 if (!cset->mg_src_cgrp) 2006 if (!cset->mg_src_cgrp)
2007 return; 2007 return;
2008 2008
2009 mgctx->tset.nr_tasks++;
2010
2009 list_move_tail(&task->cg_list, &cset->mg_tasks); 2011 list_move_tail(&task->cg_list, &cset->mg_tasks);
2010 if (list_empty(&cset->mg_node)) 2012 if (list_empty(&cset->mg_node))
2011 list_add_tail(&cset->mg_node, 2013 list_add_tail(&cset->mg_node,
@@ -2094,21 +2096,19 @@ static int cgroup_migrate_execute(struct cgroup_mgctx *mgctx)
2094 struct css_set *cset, *tmp_cset; 2096 struct css_set *cset, *tmp_cset;
2095 int ssid, failed_ssid, ret; 2097 int ssid, failed_ssid, ret;
2096 2098
2097 /* methods shouldn't be called if no task is actually migrating */
2098 if (list_empty(&tset->src_csets))
2099 return 0;
2100
2101 /* check that we can legitimately attach to the cgroup */ 2099 /* check that we can legitimately attach to the cgroup */
2102 do_each_subsys_mask(ss, ssid, mgctx->ss_mask) { 2100 if (tset->nr_tasks) {
2103 if (ss->can_attach) { 2101 do_each_subsys_mask(ss, ssid, mgctx->ss_mask) {
2104 tset->ssid = ssid; 2102 if (ss->can_attach) {
2105 ret = ss->can_attach(tset); 2103 tset->ssid = ssid;
2106 if (ret) { 2104 ret = ss->can_attach(tset);
2107 failed_ssid = ssid; 2105 if (ret) {
2108 goto out_cancel_attach; 2106 failed_ssid = ssid;
2107 goto out_cancel_attach;
2108 }
2109 } 2109 }
2110 } 2110 } while_each_subsys_mask();
2111 } while_each_subsys_mask(); 2111 }
2112 2112
2113 /* 2113 /*
2114 * Now that we're guaranteed success, proceed to move all tasks to 2114 * Now that we're guaranteed success, proceed to move all tasks to
@@ -2137,25 +2137,29 @@ static int cgroup_migrate_execute(struct cgroup_mgctx *mgctx)
2137 */ 2137 */
2138 tset->csets = &tset->dst_csets; 2138 tset->csets = &tset->dst_csets;
2139 2139
2140 do_each_subsys_mask(ss, ssid, mgctx->ss_mask) { 2140 if (tset->nr_tasks) {
2141 if (ss->attach) { 2141 do_each_subsys_mask(ss, ssid, mgctx->ss_mask) {
2142 tset->ssid = ssid; 2142 if (ss->attach) {
2143 ss->attach(tset); 2143 tset->ssid = ssid;
2144 } 2144 ss->attach(tset);
2145 } while_each_subsys_mask(); 2145 }
2146 } while_each_subsys_mask();
2147 }
2146 2148
2147 ret = 0; 2149 ret = 0;
2148 goto out_release_tset; 2150 goto out_release_tset;
2149 2151
2150out_cancel_attach: 2152out_cancel_attach:
2151 do_each_subsys_mask(ss, ssid, mgctx->ss_mask) { 2153 if (tset->nr_tasks) {
2152 if (ssid == failed_ssid) 2154 do_each_subsys_mask(ss, ssid, mgctx->ss_mask) {
2153 break; 2155 if (ssid == failed_ssid)
2154 if (ss->cancel_attach) { 2156 break;
2155 tset->ssid = ssid; 2157 if (ss->cancel_attach) {
2156 ss->cancel_attach(tset); 2158 tset->ssid = ssid;
2157 } 2159 ss->cancel_attach(tset);
2158 } while_each_subsys_mask(); 2160 }
2161 } while_each_subsys_mask();
2162 }
2159out_release_tset: 2163out_release_tset:
2160 spin_lock_irq(&css_set_lock); 2164 spin_lock_irq(&css_set_lock);
2161 list_splice_init(&tset->dst_csets, &tset->src_csets); 2165 list_splice_init(&tset->dst_csets, &tset->src_csets);
@@ -2997,11 +3001,11 @@ static ssize_t cgroup_subtree_control_write(struct kernfs_open_file *of,
2997 cgrp->subtree_control &= ~disable; 3001 cgrp->subtree_control &= ~disable;
2998 3002
2999 ret = cgroup_apply_control(cgrp); 3003 ret = cgroup_apply_control(cgrp);
3000
3001 cgroup_finalize_control(cgrp, ret); 3004 cgroup_finalize_control(cgrp, ret);
3005 if (ret)
3006 goto out_unlock;
3002 3007
3003 kernfs_activate(cgrp->kn); 3008 kernfs_activate(cgrp->kn);
3004 ret = 0;
3005out_unlock: 3009out_unlock:
3006 cgroup_kn_unlock(of->kn); 3010 cgroup_kn_unlock(of->kn);
3007 return ret ?: nbytes; 3011 return ret ?: nbytes;
@@ -4669,6 +4673,10 @@ int __init cgroup_init(void)
4669 4673
4670 if (ss->bind) 4674 if (ss->bind)
4671 ss->bind(init_css_set.subsys[ssid]); 4675 ss->bind(init_css_set.subsys[ssid]);
4676
4677 mutex_lock(&cgroup_mutex);
4678 css_populate_dir(init_css_set.subsys[ssid]);
4679 mutex_unlock(&cgroup_mutex);
4672 } 4680 }
4673 4681
4674 /* init_css_set.subsys[] has been updated, re-hash */ 4682 /* init_css_set.subsys[] has been updated, re-hash */
diff --git a/kernel/cgroup/cpuset.c b/kernel/cgroup/cpuset.c
index ca8376e5008c..8d5151688504 100644
--- a/kernel/cgroup/cpuset.c
+++ b/kernel/cgroup/cpuset.c
@@ -63,6 +63,7 @@
63#include <linux/cgroup.h> 63#include <linux/cgroup.h>
64#include <linux/wait.h> 64#include <linux/wait.h>
65 65
66DEFINE_STATIC_KEY_FALSE(cpusets_pre_enable_key);
66DEFINE_STATIC_KEY_FALSE(cpusets_enabled_key); 67DEFINE_STATIC_KEY_FALSE(cpusets_enabled_key);
67 68
68/* See "Frequency meter" comments, below. */ 69/* See "Frequency meter" comments, below. */
diff --git a/kernel/events/core.c b/kernel/events/core.c
index 426c2ffba16d..ee20d4c546b5 100644
--- a/kernel/events/core.c
+++ b/kernel/events/core.c
@@ -2217,6 +2217,33 @@ static int group_can_go_on(struct perf_event *event,
2217 return can_add_hw; 2217 return can_add_hw;
2218} 2218}
2219 2219
2220/*
2221 * Complement to update_event_times(). This computes the tstamp_* values to
2222 * continue 'enabled' state from @now, and effectively discards the time
2223 * between the prior tstamp_stopped and now (as we were in the OFF state, or
2224 * just switched (context) time base).
2225 *
2226 * This further assumes '@event->state == INACTIVE' (we just came from OFF) and
2227 * cannot have been scheduled in yet. And going into INACTIVE state means
2228 * '@event->tstamp_stopped = @now'.
2229 *
2230 * Thus given the rules of update_event_times():
2231 *
2232 * total_time_enabled = tstamp_stopped - tstamp_enabled
2233 * total_time_running = tstamp_stopped - tstamp_running
2234 *
2235 * We can insert 'tstamp_stopped == now' and reverse them to compute new
2236 * tstamp_* values.
2237 */
2238static void __perf_event_enable_time(struct perf_event *event, u64 now)
2239{
2240 WARN_ON_ONCE(event->state != PERF_EVENT_STATE_INACTIVE);
2241
2242 event->tstamp_stopped = now;
2243 event->tstamp_enabled = now - event->total_time_enabled;
2244 event->tstamp_running = now - event->total_time_running;
2245}
2246
2220static void add_event_to_ctx(struct perf_event *event, 2247static void add_event_to_ctx(struct perf_event *event,
2221 struct perf_event_context *ctx) 2248 struct perf_event_context *ctx)
2222{ 2249{
@@ -2224,9 +2251,12 @@ static void add_event_to_ctx(struct perf_event *event,
2224 2251
2225 list_add_event(event, ctx); 2252 list_add_event(event, ctx);
2226 perf_group_attach(event); 2253 perf_group_attach(event);
2227 event->tstamp_enabled = tstamp; 2254 /*
2228 event->tstamp_running = tstamp; 2255 * We can be called with event->state == STATE_OFF when we create with
2229 event->tstamp_stopped = tstamp; 2256 * .disabled = 1. In that case the IOC_ENABLE will call this function.
2257 */
2258 if (event->state == PERF_EVENT_STATE_INACTIVE)
2259 __perf_event_enable_time(event, tstamp);
2230} 2260}
2231 2261
2232static void ctx_sched_out(struct perf_event_context *ctx, 2262static void ctx_sched_out(struct perf_event_context *ctx,
@@ -2471,10 +2501,11 @@ static void __perf_event_mark_enabled(struct perf_event *event)
2471 u64 tstamp = perf_event_time(event); 2501 u64 tstamp = perf_event_time(event);
2472 2502
2473 event->state = PERF_EVENT_STATE_INACTIVE; 2503 event->state = PERF_EVENT_STATE_INACTIVE;
2474 event->tstamp_enabled = tstamp - event->total_time_enabled; 2504 __perf_event_enable_time(event, tstamp);
2475 list_for_each_entry(sub, &event->sibling_list, group_entry) { 2505 list_for_each_entry(sub, &event->sibling_list, group_entry) {
2506 /* XXX should not be > INACTIVE if event isn't */
2476 if (sub->state >= PERF_EVENT_STATE_INACTIVE) 2507 if (sub->state >= PERF_EVENT_STATE_INACTIVE)
2477 sub->tstamp_enabled = tstamp - sub->total_time_enabled; 2508 __perf_event_enable_time(sub, tstamp);
2478 } 2509 }
2479} 2510}
2480 2511
@@ -5090,7 +5121,7 @@ static void perf_mmap_open(struct vm_area_struct *vma)
5090 atomic_inc(&event->rb->aux_mmap_count); 5121 atomic_inc(&event->rb->aux_mmap_count);
5091 5122
5092 if (event->pmu->event_mapped) 5123 if (event->pmu->event_mapped)
5093 event->pmu->event_mapped(event); 5124 event->pmu->event_mapped(event, vma->vm_mm);
5094} 5125}
5095 5126
5096static void perf_pmu_output_stop(struct perf_event *event); 5127static void perf_pmu_output_stop(struct perf_event *event);
@@ -5113,7 +5144,7 @@ static void perf_mmap_close(struct vm_area_struct *vma)
5113 unsigned long size = perf_data_size(rb); 5144 unsigned long size = perf_data_size(rb);
5114 5145
5115 if (event->pmu->event_unmapped) 5146 if (event->pmu->event_unmapped)
5116 event->pmu->event_unmapped(event); 5147 event->pmu->event_unmapped(event, vma->vm_mm);
5117 5148
5118 /* 5149 /*
5119 * rb->aux_mmap_count will always drop before rb->mmap_count and 5150 * rb->aux_mmap_count will always drop before rb->mmap_count and
@@ -5411,7 +5442,7 @@ aux_unlock:
5411 vma->vm_ops = &perf_mmap_vmops; 5442 vma->vm_ops = &perf_mmap_vmops;
5412 5443
5413 if (event->pmu->event_mapped) 5444 if (event->pmu->event_mapped)
5414 event->pmu->event_mapped(event); 5445 event->pmu->event_mapped(event, vma->vm_mm);
5415 5446
5416 return ret; 5447 return ret;
5417} 5448}
diff --git a/kernel/futex.c b/kernel/futex.c
index 16dbe4c93895..f50b434756c1 100644
--- a/kernel/futex.c
+++ b/kernel/futex.c
@@ -670,13 +670,14 @@ again:
670 * this reference was taken by ihold under the page lock 670 * this reference was taken by ihold under the page lock
671 * pinning the inode in place so i_lock was unnecessary. The 671 * pinning the inode in place so i_lock was unnecessary. The
672 * only way for this check to fail is if the inode was 672 * only way for this check to fail is if the inode was
673 * truncated in parallel so warn for now if this happens. 673 * truncated in parallel which is almost certainly an
674 * application bug. In such a case, just retry.
674 * 675 *
675 * We are not calling into get_futex_key_refs() in file-backed 676 * We are not calling into get_futex_key_refs() in file-backed
676 * cases, therefore a successful atomic_inc return below will 677 * cases, therefore a successful atomic_inc return below will
677 * guarantee that get_futex_key() will still imply smp_mb(); (B). 678 * guarantee that get_futex_key() will still imply smp_mb(); (B).
678 */ 679 */
679 if (WARN_ON_ONCE(!atomic_inc_not_zero(&inode->i_count))) { 680 if (!atomic_inc_not_zero(&inode->i_count)) {
680 rcu_read_unlock(); 681 rcu_read_unlock();
681 put_page(page); 682 put_page(page);
682 683
diff --git a/kernel/irq/cpuhotplug.c b/kernel/irq/cpuhotplug.c
index aee8f7ec40af..638eb9c83d9f 100644
--- a/kernel/irq/cpuhotplug.c
+++ b/kernel/irq/cpuhotplug.c
@@ -95,8 +95,13 @@ static bool migrate_one_irq(struct irq_desc *desc)
95 affinity = cpu_online_mask; 95 affinity = cpu_online_mask;
96 brokeaff = true; 96 brokeaff = true;
97 } 97 }
98 98 /*
99 err = irq_do_set_affinity(d, affinity, true); 99 * Do not set the force argument of irq_do_set_affinity() as this
100 * disables the masking of offline CPUs from the supplied affinity
101 * mask and therefore might keep/reassign the irq to the outgoing
102 * CPU.
103 */
104 err = irq_do_set_affinity(d, affinity, false);
100 if (err) { 105 if (err) {
101 pr_warn_ratelimited("IRQ%u: set affinity failed(%d).\n", 106 pr_warn_ratelimited("IRQ%u: set affinity failed(%d).\n",
102 d->irq, err); 107 d->irq, err);
diff --git a/kernel/pid.c b/kernel/pid.c
index 731c4e528f4e..c69c30d827e5 100644
--- a/kernel/pid.c
+++ b/kernel/pid.c
@@ -575,13 +575,10 @@ struct pid *find_ge_pid(int nr, struct pid_namespace *ns)
575 */ 575 */
576void __init pidhash_init(void) 576void __init pidhash_init(void)
577{ 577{
578 unsigned int pidhash_size;
579
580 pid_hash = alloc_large_system_hash("PID", sizeof(*pid_hash), 0, 18, 578 pid_hash = alloc_large_system_hash("PID", sizeof(*pid_hash), 0, 18,
581 HASH_EARLY | HASH_SMALL | HASH_ZERO, 579 HASH_EARLY | HASH_SMALL | HASH_ZERO,
582 &pidhash_shift, NULL, 580 &pidhash_shift, NULL,
583 0, 4096); 581 0, 4096);
584 pidhash_size = 1U << pidhash_shift;
585} 582}
586 583
587void __init pidmap_init(void) 584void __init pidmap_init(void)
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 17c667b427b4..0869b20fba81 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -2069,7 +2069,7 @@ out:
2069/** 2069/**
2070 * try_to_wake_up_local - try to wake up a local task with rq lock held 2070 * try_to_wake_up_local - try to wake up a local task with rq lock held
2071 * @p: the thread to be awakened 2071 * @p: the thread to be awakened
2072 * @cookie: context's cookie for pinning 2072 * @rf: request-queue flags for pinning
2073 * 2073 *
2074 * Put @p on the run-queue if it's not already there. The caller must 2074 * Put @p on the run-queue if it's not already there. The caller must
2075 * ensure that this_rq() is locked, @p is bound to this_rq() and not 2075 * ensure that this_rq() is locked, @p is bound to this_rq() and not
diff --git a/kernel/signal.c b/kernel/signal.c
index caed9133ae52..7e33f8c583e6 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -3303,12 +3303,15 @@ SYSCALL_DEFINE1(sigpending, old_sigset_t __user *, set)
3303#ifdef CONFIG_COMPAT 3303#ifdef CONFIG_COMPAT
3304COMPAT_SYSCALL_DEFINE1(sigpending, compat_old_sigset_t __user *, set32) 3304COMPAT_SYSCALL_DEFINE1(sigpending, compat_old_sigset_t __user *, set32)
3305{ 3305{
3306#ifdef __BIG_ENDIAN
3306 sigset_t set; 3307 sigset_t set;
3307 int err = do_sigpending(&set, sizeof(old_sigset_t)); 3308 int err = do_sigpending(&set, sizeof(set.sig[0]));
3308 if (err == 0) 3309 if (!err)
3309 if (copy_to_user(set32, &set, sizeof(old_sigset_t))) 3310 err = put_user(set.sig[0], set32);
3310 err = -EFAULT;
3311 return err; 3311 return err;
3312#else
3313 return sys_rt_sigpending((sigset_t __user *)set32, sizeof(*set32));
3314#endif
3312} 3315}
3313#endif 3316#endif
3314 3317
diff --git a/kernel/time/timer.c b/kernel/time/timer.c
index 71ce3f4eead3..8f5d1bf18854 100644
--- a/kernel/time/timer.c
+++ b/kernel/time/timer.c
@@ -1495,7 +1495,7 @@ u64 get_next_timer_interrupt(unsigned long basej, u64 basem)
1495 base->is_idle = false; 1495 base->is_idle = false;
1496 } else { 1496 } else {
1497 if (!is_max_delta) 1497 if (!is_max_delta)
1498 expires = basem + (nextevt - basej) * TICK_NSEC; 1498 expires = basem + (u64)(nextevt - basej) * TICK_NSEC;
1499 /* 1499 /*
1500 * If we expect to sleep more than a tick, mark the base idle: 1500 * If we expect to sleep more than a tick, mark the base idle:
1501 */ 1501 */
diff --git a/kernel/workqueue.c b/kernel/workqueue.c
index a86688fabc55..ca937b0c3a96 100644
--- a/kernel/workqueue.c
+++ b/kernel/workqueue.c
@@ -3577,6 +3577,13 @@ static bool wq_calc_node_cpumask(const struct workqueue_attrs *attrs, int node,
3577 3577
3578 /* yeap, return possible CPUs in @node that @attrs wants */ 3578 /* yeap, return possible CPUs in @node that @attrs wants */
3579 cpumask_and(cpumask, attrs->cpumask, wq_numa_possible_cpumask[node]); 3579 cpumask_and(cpumask, attrs->cpumask, wq_numa_possible_cpumask[node]);
3580
3581 if (cpumask_empty(cpumask)) {
3582 pr_warn_once("WARNING: workqueue cpumask: online intersect > "
3583 "possible intersect\n");
3584 return false;
3585 }
3586
3580 return !cpumask_equal(cpumask, attrs->cpumask); 3587 return !cpumask_equal(cpumask, attrs->cpumask);
3581 3588
3582use_dfl: 3589use_dfl:
@@ -3744,8 +3751,12 @@ static int apply_workqueue_attrs_locked(struct workqueue_struct *wq,
3744 return -EINVAL; 3751 return -EINVAL;
3745 3752
3746 /* creating multiple pwqs breaks ordering guarantee */ 3753 /* creating multiple pwqs breaks ordering guarantee */
3747 if (WARN_ON((wq->flags & __WQ_ORDERED) && !list_empty(&wq->pwqs))) 3754 if (!list_empty(&wq->pwqs)) {
3748 return -EINVAL; 3755 if (WARN_ON(wq->flags & __WQ_ORDERED_EXPLICIT))
3756 return -EINVAL;
3757
3758 wq->flags &= ~__WQ_ORDERED;
3759 }
3749 3760
3750 ctx = apply_wqattrs_prepare(wq, attrs); 3761 ctx = apply_wqattrs_prepare(wq, attrs);
3751 if (!ctx) 3762 if (!ctx)
@@ -3929,6 +3940,16 @@ struct workqueue_struct *__alloc_workqueue_key(const char *fmt,
3929 struct workqueue_struct *wq; 3940 struct workqueue_struct *wq;
3930 struct pool_workqueue *pwq; 3941 struct pool_workqueue *pwq;
3931 3942
3943 /*
3944 * Unbound && max_active == 1 used to imply ordered, which is no
3945 * longer the case on NUMA machines due to per-node pools. While
3946 * alloc_ordered_workqueue() is the right way to create an ordered
3947 * workqueue, keep the previous behavior to avoid subtle breakages
3948 * on NUMA.
3949 */
3950 if ((flags & WQ_UNBOUND) && max_active == 1)
3951 flags |= __WQ_ORDERED;
3952
3932 /* see the comment above the definition of WQ_POWER_EFFICIENT */ 3953 /* see the comment above the definition of WQ_POWER_EFFICIENT */
3933 if ((flags & WQ_POWER_EFFICIENT) && wq_power_efficient) 3954 if ((flags & WQ_POWER_EFFICIENT) && wq_power_efficient)
3934 flags |= WQ_UNBOUND; 3955 flags |= WQ_UNBOUND;
@@ -4119,13 +4140,14 @@ void workqueue_set_max_active(struct workqueue_struct *wq, int max_active)
4119 struct pool_workqueue *pwq; 4140 struct pool_workqueue *pwq;
4120 4141
4121 /* disallow meddling with max_active for ordered workqueues */ 4142 /* disallow meddling with max_active for ordered workqueues */
4122 if (WARN_ON(wq->flags & __WQ_ORDERED)) 4143 if (WARN_ON(wq->flags & __WQ_ORDERED_EXPLICIT))
4123 return; 4144 return;
4124 4145
4125 max_active = wq_clamp_max_active(max_active, wq->flags, wq->name); 4146 max_active = wq_clamp_max_active(max_active, wq->flags, wq->name);
4126 4147
4127 mutex_lock(&wq->mutex); 4148 mutex_lock(&wq->mutex);
4128 4149
4150 wq->flags &= ~__WQ_ORDERED;
4129 wq->saved_max_active = max_active; 4151 wq->saved_max_active = max_active;
4130 4152
4131 for_each_pwq(pwq, wq) 4153 for_each_pwq(pwq, wq)
@@ -5253,7 +5275,7 @@ int workqueue_sysfs_register(struct workqueue_struct *wq)
5253 * attributes breaks ordering guarantee. Disallow exposing ordered 5275 * attributes breaks ordering guarantee. Disallow exposing ordered
5254 * workqueues. 5276 * workqueues.
5255 */ 5277 */
5256 if (WARN_ON(wq->flags & __WQ_ORDERED)) 5278 if (WARN_ON(wq->flags & __WQ_ORDERED_EXPLICIT))
5257 return -EINVAL; 5279 return -EINVAL;
5258 5280
5259 wq->wq_dev = wq_dev = kzalloc(sizeof(*wq_dev), GFP_KERNEL); 5281 wq->wq_dev = wq_dev = kzalloc(sizeof(*wq_dev), GFP_KERNEL);
diff --git a/lib/test_rhashtable.c b/lib/test_rhashtable.c
index 64e899b63337..0ffca990a833 100644
--- a/lib/test_rhashtable.c
+++ b/lib/test_rhashtable.c
@@ -56,8 +56,13 @@ static bool enomem_retry = false;
56module_param(enomem_retry, bool, 0); 56module_param(enomem_retry, bool, 0);
57MODULE_PARM_DESC(enomem_retry, "Retry insert even if -ENOMEM was returned (default: off)"); 57MODULE_PARM_DESC(enomem_retry, "Retry insert even if -ENOMEM was returned (default: off)");
58 58
59struct test_obj_val {
60 int id;
61 int tid;
62};
63
59struct test_obj { 64struct test_obj {
60 int value; 65 struct test_obj_val value;
61 struct rhash_head node; 66 struct rhash_head node;
62}; 67};
63 68
@@ -72,7 +77,7 @@ static struct test_obj array[MAX_ENTRIES];
72static struct rhashtable_params test_rht_params = { 77static struct rhashtable_params test_rht_params = {
73 .head_offset = offsetof(struct test_obj, node), 78 .head_offset = offsetof(struct test_obj, node),
74 .key_offset = offsetof(struct test_obj, value), 79 .key_offset = offsetof(struct test_obj, value),
75 .key_len = sizeof(int), 80 .key_len = sizeof(struct test_obj_val),
76 .hashfn = jhash, 81 .hashfn = jhash,
77 .nulls_base = (3U << RHT_BASE_SHIFT), 82 .nulls_base = (3U << RHT_BASE_SHIFT),
78}; 83};
@@ -109,24 +114,26 @@ static int __init test_rht_lookup(struct rhashtable *ht)
109 for (i = 0; i < entries * 2; i++) { 114 for (i = 0; i < entries * 2; i++) {
110 struct test_obj *obj; 115 struct test_obj *obj;
111 bool expected = !(i % 2); 116 bool expected = !(i % 2);
112 u32 key = i; 117 struct test_obj_val key = {
118 .id = i,
119 };
113 120
114 if (array[i / 2].value == TEST_INSERT_FAIL) 121 if (array[i / 2].value.id == TEST_INSERT_FAIL)
115 expected = false; 122 expected = false;
116 123
117 obj = rhashtable_lookup_fast(ht, &key, test_rht_params); 124 obj = rhashtable_lookup_fast(ht, &key, test_rht_params);
118 125
119 if (expected && !obj) { 126 if (expected && !obj) {
120 pr_warn("Test failed: Could not find key %u\n", key); 127 pr_warn("Test failed: Could not find key %u\n", key.id);
121 return -ENOENT; 128 return -ENOENT;
122 } else if (!expected && obj) { 129 } else if (!expected && obj) {
123 pr_warn("Test failed: Unexpected entry found for key %u\n", 130 pr_warn("Test failed: Unexpected entry found for key %u\n",
124 key); 131 key.id);
125 return -EEXIST; 132 return -EEXIST;
126 } else if (expected && obj) { 133 } else if (expected && obj) {
127 if (obj->value != i) { 134 if (obj->value.id != i) {
128 pr_warn("Test failed: Lookup value mismatch %u!=%u\n", 135 pr_warn("Test failed: Lookup value mismatch %u!=%u\n",
129 obj->value, i); 136 obj->value.id, i);
130 return -EINVAL; 137 return -EINVAL;
131 } 138 }
132 } 139 }
@@ -195,7 +202,7 @@ static s64 __init test_rhashtable(struct rhashtable *ht)
195 for (i = 0; i < entries; i++) { 202 for (i = 0; i < entries; i++) {
196 struct test_obj *obj = &array[i]; 203 struct test_obj *obj = &array[i];
197 204
198 obj->value = i * 2; 205 obj->value.id = i * 2;
199 err = insert_retry(ht, &obj->node, test_rht_params); 206 err = insert_retry(ht, &obj->node, test_rht_params);
200 if (err > 0) 207 if (err > 0)
201 insert_retries += err; 208 insert_retries += err;
@@ -216,9 +223,11 @@ static s64 __init test_rhashtable(struct rhashtable *ht)
216 223
217 pr_info(" Deleting %d keys\n", entries); 224 pr_info(" Deleting %d keys\n", entries);
218 for (i = 0; i < entries; i++) { 225 for (i = 0; i < entries; i++) {
219 u32 key = i * 2; 226 struct test_obj_val key = {
227 .id = i * 2,
228 };
220 229
221 if (array[i].value != TEST_INSERT_FAIL) { 230 if (array[i].value.id != TEST_INSERT_FAIL) {
222 obj = rhashtable_lookup_fast(ht, &key, test_rht_params); 231 obj = rhashtable_lookup_fast(ht, &key, test_rht_params);
223 BUG_ON(!obj); 232 BUG_ON(!obj);
224 233
@@ -242,18 +251,21 @@ static int thread_lookup_test(struct thread_data *tdata)
242 251
243 for (i = 0; i < entries; i++) { 252 for (i = 0; i < entries; i++) {
244 struct test_obj *obj; 253 struct test_obj *obj;
245 int key = (tdata->id << 16) | i; 254 struct test_obj_val key = {
255 .id = i,
256 .tid = tdata->id,
257 };
246 258
247 obj = rhashtable_lookup_fast(&ht, &key, test_rht_params); 259 obj = rhashtable_lookup_fast(&ht, &key, test_rht_params);
248 if (obj && (tdata->objs[i].value == TEST_INSERT_FAIL)) { 260 if (obj && (tdata->objs[i].value.id == TEST_INSERT_FAIL)) {
249 pr_err(" found unexpected object %d\n", key); 261 pr_err(" found unexpected object %d-%d\n", key.tid, key.id);
250 err++; 262 err++;
251 } else if (!obj && (tdata->objs[i].value != TEST_INSERT_FAIL)) { 263 } else if (!obj && (tdata->objs[i].value.id != TEST_INSERT_FAIL)) {
252 pr_err(" object %d not found!\n", key); 264 pr_err(" object %d-%d not found!\n", key.tid, key.id);
253 err++; 265 err++;
254 } else if (obj && (obj->value != key)) { 266 } else if (obj && memcmp(&obj->value, &key, sizeof(key))) {
255 pr_err(" wrong object returned (got %d, expected %d)\n", 267 pr_err(" wrong object returned (got %d-%d, expected %d-%d)\n",
256 obj->value, key); 268 obj->value.tid, obj->value.id, key.tid, key.id);
257 err++; 269 err++;
258 } 270 }
259 271
@@ -272,7 +284,8 @@ static int threadfunc(void *data)
272 pr_err(" thread[%d]: down_interruptible failed\n", tdata->id); 284 pr_err(" thread[%d]: down_interruptible failed\n", tdata->id);
273 285
274 for (i = 0; i < entries; i++) { 286 for (i = 0; i < entries; i++) {
275 tdata->objs[i].value = (tdata->id << 16) | i; 287 tdata->objs[i].value.id = i;
288 tdata->objs[i].value.tid = tdata->id;
276 err = insert_retry(&ht, &tdata->objs[i].node, test_rht_params); 289 err = insert_retry(&ht, &tdata->objs[i].node, test_rht_params);
277 if (err > 0) { 290 if (err > 0) {
278 insert_retries += err; 291 insert_retries += err;
@@ -295,7 +308,7 @@ static int threadfunc(void *data)
295 308
296 for (step = 10; step > 0; step--) { 309 for (step = 10; step > 0; step--) {
297 for (i = 0; i < entries; i += step) { 310 for (i = 0; i < entries; i += step) {
298 if (tdata->objs[i].value == TEST_INSERT_FAIL) 311 if (tdata->objs[i].value.id == TEST_INSERT_FAIL)
299 continue; 312 continue;
300 err = rhashtable_remove_fast(&ht, &tdata->objs[i].node, 313 err = rhashtable_remove_fast(&ht, &tdata->objs[i].node,
301 test_rht_params); 314 test_rht_params);
@@ -304,7 +317,7 @@ static int threadfunc(void *data)
304 tdata->id); 317 tdata->id);
305 goto out; 318 goto out;
306 } 319 }
307 tdata->objs[i].value = TEST_INSERT_FAIL; 320 tdata->objs[i].value.id = TEST_INSERT_FAIL;
308 321
309 cond_resched(); 322 cond_resched();
310 } 323 }
diff --git a/lib/test_uuid.c b/lib/test_uuid.c
index 478c049630b5..cd819c397dc7 100644
--- a/lib/test_uuid.c
+++ b/lib/test_uuid.c
@@ -82,7 +82,7 @@ static void __init test_uuid_test(const struct test_uuid_data *data)
82 test_uuid_failed("conversion", false, true, data->uuid, NULL); 82 test_uuid_failed("conversion", false, true, data->uuid, NULL);
83 83
84 total_tests++; 84 total_tests++;
85 if (uuid_equal(&data->be, &be)) { 85 if (!uuid_equal(&data->be, &be)) {
86 sprintf(buf, "%pUb", &be); 86 sprintf(buf, "%pUb", &be);
87 test_uuid_failed("cmp", false, true, data->uuid, buf); 87 test_uuid_failed("cmp", false, true, data->uuid, buf);
88 } 88 }
diff --git a/mm/hugetlb.c b/mm/hugetlb.c
index bc48ee783dd9..a1a0ac0ad6f6 100644
--- a/mm/hugetlb.c
+++ b/mm/hugetlb.c
@@ -4078,6 +4078,7 @@ long follow_hugetlb_page(struct mm_struct *mm, struct vm_area_struct *vma,
4078 unsigned long vaddr = *position; 4078 unsigned long vaddr = *position;
4079 unsigned long remainder = *nr_pages; 4079 unsigned long remainder = *nr_pages;
4080 struct hstate *h = hstate_vma(vma); 4080 struct hstate *h = hstate_vma(vma);
4081 int err = -EFAULT;
4081 4082
4082 while (vaddr < vma->vm_end && remainder) { 4083 while (vaddr < vma->vm_end && remainder) {
4083 pte_t *pte; 4084 pte_t *pte;
@@ -4154,11 +4155,7 @@ long follow_hugetlb_page(struct mm_struct *mm, struct vm_area_struct *vma,
4154 } 4155 }
4155 ret = hugetlb_fault(mm, vma, vaddr, fault_flags); 4156 ret = hugetlb_fault(mm, vma, vaddr, fault_flags);
4156 if (ret & VM_FAULT_ERROR) { 4157 if (ret & VM_FAULT_ERROR) {
4157 int err = vm_fault_to_errno(ret, flags); 4158 err = vm_fault_to_errno(ret, flags);
4158
4159 if (err)
4160 return err;
4161
4162 remainder = 0; 4159 remainder = 0;
4163 break; 4160 break;
4164 } 4161 }
@@ -4213,7 +4210,7 @@ same_page:
4213 */ 4210 */
4214 *position = vaddr; 4211 *position = vaddr;
4215 4212
4216 return i ? i : -EFAULT; 4213 return i ? i : err;
4217} 4214}
4218 4215
4219#ifndef __HAVE_ARCH_FLUSH_HUGETLB_TLB_RANGE 4216#ifndef __HAVE_ARCH_FLUSH_HUGETLB_TLB_RANGE
diff --git a/mm/internal.h b/mm/internal.h
index 24d88f084705..4ef49fc55e58 100644
--- a/mm/internal.h
+++ b/mm/internal.h
@@ -498,6 +498,7 @@ extern struct workqueue_struct *mm_percpu_wq;
498#ifdef CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH 498#ifdef CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH
499void try_to_unmap_flush(void); 499void try_to_unmap_flush(void);
500void try_to_unmap_flush_dirty(void); 500void try_to_unmap_flush_dirty(void);
501void flush_tlb_batched_pending(struct mm_struct *mm);
501#else 502#else
502static inline void try_to_unmap_flush(void) 503static inline void try_to_unmap_flush(void)
503{ 504{
@@ -505,7 +506,9 @@ static inline void try_to_unmap_flush(void)
505static inline void try_to_unmap_flush_dirty(void) 506static inline void try_to_unmap_flush_dirty(void)
506{ 507{
507} 508}
508 509static inline void flush_tlb_batched_pending(struct mm_struct *mm)
510{
511}
509#endif /* CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH */ 512#endif /* CONFIG_ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH */
510 513
511extern const struct trace_print_flags pageflag_names[]; 514extern const struct trace_print_flags pageflag_names[];
diff --git a/mm/kasan/report.c b/mm/kasan/report.c
index 04bb1d3eb9ec..6bcfb01ba038 100644
--- a/mm/kasan/report.c
+++ b/mm/kasan/report.c
@@ -401,6 +401,7 @@ void kasan_report(unsigned long addr, size_t size,
401 disable_trace_on_warning(); 401 disable_trace_on_warning();
402 402
403 info.access_addr = (void *)addr; 403 info.access_addr = (void *)addr;
404 info.first_bad_addr = (void *)addr;
404 info.access_size = size; 405 info.access_size = size;
405 info.is_write = is_write; 406 info.is_write = is_write;
406 info.ip = ip; 407 info.ip = ip;
diff --git a/mm/madvise.c b/mm/madvise.c
index 9976852f1e1c..47d8d8a25eae 100644
--- a/mm/madvise.c
+++ b/mm/madvise.c
@@ -320,6 +320,7 @@ static int madvise_free_pte_range(pmd_t *pmd, unsigned long addr,
320 320
321 tlb_remove_check_page_size_change(tlb, PAGE_SIZE); 321 tlb_remove_check_page_size_change(tlb, PAGE_SIZE);
322 orig_pte = pte = pte_offset_map_lock(mm, pmd, addr, &ptl); 322 orig_pte = pte = pte_offset_map_lock(mm, pmd, addr, &ptl);
323 flush_tlb_batched_pending(mm);
323 arch_enter_lazy_mmu_mode(); 324 arch_enter_lazy_mmu_mode();
324 for (; addr != end; pte++, addr += PAGE_SIZE) { 325 for (; addr != end; pte++, addr += PAGE_SIZE) {
325 ptent = *pte; 326 ptent = *pte;
diff --git a/mm/memory.c b/mm/memory.c
index 0e517be91a89..f65beaad319b 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -1197,6 +1197,7 @@ again:
1197 init_rss_vec(rss); 1197 init_rss_vec(rss);
1198 start_pte = pte_offset_map_lock(mm, pmd, addr, &ptl); 1198 start_pte = pte_offset_map_lock(mm, pmd, addr, &ptl);
1199 pte = start_pte; 1199 pte = start_pte;
1200 flush_tlb_batched_pending(mm);
1200 arch_enter_lazy_mmu_mode(); 1201 arch_enter_lazy_mmu_mode();
1201 do { 1202 do {
1202 pte_t ptent = *pte; 1203 pte_t ptent = *pte;
diff --git a/mm/mprotect.c b/mm/mprotect.c
index 1a8c9ca83e48..4180ad8cc9c5 100644
--- a/mm/mprotect.c
+++ b/mm/mprotect.c
@@ -64,6 +64,7 @@ static unsigned long change_pte_range(struct vm_area_struct *vma, pmd_t *pmd,
64 atomic_read(&vma->vm_mm->mm_users) == 1) 64 atomic_read(&vma->vm_mm->mm_users) == 1)
65 target_node = numa_node_id(); 65 target_node = numa_node_id();
66 66
67 flush_tlb_batched_pending(vma->vm_mm);
67 arch_enter_lazy_mmu_mode(); 68 arch_enter_lazy_mmu_mode();
68 do { 69 do {
69 oldpte = *pte; 70 oldpte = *pte;
diff --git a/mm/mremap.c b/mm/mremap.c
index cd8a1b199ef9..3f23715d3c69 100644
--- a/mm/mremap.c
+++ b/mm/mremap.c
@@ -152,6 +152,7 @@ static void move_ptes(struct vm_area_struct *vma, pmd_t *old_pmd,
152 new_ptl = pte_lockptr(mm, new_pmd); 152 new_ptl = pte_lockptr(mm, new_pmd);
153 if (new_ptl != old_ptl) 153 if (new_ptl != old_ptl)
154 spin_lock_nested(new_ptl, SINGLE_DEPTH_NESTING); 154 spin_lock_nested(new_ptl, SINGLE_DEPTH_NESTING);
155 flush_tlb_batched_pending(vma->vm_mm);
155 arch_enter_lazy_mmu_mode(); 156 arch_enter_lazy_mmu_mode();
156 157
157 for (; old_addr < old_end; old_pte++, old_addr += PAGE_SIZE, 158 for (; old_addr < old_end; old_pte++, old_addr += PAGE_SIZE,
@@ -428,6 +429,7 @@ static struct vm_area_struct *vma_to_resize(unsigned long addr,
428static unsigned long mremap_to(unsigned long addr, unsigned long old_len, 429static unsigned long mremap_to(unsigned long addr, unsigned long old_len,
429 unsigned long new_addr, unsigned long new_len, bool *locked, 430 unsigned long new_addr, unsigned long new_len, bool *locked,
430 struct vm_userfaultfd_ctx *uf, 431 struct vm_userfaultfd_ctx *uf,
432 struct list_head *uf_unmap_early,
431 struct list_head *uf_unmap) 433 struct list_head *uf_unmap)
432{ 434{
433 struct mm_struct *mm = current->mm; 435 struct mm_struct *mm = current->mm;
@@ -446,7 +448,7 @@ static unsigned long mremap_to(unsigned long addr, unsigned long old_len,
446 if (addr + old_len > new_addr && new_addr + new_len > addr) 448 if (addr + old_len > new_addr && new_addr + new_len > addr)
447 goto out; 449 goto out;
448 450
449 ret = do_munmap(mm, new_addr, new_len, NULL); 451 ret = do_munmap(mm, new_addr, new_len, uf_unmap_early);
450 if (ret) 452 if (ret)
451 goto out; 453 goto out;
452 454
@@ -514,6 +516,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
514 unsigned long charged = 0; 516 unsigned long charged = 0;
515 bool locked = false; 517 bool locked = false;
516 struct vm_userfaultfd_ctx uf = NULL_VM_UFFD_CTX; 518 struct vm_userfaultfd_ctx uf = NULL_VM_UFFD_CTX;
519 LIST_HEAD(uf_unmap_early);
517 LIST_HEAD(uf_unmap); 520 LIST_HEAD(uf_unmap);
518 521
519 if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE)) 522 if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE))
@@ -541,7 +544,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
541 544
542 if (flags & MREMAP_FIXED) { 545 if (flags & MREMAP_FIXED) {
543 ret = mremap_to(addr, old_len, new_addr, new_len, 546 ret = mremap_to(addr, old_len, new_addr, new_len,
544 &locked, &uf, &uf_unmap); 547 &locked, &uf, &uf_unmap_early, &uf_unmap);
545 goto out; 548 goto out;
546 } 549 }
547 550
@@ -621,6 +624,7 @@ out:
621 up_write(&current->mm->mmap_sem); 624 up_write(&current->mm->mmap_sem);
622 if (locked && new_len > old_len) 625 if (locked && new_len > old_len)
623 mm_populate(new_addr + old_len, new_len - old_len); 626 mm_populate(new_addr + old_len, new_len - old_len);
627 userfaultfd_unmap_complete(mm, &uf_unmap_early);
624 mremap_userfaultfd_complete(&uf, addr, new_addr, old_len); 628 mremap_userfaultfd_complete(&uf, addr, new_addr, old_len);
625 userfaultfd_unmap_complete(mm, &uf_unmap); 629 userfaultfd_unmap_complete(mm, &uf_unmap);
626 return ret; 630 return ret;
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index 6d30e914afb6..fc32aa81f359 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -4891,9 +4891,11 @@ int numa_zonelist_order_handler(struct ctl_table *table, int write,
4891 NUMA_ZONELIST_ORDER_LEN); 4891 NUMA_ZONELIST_ORDER_LEN);
4892 user_zonelist_order = oldval; 4892 user_zonelist_order = oldval;
4893 } else if (oldval != user_zonelist_order) { 4893 } else if (oldval != user_zonelist_order) {
4894 mem_hotplug_begin();
4894 mutex_lock(&zonelists_mutex); 4895 mutex_lock(&zonelists_mutex);
4895 build_all_zonelists(NULL, NULL); 4896 build_all_zonelists(NULL, NULL);
4896 mutex_unlock(&zonelists_mutex); 4897 mutex_unlock(&zonelists_mutex);
4898 mem_hotplug_done();
4897 } 4899 }
4898 } 4900 }
4899out: 4901out:
diff --git a/mm/page_io.c b/mm/page_io.c
index b6c4ac388209..5f61b54ee1f3 100644
--- a/mm/page_io.c
+++ b/mm/page_io.c
@@ -22,6 +22,7 @@
22#include <linux/frontswap.h> 22#include <linux/frontswap.h>
23#include <linux/blkdev.h> 23#include <linux/blkdev.h>
24#include <linux/uio.h> 24#include <linux/uio.h>
25#include <linux/sched/task.h>
25#include <asm/pgtable.h> 26#include <asm/pgtable.h>
26 27
27static struct bio *get_swap_bio(gfp_t gfp_flags, 28static struct bio *get_swap_bio(gfp_t gfp_flags,
@@ -136,6 +137,7 @@ out:
136 WRITE_ONCE(bio->bi_private, NULL); 137 WRITE_ONCE(bio->bi_private, NULL);
137 bio_put(bio); 138 bio_put(bio);
138 wake_up_process(waiter); 139 wake_up_process(waiter);
140 put_task_struct(waiter);
139} 141}
140 142
141int generic_swapfile_activate(struct swap_info_struct *sis, 143int generic_swapfile_activate(struct swap_info_struct *sis,
@@ -378,6 +380,11 @@ int swap_readpage(struct page *page, bool do_poll)
378 goto out; 380 goto out;
379 } 381 }
380 bdev = bio->bi_bdev; 382 bdev = bio->bi_bdev;
383 /*
384 * Keep this task valid during swap readpage because the oom killer may
385 * attempt to access it in the page fault retry time check.
386 */
387 get_task_struct(current);
381 bio->bi_private = current; 388 bio->bi_private = current;
382 bio_set_op_attrs(bio, REQ_OP_READ, 0); 389 bio_set_op_attrs(bio, REQ_OP_READ, 0);
383 count_vm_event(PSWPIN); 390 count_vm_event(PSWPIN);
diff --git a/mm/rmap.c b/mm/rmap.c
index ced14f1af6dc..c8993c63eb25 100644
--- a/mm/rmap.c
+++ b/mm/rmap.c
@@ -605,6 +605,13 @@ static void set_tlb_ubc_flush_pending(struct mm_struct *mm, bool writable)
605 tlb_ubc->flush_required = true; 605 tlb_ubc->flush_required = true;
606 606
607 /* 607 /*
608 * Ensure compiler does not re-order the setting of tlb_flush_batched
609 * before the PTE is cleared.
610 */
611 barrier();
612 mm->tlb_flush_batched = true;
613
614 /*
608 * If the PTE was dirty then it's best to assume it's writable. The 615 * If the PTE was dirty then it's best to assume it's writable. The
609 * caller must use try_to_unmap_flush_dirty() or try_to_unmap_flush() 616 * caller must use try_to_unmap_flush_dirty() or try_to_unmap_flush()
610 * before the page is queued for IO. 617 * before the page is queued for IO.
@@ -631,6 +638,35 @@ static bool should_defer_flush(struct mm_struct *mm, enum ttu_flags flags)
631 638
632 return should_defer; 639 return should_defer;
633} 640}
641
642/*
643 * Reclaim unmaps pages under the PTL but do not flush the TLB prior to
644 * releasing the PTL if TLB flushes are batched. It's possible for a parallel
645 * operation such as mprotect or munmap to race between reclaim unmapping
646 * the page and flushing the page. If this race occurs, it potentially allows
647 * access to data via a stale TLB entry. Tracking all mm's that have TLB
648 * batching in flight would be expensive during reclaim so instead track
649 * whether TLB batching occurred in the past and if so then do a flush here
650 * if required. This will cost one additional flush per reclaim cycle paid
651 * by the first operation at risk such as mprotect and mumap.
652 *
653 * This must be called under the PTL so that an access to tlb_flush_batched
654 * that is potentially a "reclaim vs mprotect/munmap/etc" race will synchronise
655 * via the PTL.
656 */
657void flush_tlb_batched_pending(struct mm_struct *mm)
658{
659 if (mm->tlb_flush_batched) {
660 flush_tlb_mm(mm);
661
662 /*
663 * Do not allow the compiler to re-order the clearing of
664 * tlb_flush_batched before the tlb is flushed.
665 */
666 barrier();
667 mm->tlb_flush_batched = false;
668 }
669}
634#else 670#else
635static void set_tlb_ubc_flush_pending(struct mm_struct *mm, bool writable) 671static void set_tlb_ubc_flush_pending(struct mm_struct *mm, bool writable)
636{ 672{
diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c
index 013eea76685e..308acb9d814b 100644
--- a/mm/zsmalloc.c
+++ b/mm/zsmalloc.c
@@ -2453,7 +2453,6 @@ void zs_destroy_pool(struct zs_pool *pool)
2453 } 2453 }
2454 2454
2455 destroy_cache(pool); 2455 destroy_cache(pool);
2456 kfree(pool->size_class);
2457 kfree(pool->name); 2456 kfree(pool->name);
2458 kfree(pool); 2457 kfree(pool);
2459} 2458}
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index e1133bc634b5..8a3ce79b1307 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -1549,9 +1549,41 @@ batadv_tt_global_entry_has_orig(const struct batadv_tt_global_entry *entry,
1549 return found; 1549 return found;
1550} 1550}
1551 1551
1552/**
1553 * batadv_tt_global_sync_flags - update TT sync flags
1554 * @tt_global: the TT global entry to update sync flags in
1555 *
1556 * Updates the sync flag bits in the tt_global flag attribute with a logical
1557 * OR of all sync flags from any of its TT orig entries.
1558 */
1559static void
1560batadv_tt_global_sync_flags(struct batadv_tt_global_entry *tt_global)
1561{
1562 struct batadv_tt_orig_list_entry *orig_entry;
1563 const struct hlist_head *head;
1564 u16 flags = BATADV_NO_FLAGS;
1565
1566 rcu_read_lock();
1567 head = &tt_global->orig_list;
1568 hlist_for_each_entry_rcu(orig_entry, head, list)
1569 flags |= orig_entry->flags;
1570 rcu_read_unlock();
1571
1572 flags |= tt_global->common.flags & (~BATADV_TT_SYNC_MASK);
1573 tt_global->common.flags = flags;
1574}
1575
1576/**
1577 * batadv_tt_global_orig_entry_add - add or update a TT orig entry
1578 * @tt_global: the TT global entry to add an orig entry in
1579 * @orig_node: the originator to add an orig entry for
1580 * @ttvn: translation table version number of this changeset
1581 * @flags: TT sync flags
1582 */
1552static void 1583static void
1553batadv_tt_global_orig_entry_add(struct batadv_tt_global_entry *tt_global, 1584batadv_tt_global_orig_entry_add(struct batadv_tt_global_entry *tt_global,
1554 struct batadv_orig_node *orig_node, int ttvn) 1585 struct batadv_orig_node *orig_node, int ttvn,
1586 u8 flags)
1555{ 1587{
1556 struct batadv_tt_orig_list_entry *orig_entry; 1588 struct batadv_tt_orig_list_entry *orig_entry;
1557 1589
@@ -1561,7 +1593,8 @@ batadv_tt_global_orig_entry_add(struct batadv_tt_global_entry *tt_global,
1561 * was added during a "temporary client detection" 1593 * was added during a "temporary client detection"
1562 */ 1594 */
1563 orig_entry->ttvn = ttvn; 1595 orig_entry->ttvn = ttvn;
1564 goto out; 1596 orig_entry->flags = flags;
1597 goto sync_flags;
1565 } 1598 }
1566 1599
1567 orig_entry = kmem_cache_zalloc(batadv_tt_orig_cache, GFP_ATOMIC); 1600 orig_entry = kmem_cache_zalloc(batadv_tt_orig_cache, GFP_ATOMIC);
@@ -1573,6 +1606,7 @@ batadv_tt_global_orig_entry_add(struct batadv_tt_global_entry *tt_global,
1573 batadv_tt_global_size_inc(orig_node, tt_global->common.vid); 1606 batadv_tt_global_size_inc(orig_node, tt_global->common.vid);
1574 orig_entry->orig_node = orig_node; 1607 orig_entry->orig_node = orig_node;
1575 orig_entry->ttvn = ttvn; 1608 orig_entry->ttvn = ttvn;
1609 orig_entry->flags = flags;
1576 kref_init(&orig_entry->refcount); 1610 kref_init(&orig_entry->refcount);
1577 1611
1578 spin_lock_bh(&tt_global->list_lock); 1612 spin_lock_bh(&tt_global->list_lock);
@@ -1582,6 +1616,8 @@ batadv_tt_global_orig_entry_add(struct batadv_tt_global_entry *tt_global,
1582 spin_unlock_bh(&tt_global->list_lock); 1616 spin_unlock_bh(&tt_global->list_lock);
1583 atomic_inc(&tt_global->orig_list_count); 1617 atomic_inc(&tt_global->orig_list_count);
1584 1618
1619sync_flags:
1620 batadv_tt_global_sync_flags(tt_global);
1585out: 1621out:
1586 if (orig_entry) 1622 if (orig_entry)
1587 batadv_tt_orig_list_entry_put(orig_entry); 1623 batadv_tt_orig_list_entry_put(orig_entry);
@@ -1703,10 +1739,10 @@ static bool batadv_tt_global_add(struct batadv_priv *bat_priv,
1703 } 1739 }
1704 1740
1705 /* the change can carry possible "attribute" flags like the 1741 /* the change can carry possible "attribute" flags like the
1706 * TT_CLIENT_WIFI, therefore they have to be copied in the 1742 * TT_CLIENT_TEMP, therefore they have to be copied in the
1707 * client entry 1743 * client entry
1708 */ 1744 */
1709 common->flags |= flags; 1745 common->flags |= flags & (~BATADV_TT_SYNC_MASK);
1710 1746
1711 /* If there is the BATADV_TT_CLIENT_ROAM flag set, there is only 1747 /* If there is the BATADV_TT_CLIENT_ROAM flag set, there is only
1712 * one originator left in the list and we previously received a 1748 * one originator left in the list and we previously received a
@@ -1723,7 +1759,8 @@ static bool batadv_tt_global_add(struct batadv_priv *bat_priv,
1723 } 1759 }
1724add_orig_entry: 1760add_orig_entry:
1725 /* add the new orig_entry (if needed) or update it */ 1761 /* add the new orig_entry (if needed) or update it */
1726 batadv_tt_global_orig_entry_add(tt_global_entry, orig_node, ttvn); 1762 batadv_tt_global_orig_entry_add(tt_global_entry, orig_node, ttvn,
1763 flags & BATADV_TT_SYNC_MASK);
1727 1764
1728 batadv_dbg(BATADV_DBG_TT, bat_priv, 1765 batadv_dbg(BATADV_DBG_TT, bat_priv,
1729 "Creating new global tt entry: %pM (vid: %d, via %pM)\n", 1766 "Creating new global tt entry: %pM (vid: %d, via %pM)\n",
@@ -1946,6 +1983,7 @@ batadv_tt_global_dump_subentry(struct sk_buff *msg, u32 portid, u32 seq,
1946 struct batadv_tt_orig_list_entry *orig, 1983 struct batadv_tt_orig_list_entry *orig,
1947 bool best) 1984 bool best)
1948{ 1985{
1986 u16 flags = (common->flags & (~BATADV_TT_SYNC_MASK)) | orig->flags;
1949 void *hdr; 1987 void *hdr;
1950 struct batadv_orig_node_vlan *vlan; 1988 struct batadv_orig_node_vlan *vlan;
1951 u8 last_ttvn; 1989 u8 last_ttvn;
@@ -1975,7 +2013,7 @@ batadv_tt_global_dump_subentry(struct sk_buff *msg, u32 portid, u32 seq,
1975 nla_put_u8(msg, BATADV_ATTR_TT_LAST_TTVN, last_ttvn) || 2013 nla_put_u8(msg, BATADV_ATTR_TT_LAST_TTVN, last_ttvn) ||
1976 nla_put_u32(msg, BATADV_ATTR_TT_CRC32, crc) || 2014 nla_put_u32(msg, BATADV_ATTR_TT_CRC32, crc) ||
1977 nla_put_u16(msg, BATADV_ATTR_TT_VID, common->vid) || 2015 nla_put_u16(msg, BATADV_ATTR_TT_VID, common->vid) ||
1978 nla_put_u32(msg, BATADV_ATTR_TT_FLAGS, common->flags)) 2016 nla_put_u32(msg, BATADV_ATTR_TT_FLAGS, flags))
1979 goto nla_put_failure; 2017 goto nla_put_failure;
1980 2018
1981 if (best && nla_put_flag(msg, BATADV_ATTR_FLAG_BEST)) 2019 if (best && nla_put_flag(msg, BATADV_ATTR_FLAG_BEST))
@@ -2589,6 +2627,7 @@ static u32 batadv_tt_global_crc(struct batadv_priv *bat_priv,
2589 unsigned short vid) 2627 unsigned short vid)
2590{ 2628{
2591 struct batadv_hashtable *hash = bat_priv->tt.global_hash; 2629 struct batadv_hashtable *hash = bat_priv->tt.global_hash;
2630 struct batadv_tt_orig_list_entry *tt_orig;
2592 struct batadv_tt_common_entry *tt_common; 2631 struct batadv_tt_common_entry *tt_common;
2593 struct batadv_tt_global_entry *tt_global; 2632 struct batadv_tt_global_entry *tt_global;
2594 struct hlist_head *head; 2633 struct hlist_head *head;
@@ -2627,8 +2666,9 @@ static u32 batadv_tt_global_crc(struct batadv_priv *bat_priv,
2627 /* find out if this global entry is announced by this 2666 /* find out if this global entry is announced by this
2628 * originator 2667 * originator
2629 */ 2668 */
2630 if (!batadv_tt_global_entry_has_orig(tt_global, 2669 tt_orig = batadv_tt_global_orig_entry_find(tt_global,
2631 orig_node)) 2670 orig_node);
2671 if (!tt_orig)
2632 continue; 2672 continue;
2633 2673
2634 /* use network order to read the VID: this ensures that 2674 /* use network order to read the VID: this ensures that
@@ -2640,10 +2680,12 @@ static u32 batadv_tt_global_crc(struct batadv_priv *bat_priv,
2640 /* compute the CRC on flags that have to be kept in sync 2680 /* compute the CRC on flags that have to be kept in sync
2641 * among nodes 2681 * among nodes
2642 */ 2682 */
2643 flags = tt_common->flags & BATADV_TT_SYNC_MASK; 2683 flags = tt_orig->flags;
2644 crc_tmp = crc32c(crc_tmp, &flags, sizeof(flags)); 2684 crc_tmp = crc32c(crc_tmp, &flags, sizeof(flags));
2645 2685
2646 crc ^= crc32c(crc_tmp, tt_common->addr, ETH_ALEN); 2686 crc ^= crc32c(crc_tmp, tt_common->addr, ETH_ALEN);
2687
2688 batadv_tt_orig_list_entry_put(tt_orig);
2647 } 2689 }
2648 rcu_read_unlock(); 2690 rcu_read_unlock();
2649 } 2691 }
diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
index ea43a6449247..a62795868794 100644
--- a/net/batman-adv/types.h
+++ b/net/batman-adv/types.h
@@ -1260,6 +1260,7 @@ struct batadv_tt_global_entry {
1260 * struct batadv_tt_orig_list_entry - orig node announcing a non-mesh client 1260 * struct batadv_tt_orig_list_entry - orig node announcing a non-mesh client
1261 * @orig_node: pointer to orig node announcing this non-mesh client 1261 * @orig_node: pointer to orig node announcing this non-mesh client
1262 * @ttvn: translation table version number which added the non-mesh client 1262 * @ttvn: translation table version number which added the non-mesh client
1263 * @flags: per orig entry TT sync flags
1263 * @list: list node for batadv_tt_global_entry::orig_list 1264 * @list: list node for batadv_tt_global_entry::orig_list
1264 * @refcount: number of contexts the object is used 1265 * @refcount: number of contexts the object is used
1265 * @rcu: struct used for freeing in an RCU-safe manner 1266 * @rcu: struct used for freeing in an RCU-safe manner
@@ -1267,6 +1268,7 @@ struct batadv_tt_global_entry {
1267struct batadv_tt_orig_list_entry { 1268struct batadv_tt_orig_list_entry {
1268 struct batadv_orig_node *orig_node; 1269 struct batadv_orig_node *orig_node;
1269 u8 ttvn; 1270 u8 ttvn;
1271 u8 flags;
1270 struct hlist_node list; 1272 struct hlist_node list;
1271 struct kref refcount; 1273 struct kref refcount;
1272 struct rcu_head rcu; 1274 struct rcu_head rcu;
diff --git a/net/ceph/crush/mapper.c b/net/ceph/crush/mapper.c
index 746b145bfd11..417df675c71b 100644
--- a/net/ceph/crush/mapper.c
+++ b/net/ceph/crush/mapper.c
@@ -306,7 +306,7 @@ static __u32 *get_choose_arg_weights(const struct crush_bucket_straw2 *bucket,
306 const struct crush_choose_arg *arg, 306 const struct crush_choose_arg *arg,
307 int position) 307 int position)
308{ 308{
309 if (!arg || !arg->weight_set || arg->weight_set_size == 0) 309 if (!arg || !arg->weight_set)
310 return bucket->item_weights; 310 return bucket->item_weights;
311 311
312 if (position >= arg->weight_set_size) 312 if (position >= arg->weight_set_size)
diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
index b7cc615d42ef..a67298c7e0cd 100644
--- a/net/ceph/messenger.c
+++ b/net/ceph/messenger.c
@@ -1287,10 +1287,10 @@ static void prepare_write_message(struct ceph_connection *con)
1287 if (m->needs_out_seq) { 1287 if (m->needs_out_seq) {
1288 m->hdr.seq = cpu_to_le64(++con->out_seq); 1288 m->hdr.seq = cpu_to_le64(++con->out_seq);
1289 m->needs_out_seq = false; 1289 m->needs_out_seq = false;
1290 }
1291 1290
1292 if (con->ops->reencode_message) 1291 if (con->ops->reencode_message)
1293 con->ops->reencode_message(m); 1292 con->ops->reencode_message(m);
1293 }
1294 1294
1295 dout("prepare_write_message %p seq %lld type %d len %d+%d+%zd\n", 1295 dout("prepare_write_message %p seq %lld type %d len %d+%d+%zd\n",
1296 m, con->out_seq, le16_to_cpu(m->hdr.type), 1296 m, con->out_seq, le16_to_cpu(m->hdr.type),
diff --git a/net/ceph/osd_client.c b/net/ceph/osd_client.c
index 901bb8221366..dcfbdd74dfd1 100644
--- a/net/ceph/osd_client.c
+++ b/net/ceph/osd_client.c
@@ -1337,6 +1337,8 @@ static enum calc_target_result calc_target(struct ceph_osd_client *osdc,
1337 bool legacy_change; 1337 bool legacy_change;
1338 bool split = false; 1338 bool split = false;
1339 bool sort_bitwise = ceph_osdmap_flag(osdc, CEPH_OSDMAP_SORTBITWISE); 1339 bool sort_bitwise = ceph_osdmap_flag(osdc, CEPH_OSDMAP_SORTBITWISE);
1340 bool recovery_deletes = ceph_osdmap_flag(osdc,
1341 CEPH_OSDMAP_RECOVERY_DELETES);
1340 enum calc_target_result ct_res; 1342 enum calc_target_result ct_res;
1341 int ret; 1343 int ret;
1342 1344
@@ -1399,6 +1401,8 @@ static enum calc_target_result calc_target(struct ceph_osd_client *osdc,
1399 pi->pg_num, 1401 pi->pg_num,
1400 t->sort_bitwise, 1402 t->sort_bitwise,
1401 sort_bitwise, 1403 sort_bitwise,
1404 t->recovery_deletes,
1405 recovery_deletes,
1402 &last_pgid)) 1406 &last_pgid))
1403 force_resend = true; 1407 force_resend = true;
1404 1408
@@ -1421,6 +1425,7 @@ static enum calc_target_result calc_target(struct ceph_osd_client *osdc,
1421 t->pg_num = pi->pg_num; 1425 t->pg_num = pi->pg_num;
1422 t->pg_num_mask = pi->pg_num_mask; 1426 t->pg_num_mask = pi->pg_num_mask;
1423 t->sort_bitwise = sort_bitwise; 1427 t->sort_bitwise = sort_bitwise;
1428 t->recovery_deletes = recovery_deletes;
1424 1429
1425 t->osd = acting.primary; 1430 t->osd = acting.primary;
1426 } 1431 }
@@ -1918,10 +1923,12 @@ static void encode_request_partial(struct ceph_osd_request *req,
1918 } 1923 }
1919 1924
1920 ceph_encode_32(&p, req->r_attempts); /* retry_attempt */ 1925 ceph_encode_32(&p, req->r_attempts); /* retry_attempt */
1921 BUG_ON(p != end - 8); /* space for features */ 1926 BUG_ON(p > end - 8); /* space for features */
1922 1927
1923 msg->hdr.version = cpu_to_le16(8); /* MOSDOp v8 */ 1928 msg->hdr.version = cpu_to_le16(8); /* MOSDOp v8 */
1924 /* front_len is finalized in encode_request_finish() */ 1929 /* front_len is finalized in encode_request_finish() */
1930 msg->front.iov_len = p - msg->front.iov_base;
1931 msg->hdr.front_len = cpu_to_le32(msg->front.iov_len);
1925 msg->hdr.data_len = cpu_to_le32(data_len); 1932 msg->hdr.data_len = cpu_to_le32(data_len);
1926 /* 1933 /*
1927 * The header "data_off" is a hint to the receiver allowing it 1934 * The header "data_off" is a hint to the receiver allowing it
@@ -1937,11 +1944,12 @@ static void encode_request_partial(struct ceph_osd_request *req,
1937static void encode_request_finish(struct ceph_msg *msg) 1944static void encode_request_finish(struct ceph_msg *msg)
1938{ 1945{
1939 void *p = msg->front.iov_base; 1946 void *p = msg->front.iov_base;
1947 void *const partial_end = p + msg->front.iov_len;
1940 void *const end = p + msg->front_alloc_len; 1948 void *const end = p + msg->front_alloc_len;
1941 1949
1942 if (CEPH_HAVE_FEATURE(msg->con->peer_features, RESEND_ON_SPLIT)) { 1950 if (CEPH_HAVE_FEATURE(msg->con->peer_features, RESEND_ON_SPLIT)) {
1943 /* luminous OSD -- encode features and be done */ 1951 /* luminous OSD -- encode features and be done */
1944 p = end - 8; 1952 p = partial_end;
1945 ceph_encode_64(&p, msg->con->peer_features); 1953 ceph_encode_64(&p, msg->con->peer_features);
1946 } else { 1954 } else {
1947 struct { 1955 struct {
@@ -1984,7 +1992,7 @@ static void encode_request_finish(struct ceph_msg *msg)
1984 oid_len = p - oid; 1992 oid_len = p - oid;
1985 1993
1986 tail = p; 1994 tail = p;
1987 tail_len = (end - p) - 8; 1995 tail_len = partial_end - p;
1988 1996
1989 p = msg->front.iov_base; 1997 p = msg->front.iov_base;
1990 ceph_encode_copy(&p, &head.client_inc, sizeof(head.client_inc)); 1998 ceph_encode_copy(&p, &head.client_inc, sizeof(head.client_inc));
diff --git a/net/ceph/osdmap.c b/net/ceph/osdmap.c
index 64ae9f89773a..f358d0bfa76b 100644
--- a/net/ceph/osdmap.c
+++ b/net/ceph/osdmap.c
@@ -295,6 +295,10 @@ static int decode_choose_args(void **p, void *end, struct crush_map *c)
295 ret = decode_choose_arg(p, end, arg); 295 ret = decode_choose_arg(p, end, arg);
296 if (ret) 296 if (ret)
297 goto fail; 297 goto fail;
298
299 if (arg->ids_size &&
300 arg->ids_size != c->buckets[bucket_index]->size)
301 goto e_inval;
298 } 302 }
299 303
300 insert_choose_arg_map(&c->choose_args, arg_map); 304 insert_choose_arg_map(&c->choose_args, arg_map);
@@ -2078,6 +2082,8 @@ bool ceph_is_new_interval(const struct ceph_osds *old_acting,
2078 u32 new_pg_num, 2082 u32 new_pg_num,
2079 bool old_sort_bitwise, 2083 bool old_sort_bitwise,
2080 bool new_sort_bitwise, 2084 bool new_sort_bitwise,
2085 bool old_recovery_deletes,
2086 bool new_recovery_deletes,
2081 const struct ceph_pg *pgid) 2087 const struct ceph_pg *pgid)
2082{ 2088{
2083 return !osds_equal(old_acting, new_acting) || 2089 return !osds_equal(old_acting, new_acting) ||
@@ -2085,7 +2091,8 @@ bool ceph_is_new_interval(const struct ceph_osds *old_acting,
2085 old_size != new_size || 2091 old_size != new_size ||
2086 old_min_size != new_min_size || 2092 old_min_size != new_min_size ||
2087 ceph_pg_is_split(pgid, old_pg_num, new_pg_num) || 2093 ceph_pg_is_split(pgid, old_pg_num, new_pg_num) ||
2088 old_sort_bitwise != new_sort_bitwise; 2094 old_sort_bitwise != new_sort_bitwise ||
2095 old_recovery_deletes != new_recovery_deletes;
2089} 2096}
2090 2097
2091static int calc_pg_rank(int osd, const struct ceph_osds *acting) 2098static int calc_pg_rank(int osd, const struct ceph_osds *acting)
@@ -2301,10 +2308,17 @@ static u32 raw_pg_to_pps(struct ceph_pg_pool_info *pi,
2301 } 2308 }
2302} 2309}
2303 2310
2311/*
2312 * Magic value used for a "default" fallback choose_args, used if the
2313 * crush_choose_arg_map passed to do_crush() does not exist. If this
2314 * also doesn't exist, fall back to canonical weights.
2315 */
2316#define CEPH_DEFAULT_CHOOSE_ARGS -1
2317
2304static int do_crush(struct ceph_osdmap *map, int ruleno, int x, 2318static int do_crush(struct ceph_osdmap *map, int ruleno, int x,
2305 int *result, int result_max, 2319 int *result, int result_max,
2306 const __u32 *weight, int weight_max, 2320 const __u32 *weight, int weight_max,
2307 u64 choose_args_index) 2321 s64 choose_args_index)
2308{ 2322{
2309 struct crush_choose_arg_map *arg_map; 2323 struct crush_choose_arg_map *arg_map;
2310 int r; 2324 int r;
@@ -2313,6 +2327,9 @@ static int do_crush(struct ceph_osdmap *map, int ruleno, int x,
2313 2327
2314 arg_map = lookup_choose_arg_map(&map->crush->choose_args, 2328 arg_map = lookup_choose_arg_map(&map->crush->choose_args,
2315 choose_args_index); 2329 choose_args_index);
2330 if (!arg_map)
2331 arg_map = lookup_choose_arg_map(&map->crush->choose_args,
2332 CEPH_DEFAULT_CHOOSE_ARGS);
2316 2333
2317 mutex_lock(&map->crush_workspace_mutex); 2334 mutex_lock(&map->crush_workspace_mutex);
2318 r = crush_do_rule(map->crush, ruleno, x, result, result_max, 2335 r = crush_do_rule(map->crush, ruleno, x, result, result_max,
@@ -2423,40 +2440,23 @@ static void apply_upmap(struct ceph_osdmap *osdmap,
2423 for (i = 0; i < pg->pg_upmap.len; i++) 2440 for (i = 0; i < pg->pg_upmap.len; i++)
2424 raw->osds[i] = pg->pg_upmap.osds[i]; 2441 raw->osds[i] = pg->pg_upmap.osds[i];
2425 raw->size = pg->pg_upmap.len; 2442 raw->size = pg->pg_upmap.len;
2426 return; 2443 /* check and apply pg_upmap_items, if any */
2427 } 2444 }
2428 2445
2429 pg = lookup_pg_mapping(&osdmap->pg_upmap_items, pgid); 2446 pg = lookup_pg_mapping(&osdmap->pg_upmap_items, pgid);
2430 if (pg) { 2447 if (pg) {
2431 /* 2448 for (i = 0; i < raw->size; i++) {
2432 * Note: this approach does not allow a bidirectional swap, 2449 for (j = 0; j < pg->pg_upmap_items.len; j++) {
2433 * e.g., [[1,2],[2,1]] applied to [0,1,2] -> [0,2,1]. 2450 int from = pg->pg_upmap_items.from_to[j][0];
2434 */ 2451 int to = pg->pg_upmap_items.from_to[j][1];
2435 for (i = 0; i < pg->pg_upmap_items.len; i++) { 2452
2436 int from = pg->pg_upmap_items.from_to[i][0]; 2453 if (from == raw->osds[i]) {
2437 int to = pg->pg_upmap_items.from_to[i][1]; 2454 if (!(to != CRUSH_ITEM_NONE &&
2438 int pos = -1; 2455 to < osdmap->max_osd &&
2439 bool exists = false; 2456 osdmap->osd_weight[to] == 0))
2440 2457 raw->osds[i] = to;
2441 /* make sure replacement doesn't already appear */
2442 for (j = 0; j < raw->size; j++) {
2443 int osd = raw->osds[j];
2444
2445 if (osd == to) {
2446 exists = true;
2447 break; 2458 break;
2448 } 2459 }
2449 /* ignore mapping if target is marked out */
2450 if (osd == from && pos < 0 &&
2451 !(to != CRUSH_ITEM_NONE &&
2452 to < osdmap->max_osd &&
2453 osdmap->osd_weight[to] == 0)) {
2454 pos = j;
2455 }
2456 }
2457 if (!exists && pos >= 0) {
2458 raw->osds[pos] = to;
2459 return;
2460 } 2460 }
2461 } 2461 }
2462 } 2462 }
diff --git a/net/core/dev.c b/net/core/dev.c
index 8515f8fe0460..ce15a06d5558 100644
--- a/net/core/dev.c
+++ b/net/core/dev.c
@@ -2739,7 +2739,7 @@ static inline bool skb_needs_check(struct sk_buff *skb, bool tx_path)
2739{ 2739{
2740 if (tx_path) 2740 if (tx_path)
2741 return skb->ip_summed != CHECKSUM_PARTIAL && 2741 return skb->ip_summed != CHECKSUM_PARTIAL &&
2742 skb->ip_summed != CHECKSUM_NONE; 2742 skb->ip_summed != CHECKSUM_UNNECESSARY;
2743 2743
2744 return skb->ip_summed == CHECKSUM_NONE; 2744 return skb->ip_summed == CHECKSUM_NONE;
2745} 2745}
diff --git a/net/core/dev_ioctl.c b/net/core/dev_ioctl.c
index 06b147d7d9e2..709a4e6fb447 100644
--- a/net/core/dev_ioctl.c
+++ b/net/core/dev_ioctl.c
@@ -263,6 +263,8 @@ static int dev_ifsioc(struct net *net, struct ifreq *ifr, unsigned int cmd)
263 return dev_set_mtu(dev, ifr->ifr_mtu); 263 return dev_set_mtu(dev, ifr->ifr_mtu);
264 264
265 case SIOCSIFHWADDR: 265 case SIOCSIFHWADDR:
266 if (dev->addr_len > sizeof(struct sockaddr))
267 return -EINVAL;
266 return dev_set_mac_address(dev, &ifr->ifr_hwaddr); 268 return dev_set_mac_address(dev, &ifr->ifr_hwaddr);
267 269
268 case SIOCSIFHWBROADCAST: 270 case SIOCSIFHWBROADCAST:
diff --git a/net/core/netpoll.c b/net/core/netpoll.c
index 8357f164c660..912731bed7b7 100644
--- a/net/core/netpoll.c
+++ b/net/core/netpoll.c
@@ -666,7 +666,7 @@ int netpoll_setup(struct netpoll *np)
666 int err; 666 int err;
667 667
668 rtnl_lock(); 668 rtnl_lock();
669 if (np->dev_name) { 669 if (np->dev_name[0]) {
670 struct net *net = current->nsproxy->net_ns; 670 struct net *net = current->nsproxy->net_ns;
671 ndev = __dev_get_by_name(net, np->dev_name); 671 ndev = __dev_get_by_name(net, np->dev_name);
672 } 672 }
diff --git a/net/dccp/feat.c b/net/dccp/feat.c
index 1704948e6a12..f227f002c73d 100644
--- a/net/dccp/feat.c
+++ b/net/dccp/feat.c
@@ -1471,9 +1471,12 @@ int dccp_feat_init(struct sock *sk)
1471 * singleton values (which always leads to failure). 1471 * singleton values (which always leads to failure).
1472 * These settings can still (later) be overridden via sockopts. 1472 * These settings can still (later) be overridden via sockopts.
1473 */ 1473 */
1474 if (ccid_get_builtin_ccids(&tx.val, &tx.len) || 1474 if (ccid_get_builtin_ccids(&tx.val, &tx.len))
1475 ccid_get_builtin_ccids(&rx.val, &rx.len))
1476 return -ENOBUFS; 1475 return -ENOBUFS;
1476 if (ccid_get_builtin_ccids(&rx.val, &rx.len)) {
1477 kfree(tx.val);
1478 return -ENOBUFS;
1479 }
1477 1480
1478 if (!dccp_feat_prefer(sysctl_dccp_tx_ccid, tx.val, tx.len) || 1481 if (!dccp_feat_prefer(sysctl_dccp_tx_ccid, tx.val, tx.len) ||
1479 !dccp_feat_prefer(sysctl_dccp_rx_ccid, rx.val, rx.len)) 1482 !dccp_feat_prefer(sysctl_dccp_rx_ccid, rx.val, rx.len))
diff --git a/net/dccp/ipv4.c b/net/dccp/ipv4.c
index f85d901f4e3f..1b202f16531f 100644
--- a/net/dccp/ipv4.c
+++ b/net/dccp/ipv4.c
@@ -631,6 +631,7 @@ int dccp_v4_conn_request(struct sock *sk, struct sk_buff *skb)
631 goto drop_and_free; 631 goto drop_and_free;
632 632
633 inet_csk_reqsk_queue_hash_add(sk, req, DCCP_TIMEOUT_INIT); 633 inet_csk_reqsk_queue_hash_add(sk, req, DCCP_TIMEOUT_INIT);
634 reqsk_put(req);
634 return 0; 635 return 0;
635 636
636drop_and_free: 637drop_and_free:
diff --git a/net/dccp/ipv6.c b/net/dccp/ipv6.c
index c376af5bfdfb..1b58eac8aad3 100644
--- a/net/dccp/ipv6.c
+++ b/net/dccp/ipv6.c
@@ -380,6 +380,7 @@ static int dccp_v6_conn_request(struct sock *sk, struct sk_buff *skb)
380 goto drop_and_free; 380 goto drop_and_free;
381 381
382 inet_csk_reqsk_queue_hash_add(sk, req, DCCP_TIMEOUT_INIT); 382 inet_csk_reqsk_queue_hash_add(sk, req, DCCP_TIMEOUT_INIT);
383 reqsk_put(req);
383 return 0; 384 return 0;
384 385
385drop_and_free: 386drop_and_free:
diff --git a/net/dsa/dsa2.c b/net/dsa/dsa2.c
index 56e46090526b..c442051d5a55 100644
--- a/net/dsa/dsa2.c
+++ b/net/dsa/dsa2.c
@@ -509,21 +509,22 @@ static int dsa_cpu_parse(struct dsa_port *port, u32 index,
509 dst->cpu_dp->netdev = ethernet_dev; 509 dst->cpu_dp->netdev = ethernet_dev;
510 } 510 }
511 511
512 /* Initialize cpu_port_mask now for drv->setup()
513 * to have access to a correct value, just like what
514 * net/dsa/dsa.c::dsa_switch_setup_one does.
515 */
516 ds->cpu_port_mask |= BIT(index);
517
512 tag_protocol = ds->ops->get_tag_protocol(ds); 518 tag_protocol = ds->ops->get_tag_protocol(ds);
513 dst->tag_ops = dsa_resolve_tag_protocol(tag_protocol); 519 dst->tag_ops = dsa_resolve_tag_protocol(tag_protocol);
514 if (IS_ERR(dst->tag_ops)) { 520 if (IS_ERR(dst->tag_ops)) {
515 dev_warn(ds->dev, "No tagger for this switch\n"); 521 dev_warn(ds->dev, "No tagger for this switch\n");
522 ds->cpu_port_mask &= ~BIT(index);
516 return PTR_ERR(dst->tag_ops); 523 return PTR_ERR(dst->tag_ops);
517 } 524 }
518 525
519 dst->rcv = dst->tag_ops->rcv; 526 dst->rcv = dst->tag_ops->rcv;
520 527
521 /* Initialize cpu_port_mask now for drv->setup()
522 * to have access to a correct value, just like what
523 * net/dsa/dsa.c::dsa_switch_setup_one does.
524 */
525 ds->cpu_port_mask |= BIT(index);
526
527 return 0; 528 return 0;
528} 529}
529 530
diff --git a/net/ipv4/cipso_ipv4.c b/net/ipv4/cipso_ipv4.c
index c4c6e1969ed0..2ae8f54cb321 100644
--- a/net/ipv4/cipso_ipv4.c
+++ b/net/ipv4/cipso_ipv4.c
@@ -1523,9 +1523,17 @@ unsigned char *cipso_v4_optptr(const struct sk_buff *skb)
1523 int taglen; 1523 int taglen;
1524 1524
1525 for (optlen = iph->ihl*4 - sizeof(struct iphdr); optlen > 0; ) { 1525 for (optlen = iph->ihl*4 - sizeof(struct iphdr); optlen > 0; ) {
1526 if (optptr[0] == IPOPT_CIPSO) 1526 switch (optptr[0]) {
1527 case IPOPT_CIPSO:
1527 return optptr; 1528 return optptr;
1528 taglen = optptr[1]; 1529 case IPOPT_END:
1530 return NULL;
1531 case IPOPT_NOOP:
1532 taglen = 1;
1533 break;
1534 default:
1535 taglen = optptr[1];
1536 }
1529 optlen -= taglen; 1537 optlen -= taglen;
1530 optptr += taglen; 1538 optptr += taglen;
1531 } 1539 }
diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
index 222100103808..b8d18171cca3 100644
--- a/net/ipv4/fib_semantics.c
+++ b/net/ipv4/fib_semantics.c
@@ -1452,7 +1452,7 @@ static int call_fib_nh_notifiers(struct fib_nh *fib_nh,
1452 return call_fib_notifiers(dev_net(fib_nh->nh_dev), event_type, 1452 return call_fib_notifiers(dev_net(fib_nh->nh_dev), event_type,
1453 &info.info); 1453 &info.info);
1454 case FIB_EVENT_NH_DEL: 1454 case FIB_EVENT_NH_DEL:
1455 if ((IN_DEV_IGNORE_ROUTES_WITH_LINKDOWN(in_dev) && 1455 if ((in_dev && IN_DEV_IGNORE_ROUTES_WITH_LINKDOWN(in_dev) &&
1456 fib_nh->nh_flags & RTNH_F_LINKDOWN) || 1456 fib_nh->nh_flags & RTNH_F_LINKDOWN) ||
1457 (fib_nh->nh_flags & RTNH_F_DEAD)) 1457 (fib_nh->nh_flags & RTNH_F_DEAD))
1458 return call_fib_notifiers(dev_net(fib_nh->nh_dev), 1458 return call_fib_notifiers(dev_net(fib_nh->nh_dev),
diff --git a/net/ipv4/fou.c b/net/ipv4/fou.c
index 8e0257d01200..1540db65241a 100644
--- a/net/ipv4/fou.c
+++ b/net/ipv4/fou.c
@@ -450,6 +450,7 @@ out_unlock:
450out: 450out:
451 NAPI_GRO_CB(skb)->flush |= flush; 451 NAPI_GRO_CB(skb)->flush |= flush;
452 skb_gro_remcsum_cleanup(skb, &grc); 452 skb_gro_remcsum_cleanup(skb, &grc);
453 skb->remcsum_offload = 0;
453 454
454 return pp; 455 return pp;
455} 456}
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 2920e0cb09f8..53de1424c13c 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -107,6 +107,7 @@ int sysctl_tcp_invalid_ratelimit __read_mostly = HZ/2;
107#define FLAG_ORIG_SACK_ACKED 0x200 /* Never retransmitted data are (s)acked */ 107#define FLAG_ORIG_SACK_ACKED 0x200 /* Never retransmitted data are (s)acked */
108#define FLAG_SND_UNA_ADVANCED 0x400 /* Snd_una was changed (!= FLAG_DATA_ACKED) */ 108#define FLAG_SND_UNA_ADVANCED 0x400 /* Snd_una was changed (!= FLAG_DATA_ACKED) */
109#define FLAG_DSACKING_ACK 0x800 /* SACK blocks contained D-SACK info */ 109#define FLAG_DSACKING_ACK 0x800 /* SACK blocks contained D-SACK info */
110#define FLAG_SET_XMIT_TIMER 0x1000 /* Set TLP or RTO timer */
110#define FLAG_SACK_RENEGING 0x2000 /* snd_una advanced to a sacked seq */ 111#define FLAG_SACK_RENEGING 0x2000 /* snd_una advanced to a sacked seq */
111#define FLAG_UPDATE_TS_RECENT 0x4000 /* tcp_replace_ts_recent() */ 112#define FLAG_UPDATE_TS_RECENT 0x4000 /* tcp_replace_ts_recent() */
112#define FLAG_NO_CHALLENGE_ACK 0x8000 /* do not call tcp_send_challenge_ack() */ 113#define FLAG_NO_CHALLENGE_ACK 0x8000 /* do not call tcp_send_challenge_ack() */
@@ -2520,8 +2521,8 @@ static inline void tcp_end_cwnd_reduction(struct sock *sk)
2520 return; 2521 return;
2521 2522
2522 /* Reset cwnd to ssthresh in CWR or Recovery (unless it's undone) */ 2523 /* Reset cwnd to ssthresh in CWR or Recovery (unless it's undone) */
2523 if (inet_csk(sk)->icsk_ca_state == TCP_CA_CWR || 2524 if (tp->snd_ssthresh < TCP_INFINITE_SSTHRESH &&
2524 (tp->undo_marker && tp->snd_ssthresh < TCP_INFINITE_SSTHRESH)) { 2525 (inet_csk(sk)->icsk_ca_state == TCP_CA_CWR || tp->undo_marker)) {
2525 tp->snd_cwnd = tp->snd_ssthresh; 2526 tp->snd_cwnd = tp->snd_ssthresh;
2526 tp->snd_cwnd_stamp = tcp_jiffies32; 2527 tp->snd_cwnd_stamp = tcp_jiffies32;
2527 } 2528 }
@@ -3004,10 +3005,7 @@ void tcp_rearm_rto(struct sock *sk)
3004 /* Offset the time elapsed after installing regular RTO */ 3005 /* Offset the time elapsed after installing regular RTO */
3005 if (icsk->icsk_pending == ICSK_TIME_REO_TIMEOUT || 3006 if (icsk->icsk_pending == ICSK_TIME_REO_TIMEOUT ||
3006 icsk->icsk_pending == ICSK_TIME_LOSS_PROBE) { 3007 icsk->icsk_pending == ICSK_TIME_LOSS_PROBE) {
3007 struct sk_buff *skb = tcp_write_queue_head(sk); 3008 s64 delta_us = tcp_rto_delta_us(sk);
3008 u64 rto_time_stamp = skb->skb_mstamp +
3009 jiffies_to_usecs(rto);
3010 s64 delta_us = rto_time_stamp - tp->tcp_mstamp;
3011 /* delta_us may not be positive if the socket is locked 3009 /* delta_us may not be positive if the socket is locked
3012 * when the retrans timer fires and is rescheduled. 3010 * when the retrans timer fires and is rescheduled.
3013 */ 3011 */
@@ -3019,6 +3017,13 @@ void tcp_rearm_rto(struct sock *sk)
3019 } 3017 }
3020} 3018}
3021 3019
3020/* Try to schedule a loss probe; if that doesn't work, then schedule an RTO. */
3021static void tcp_set_xmit_timer(struct sock *sk)
3022{
3023 if (!tcp_schedule_loss_probe(sk))
3024 tcp_rearm_rto(sk);
3025}
3026
3022/* If we get here, the whole TSO packet has not been acked. */ 3027/* If we get here, the whole TSO packet has not been acked. */
3023static u32 tcp_tso_acked(struct sock *sk, struct sk_buff *skb) 3028static u32 tcp_tso_acked(struct sock *sk, struct sk_buff *skb)
3024{ 3029{
@@ -3180,7 +3185,7 @@ static int tcp_clean_rtx_queue(struct sock *sk, int prior_fackets,
3180 ca_rtt_us, sack->rate); 3185 ca_rtt_us, sack->rate);
3181 3186
3182 if (flag & FLAG_ACKED) { 3187 if (flag & FLAG_ACKED) {
3183 tcp_rearm_rto(sk); 3188 flag |= FLAG_SET_XMIT_TIMER; /* set TLP or RTO timer */
3184 if (unlikely(icsk->icsk_mtup.probe_size && 3189 if (unlikely(icsk->icsk_mtup.probe_size &&
3185 !after(tp->mtu_probe.probe_seq_end, tp->snd_una))) { 3190 !after(tp->mtu_probe.probe_seq_end, tp->snd_una))) {
3186 tcp_mtup_probe_success(sk); 3191 tcp_mtup_probe_success(sk);
@@ -3208,7 +3213,7 @@ static int tcp_clean_rtx_queue(struct sock *sk, int prior_fackets,
3208 * after when the head was last (re)transmitted. Otherwise the 3213 * after when the head was last (re)transmitted. Otherwise the
3209 * timeout may continue to extend in loss recovery. 3214 * timeout may continue to extend in loss recovery.
3210 */ 3215 */
3211 tcp_rearm_rto(sk); 3216 flag |= FLAG_SET_XMIT_TIMER; /* set TLP or RTO timer */
3212 } 3217 }
3213 3218
3214 if (icsk->icsk_ca_ops->pkts_acked) { 3219 if (icsk->icsk_ca_ops->pkts_acked) {
@@ -3580,9 +3585,6 @@ static int tcp_ack(struct sock *sk, const struct sk_buff *skb, int flag)
3580 if (after(ack, tp->snd_nxt)) 3585 if (after(ack, tp->snd_nxt))
3581 goto invalid_ack; 3586 goto invalid_ack;
3582 3587
3583 if (icsk->icsk_pending == ICSK_TIME_LOSS_PROBE)
3584 tcp_rearm_rto(sk);
3585
3586 if (after(ack, prior_snd_una)) { 3588 if (after(ack, prior_snd_una)) {
3587 flag |= FLAG_SND_UNA_ADVANCED; 3589 flag |= FLAG_SND_UNA_ADVANCED;
3588 icsk->icsk_retransmits = 0; 3590 icsk->icsk_retransmits = 0;
@@ -3647,18 +3649,20 @@ static int tcp_ack(struct sock *sk, const struct sk_buff *skb, int flag)
3647 flag |= tcp_clean_rtx_queue(sk, prior_fackets, prior_snd_una, &acked, 3649 flag |= tcp_clean_rtx_queue(sk, prior_fackets, prior_snd_una, &acked,
3648 &sack_state); 3650 &sack_state);
3649 3651
3652 if (tp->tlp_high_seq)
3653 tcp_process_tlp_ack(sk, ack, flag);
3654 /* If needed, reset TLP/RTO timer; RACK may later override this. */
3655 if (flag & FLAG_SET_XMIT_TIMER)
3656 tcp_set_xmit_timer(sk);
3657
3650 if (tcp_ack_is_dubious(sk, flag)) { 3658 if (tcp_ack_is_dubious(sk, flag)) {
3651 is_dupack = !(flag & (FLAG_SND_UNA_ADVANCED | FLAG_NOT_DUP)); 3659 is_dupack = !(flag & (FLAG_SND_UNA_ADVANCED | FLAG_NOT_DUP));
3652 tcp_fastretrans_alert(sk, acked, is_dupack, &flag, &rexmit); 3660 tcp_fastretrans_alert(sk, acked, is_dupack, &flag, &rexmit);
3653 } 3661 }
3654 if (tp->tlp_high_seq)
3655 tcp_process_tlp_ack(sk, ack, flag);
3656 3662
3657 if ((flag & FLAG_FORWARD_PROGRESS) || !(flag & FLAG_NOT_DUP)) 3663 if ((flag & FLAG_FORWARD_PROGRESS) || !(flag & FLAG_NOT_DUP))
3658 sk_dst_confirm(sk); 3664 sk_dst_confirm(sk);
3659 3665
3660 if (icsk->icsk_pending == ICSK_TIME_RETRANS)
3661 tcp_schedule_loss_probe(sk);
3662 delivered = tp->delivered - delivered; /* freshly ACKed or SACKed */ 3666 delivered = tp->delivered - delivered; /* freshly ACKed or SACKed */
3663 lost = tp->lost - lost; /* freshly marked lost */ 3667 lost = tp->lost - lost; /* freshly marked lost */
3664 tcp_rate_gen(sk, delivered, lost, sack_state.rate); 3668 tcp_rate_gen(sk, delivered, lost, sack_state.rate);
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index 4e985dea1dd2..b7661a68d498 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -2202,9 +2202,10 @@ static bool tcp_small_queue_check(struct sock *sk, const struct sk_buff *skb,
2202static void tcp_chrono_set(struct tcp_sock *tp, const enum tcp_chrono new) 2202static void tcp_chrono_set(struct tcp_sock *tp, const enum tcp_chrono new)
2203{ 2203{
2204 const u32 now = tcp_jiffies32; 2204 const u32 now = tcp_jiffies32;
2205 enum tcp_chrono old = tp->chrono_type;
2205 2206
2206 if (tp->chrono_type > TCP_CHRONO_UNSPEC) 2207 if (old > TCP_CHRONO_UNSPEC)
2207 tp->chrono_stat[tp->chrono_type - 1] += now - tp->chrono_start; 2208 tp->chrono_stat[old - 1] += now - tp->chrono_start;
2208 tp->chrono_start = now; 2209 tp->chrono_start = now;
2209 tp->chrono_type = new; 2210 tp->chrono_type = new;
2210} 2211}
@@ -2376,24 +2377,15 @@ bool tcp_schedule_loss_probe(struct sock *sk)
2376{ 2377{
2377 struct inet_connection_sock *icsk = inet_csk(sk); 2378 struct inet_connection_sock *icsk = inet_csk(sk);
2378 struct tcp_sock *tp = tcp_sk(sk); 2379 struct tcp_sock *tp = tcp_sk(sk);
2379 u32 timeout, tlp_time_stamp, rto_time_stamp;
2380 u32 rtt = usecs_to_jiffies(tp->srtt_us >> 3); 2380 u32 rtt = usecs_to_jiffies(tp->srtt_us >> 3);
2381 u32 timeout, rto_delta_us;
2381 2382
2382 /* No consecutive loss probes. */
2383 if (WARN_ON(icsk->icsk_pending == ICSK_TIME_LOSS_PROBE)) {
2384 tcp_rearm_rto(sk);
2385 return false;
2386 }
2387 /* Don't do any loss probe on a Fast Open connection before 3WHS 2383 /* Don't do any loss probe on a Fast Open connection before 3WHS
2388 * finishes. 2384 * finishes.
2389 */ 2385 */
2390 if (tp->fastopen_rsk) 2386 if (tp->fastopen_rsk)
2391 return false; 2387 return false;
2392 2388
2393 /* TLP is only scheduled when next timer event is RTO. */
2394 if (icsk->icsk_pending != ICSK_TIME_RETRANS)
2395 return false;
2396
2397 /* Schedule a loss probe in 2*RTT for SACK capable connections 2389 /* Schedule a loss probe in 2*RTT for SACK capable connections
2398 * in Open state, that are either limited by cwnd or application. 2390 * in Open state, that are either limited by cwnd or application.
2399 */ 2391 */
@@ -2416,14 +2408,10 @@ bool tcp_schedule_loss_probe(struct sock *sk)
2416 (rtt + (rtt >> 1) + TCP_DELACK_MAX)); 2408 (rtt + (rtt >> 1) + TCP_DELACK_MAX));
2417 timeout = max_t(u32, timeout, msecs_to_jiffies(10)); 2409 timeout = max_t(u32, timeout, msecs_to_jiffies(10));
2418 2410
2419 /* If RTO is shorter, just schedule TLP in its place. */ 2411 /* If the RTO formula yields an earlier time, then use that time. */
2420 tlp_time_stamp = tcp_jiffies32 + timeout; 2412 rto_delta_us = tcp_rto_delta_us(sk); /* How far in future is RTO? */
2421 rto_time_stamp = (u32)inet_csk(sk)->icsk_timeout; 2413 if (rto_delta_us > 0)
2422 if ((s32)(tlp_time_stamp - rto_time_stamp) > 0) { 2414 timeout = min_t(u32, timeout, usecs_to_jiffies(rto_delta_us));
2423 s32 delta = rto_time_stamp - tcp_jiffies32;
2424 if (delta > 0)
2425 timeout = delta;
2426 }
2427 2415
2428 inet_csk_reset_xmit_timer(sk, ICSK_TIME_LOSS_PROBE, timeout, 2416 inet_csk_reset_xmit_timer(sk, ICSK_TIME_LOSS_PROBE, timeout,
2429 TCP_RTO_MAX); 2417 TCP_RTO_MAX);
@@ -3448,6 +3436,10 @@ int tcp_connect(struct sock *sk)
3448 int err; 3436 int err;
3449 3437
3450 tcp_call_bpf(sk, BPF_SOCK_OPS_TCP_CONNECT_CB); 3438 tcp_call_bpf(sk, BPF_SOCK_OPS_TCP_CONNECT_CB);
3439
3440 if (inet_csk(sk)->icsk_af_ops->rebuild_header(sk))
3441 return -EHOSTUNREACH; /* Routing failure or similar. */
3442
3451 tcp_connect_init(sk); 3443 tcp_connect_init(sk);
3452 3444
3453 if (unlikely(tp->repair)) { 3445 if (unlikely(tp->repair)) {
diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c
index c0feeeef962a..e906014890b6 100644
--- a/net/ipv4/tcp_timer.c
+++ b/net/ipv4/tcp_timer.c
@@ -652,7 +652,8 @@ static void tcp_keepalive_timer (unsigned long data)
652 goto death; 652 goto death;
653 } 653 }
654 654
655 if (!sock_flag(sk, SOCK_KEEPOPEN) || sk->sk_state == TCP_CLOSE) 655 if (!sock_flag(sk, SOCK_KEEPOPEN) ||
656 ((1 << sk->sk_state) & (TCPF_CLOSE | TCPF_SYN_SENT)))
656 goto out; 657 goto out;
657 658
658 elapsed = keepalive_time_when(tp); 659 elapsed = keepalive_time_when(tp);
diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
index b057653ceca9..e6276fa3750b 100644
--- a/net/ipv4/udp.c
+++ b/net/ipv4/udp.c
@@ -1163,34 +1163,32 @@ out:
1163 return ret; 1163 return ret;
1164} 1164}
1165 1165
1166#if BITS_PER_LONG == 64 1166#define UDP_SKB_IS_STATELESS 0x80000000
1167
1167static void udp_set_dev_scratch(struct sk_buff *skb) 1168static void udp_set_dev_scratch(struct sk_buff *skb)
1168{ 1169{
1169 struct udp_dev_scratch *scratch; 1170 struct udp_dev_scratch *scratch = udp_skb_scratch(skb);
1170 1171
1171 BUILD_BUG_ON(sizeof(struct udp_dev_scratch) > sizeof(long)); 1172 BUILD_BUG_ON(sizeof(struct udp_dev_scratch) > sizeof(long));
1172 scratch = (struct udp_dev_scratch *)&skb->dev_scratch; 1173 scratch->_tsize_state = skb->truesize;
1173 scratch->truesize = skb->truesize; 1174#if BITS_PER_LONG == 64
1174 scratch->len = skb->len; 1175 scratch->len = skb->len;
1175 scratch->csum_unnecessary = !!skb_csum_unnecessary(skb); 1176 scratch->csum_unnecessary = !!skb_csum_unnecessary(skb);
1176 scratch->is_linear = !skb_is_nonlinear(skb); 1177 scratch->is_linear = !skb_is_nonlinear(skb);
1178#endif
1179 if (likely(!skb->_skb_refdst))
1180 scratch->_tsize_state |= UDP_SKB_IS_STATELESS;
1177} 1181}
1178 1182
1179static int udp_skb_truesize(struct sk_buff *skb) 1183static int udp_skb_truesize(struct sk_buff *skb)
1180{ 1184{
1181 return ((struct udp_dev_scratch *)&skb->dev_scratch)->truesize; 1185 return udp_skb_scratch(skb)->_tsize_state & ~UDP_SKB_IS_STATELESS;
1182}
1183#else
1184static void udp_set_dev_scratch(struct sk_buff *skb)
1185{
1186 skb->dev_scratch = skb->truesize;
1187} 1186}
1188 1187
1189static int udp_skb_truesize(struct sk_buff *skb) 1188static bool udp_skb_has_head_state(struct sk_buff *skb)
1190{ 1189{
1191 return skb->dev_scratch; 1190 return !(udp_skb_scratch(skb)->_tsize_state & UDP_SKB_IS_STATELESS);
1192} 1191}
1193#endif
1194 1192
1195/* fully reclaim rmem/fwd memory allocated for skb */ 1193/* fully reclaim rmem/fwd memory allocated for skb */
1196static void udp_rmem_release(struct sock *sk, int size, int partial, 1194static void udp_rmem_release(struct sock *sk, int size, int partial,
@@ -1388,10 +1386,10 @@ void skb_consume_udp(struct sock *sk, struct sk_buff *skb, int len)
1388 unlock_sock_fast(sk, slow); 1386 unlock_sock_fast(sk, slow);
1389 } 1387 }
1390 1388
1391 /* we cleared the head states previously only if the skb lacks any IP 1389 /* In the more common cases we cleared the head states previously,
1392 * options, see __udp_queue_rcv_skb(). 1390 * see __udp_queue_rcv_skb().
1393 */ 1391 */
1394 if (unlikely(IPCB(skb)->opt.optlen > 0)) 1392 if (unlikely(udp_skb_has_head_state(skb)))
1395 skb_release_head_state(skb); 1393 skb_release_head_state(skb);
1396 consume_stateless_skb(skb); 1394 consume_stateless_skb(skb);
1397} 1395}
@@ -1784,11 +1782,11 @@ static int __udp_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
1784 sk_mark_napi_id_once(sk, skb); 1782 sk_mark_napi_id_once(sk, skb);
1785 } 1783 }
1786 1784
1787 /* At recvmsg() time we need skb->dst to process IP options-related 1785 /* At recvmsg() time we may access skb->dst or skb->sp depending on
1788 * cmsg, elsewhere can we clear all pending head states while they are 1786 * the IP options and the cmsg flags, elsewhere can we clear all
1789 * hot in the cache 1787 * pending head states while they are hot in the cache
1790 */ 1788 */
1791 if (likely(IPCB(skb)->opt.optlen == 0)) 1789 if (likely(IPCB(skb)->opt.optlen == 0 && !skb_sec_path(skb)))
1792 skb_release_head_state(skb); 1790 skb_release_head_state(skb);
1793 1791
1794 rc = __udp_enqueue_schedule_skb(sk, skb); 1792 rc = __udp_enqueue_schedule_skb(sk, skb);
@@ -1930,7 +1928,7 @@ drop:
1930/* For TCP sockets, sk_rx_dst is protected by socket lock 1928/* For TCP sockets, sk_rx_dst is protected by socket lock
1931 * For UDP, we use xchg() to guard against concurrent changes. 1929 * For UDP, we use xchg() to guard against concurrent changes.
1932 */ 1930 */
1933static void udp_sk_rx_dst_set(struct sock *sk, struct dst_entry *dst) 1931void udp_sk_rx_dst_set(struct sock *sk, struct dst_entry *dst)
1934{ 1932{
1935 struct dst_entry *old; 1933 struct dst_entry *old;
1936 1934
@@ -1939,6 +1937,7 @@ static void udp_sk_rx_dst_set(struct sock *sk, struct dst_entry *dst)
1939 dst_release(old); 1937 dst_release(old);
1940 } 1938 }
1941} 1939}
1940EXPORT_SYMBOL(udp_sk_rx_dst_set);
1942 1941
1943/* 1942/*
1944 * Multicasts and broadcasts go to each listener. 1943 * Multicasts and broadcasts go to each listener.
diff --git a/net/ipv4/udp_offload.c b/net/ipv4/udp_offload.c
index 781250151d40..0932c85b42af 100644
--- a/net/ipv4/udp_offload.c
+++ b/net/ipv4/udp_offload.c
@@ -235,7 +235,7 @@ static struct sk_buff *udp4_ufo_fragment(struct sk_buff *skb,
235 if (uh->check == 0) 235 if (uh->check == 0)
236 uh->check = CSUM_MANGLED_0; 236 uh->check = CSUM_MANGLED_0;
237 237
238 skb->ip_summed = CHECKSUM_NONE; 238 skb->ip_summed = CHECKSUM_UNNECESSARY;
239 239
240 /* If there is no outer header we can fake a checksum offload 240 /* If there is no outer header we can fake a checksum offload
241 * due to the fact that we have already done the checksum in 241 * due to the fact that we have already done the checksum in
diff --git a/net/ipv6/exthdrs.c b/net/ipv6/exthdrs.c
index 4996d734f1d2..3cec529c6113 100644
--- a/net/ipv6/exthdrs.c
+++ b/net/ipv6/exthdrs.c
@@ -756,6 +756,7 @@ static bool ipv6_hop_jumbo(struct sk_buff *skb, int optoff)
756 if (pskb_trim_rcsum(skb, pkt_len + sizeof(struct ipv6hdr))) 756 if (pskb_trim_rcsum(skb, pkt_len + sizeof(struct ipv6hdr)))
757 goto drop; 757 goto drop;
758 758
759 IP6CB(skb)->flags |= IP6SKB_JUMBOGRAM;
759 return true; 760 return true;
760 761
761drop: 762drop:
diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
index 1422d6c08377..162efba0d0cd 100644
--- a/net/ipv6/ip6_output.c
+++ b/net/ipv6/ip6_output.c
@@ -673,8 +673,6 @@ int ip6_fragment(struct net *net, struct sock *sk, struct sk_buff *skb,
673 *prevhdr = NEXTHDR_FRAGMENT; 673 *prevhdr = NEXTHDR_FRAGMENT;
674 tmp_hdr = kmemdup(skb_network_header(skb), hlen, GFP_ATOMIC); 674 tmp_hdr = kmemdup(skb_network_header(skb), hlen, GFP_ATOMIC);
675 if (!tmp_hdr) { 675 if (!tmp_hdr) {
676 IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)),
677 IPSTATS_MIB_FRAGFAILS);
678 err = -ENOMEM; 676 err = -ENOMEM;
679 goto fail; 677 goto fail;
680 } 678 }
@@ -789,8 +787,6 @@ slow_path:
789 frag = alloc_skb(len + hlen + sizeof(struct frag_hdr) + 787 frag = alloc_skb(len + hlen + sizeof(struct frag_hdr) +
790 hroom + troom, GFP_ATOMIC); 788 hroom + troom, GFP_ATOMIC);
791 if (!frag) { 789 if (!frag) {
792 IP6_INC_STATS(net, ip6_dst_idev(skb_dst(skb)),
793 IPSTATS_MIB_FRAGFAILS);
794 err = -ENOMEM; 790 err = -ENOMEM;
795 goto fail; 791 goto fail;
796 } 792 }
diff --git a/net/ipv6/route.c b/net/ipv6/route.c
index 4d30c96a819d..a640fbcba15d 100644
--- a/net/ipv6/route.c
+++ b/net/ipv6/route.c
@@ -2351,6 +2351,7 @@ static void rt6_do_redirect(struct dst_entry *dst, struct sock *sk, struct sk_bu
2351 if (on_link) 2351 if (on_link)
2352 nrt->rt6i_flags &= ~RTF_GATEWAY; 2352 nrt->rt6i_flags &= ~RTF_GATEWAY;
2353 2353
2354 nrt->rt6i_protocol = RTPROT_REDIRECT;
2354 nrt->rt6i_gateway = *(struct in6_addr *)neigh->primary_key; 2355 nrt->rt6i_gateway = *(struct in6_addr *)neigh->primary_key;
2355 2356
2356 if (ip6_ins_rt(nrt)) 2357 if (ip6_ins_rt(nrt))
@@ -2461,6 +2462,7 @@ static struct rt6_info *rt6_add_route_info(struct net *net,
2461 .fc_dst_len = prefixlen, 2462 .fc_dst_len = prefixlen,
2462 .fc_flags = RTF_GATEWAY | RTF_ADDRCONF | RTF_ROUTEINFO | 2463 .fc_flags = RTF_GATEWAY | RTF_ADDRCONF | RTF_ROUTEINFO |
2463 RTF_UP | RTF_PREF(pref), 2464 RTF_UP | RTF_PREF(pref),
2465 .fc_protocol = RTPROT_RA,
2464 .fc_nlinfo.portid = 0, 2466 .fc_nlinfo.portid = 0,
2465 .fc_nlinfo.nlh = NULL, 2467 .fc_nlinfo.nlh = NULL,
2466 .fc_nlinfo.nl_net = net, 2468 .fc_nlinfo.nl_net = net,
@@ -2513,6 +2515,7 @@ struct rt6_info *rt6_add_dflt_router(const struct in6_addr *gwaddr,
2513 .fc_ifindex = dev->ifindex, 2515 .fc_ifindex = dev->ifindex,
2514 .fc_flags = RTF_GATEWAY | RTF_ADDRCONF | RTF_DEFAULT | 2516 .fc_flags = RTF_GATEWAY | RTF_ADDRCONF | RTF_DEFAULT |
2515 RTF_UP | RTF_EXPIRES | RTF_PREF(pref), 2517 RTF_UP | RTF_EXPIRES | RTF_PREF(pref),
2518 .fc_protocol = RTPROT_RA,
2516 .fc_nlinfo.portid = 0, 2519 .fc_nlinfo.portid = 0,
2517 .fc_nlinfo.nlh = NULL, 2520 .fc_nlinfo.nlh = NULL,
2518 .fc_nlinfo.nl_net = dev_net(dev), 2521 .fc_nlinfo.nl_net = dev_net(dev),
@@ -3424,14 +3427,6 @@ static int rt6_fill_node(struct net *net,
3424 rtm->rtm_flags = 0; 3427 rtm->rtm_flags = 0;
3425 rtm->rtm_scope = RT_SCOPE_UNIVERSE; 3428 rtm->rtm_scope = RT_SCOPE_UNIVERSE;
3426 rtm->rtm_protocol = rt->rt6i_protocol; 3429 rtm->rtm_protocol = rt->rt6i_protocol;
3427 if (rt->rt6i_flags & RTF_DYNAMIC)
3428 rtm->rtm_protocol = RTPROT_REDIRECT;
3429 else if (rt->rt6i_flags & RTF_ADDRCONF) {
3430 if (rt->rt6i_flags & (RTF_DEFAULT | RTF_ROUTEINFO))
3431 rtm->rtm_protocol = RTPROT_RA;
3432 else
3433 rtm->rtm_protocol = RTPROT_KERNEL;
3434 }
3435 3430
3436 if (rt->rt6i_flags & RTF_CACHE) 3431 if (rt->rt6i_flags & RTF_CACHE)
3437 rtm->rtm_flags |= RTM_F_CLONED; 3432 rtm->rtm_flags |= RTM_F_CLONED;
diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
index 4a3e65626e8b..578142b7ca3e 100644
--- a/net/ipv6/udp.c
+++ b/net/ipv6/udp.c
@@ -291,11 +291,7 @@ static struct sock *__udp6_lib_lookup_skb(struct sk_buff *skb,
291 struct udp_table *udptable) 291 struct udp_table *udptable)
292{ 292{
293 const struct ipv6hdr *iph = ipv6_hdr(skb); 293 const struct ipv6hdr *iph = ipv6_hdr(skb);
294 struct sock *sk;
295 294
296 sk = skb_steal_sock(skb);
297 if (unlikely(sk))
298 return sk;
299 return __udp6_lib_lookup(dev_net(skb->dev), &iph->saddr, sport, 295 return __udp6_lib_lookup(dev_net(skb->dev), &iph->saddr, sport,
300 &iph->daddr, dport, inet6_iif(skb), 296 &iph->daddr, dport, inet6_iif(skb),
301 udptable, skb); 297 udptable, skb);
@@ -332,6 +328,15 @@ struct sock *udp6_lib_lookup(struct net *net, const struct in6_addr *saddr, __be
332EXPORT_SYMBOL_GPL(udp6_lib_lookup); 328EXPORT_SYMBOL_GPL(udp6_lib_lookup);
333#endif 329#endif
334 330
331/* do not use the scratch area len for jumbogram: their length execeeds the
332 * scratch area space; note that the IP6CB flags is still in the first
333 * cacheline, so checking for jumbograms is cheap
334 */
335static int udp6_skb_len(struct sk_buff *skb)
336{
337 return unlikely(inet6_is_jumbogram(skb)) ? skb->len : udp_skb_len(skb);
338}
339
335/* 340/*
336 * This should be easy, if there is something there we 341 * This should be easy, if there is something there we
337 * return it, otherwise we block. 342 * return it, otherwise we block.
@@ -362,7 +367,7 @@ try_again:
362 if (!skb) 367 if (!skb)
363 return err; 368 return err;
364 369
365 ulen = udp_skb_len(skb); 370 ulen = udp6_skb_len(skb);
366 copied = len; 371 copied = len;
367 if (copied > ulen - off) 372 if (copied > ulen - off)
368 copied = ulen - off; 373 copied = ulen - off;
@@ -804,6 +809,24 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
804 if (udp6_csum_init(skb, uh, proto)) 809 if (udp6_csum_init(skb, uh, proto))
805 goto csum_error; 810 goto csum_error;
806 811
812 /* Check if the socket is already available, e.g. due to early demux */
813 sk = skb_steal_sock(skb);
814 if (sk) {
815 struct dst_entry *dst = skb_dst(skb);
816 int ret;
817
818 if (unlikely(sk->sk_rx_dst != dst))
819 udp_sk_rx_dst_set(sk, dst);
820
821 ret = udpv6_queue_rcv_skb(sk, skb);
822 sock_put(sk);
823
824 /* a return value > 0 means to resubmit the input */
825 if (ret > 0)
826 return ret;
827 return 0;
828 }
829
807 /* 830 /*
808 * Multicast receive code 831 * Multicast receive code
809 */ 832 */
@@ -812,11 +835,6 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
812 saddr, daddr, udptable, proto); 835 saddr, daddr, udptable, proto);
813 836
814 /* Unicast */ 837 /* Unicast */
815
816 /*
817 * check socket cache ... must talk to Alan about his plans
818 * for sock caches... i'll skip this for now.
819 */
820 sk = __udp6_lib_lookup_skb(skb, uh->source, uh->dest, udptable); 838 sk = __udp6_lib_lookup_skb(skb, uh->source, uh->dest, udptable);
821 if (sk) { 839 if (sk) {
822 int ret; 840 int ret;
diff --git a/net/ipv6/udp_offload.c b/net/ipv6/udp_offload.c
index a2267f80febb..e7d378c032cb 100644
--- a/net/ipv6/udp_offload.c
+++ b/net/ipv6/udp_offload.c
@@ -72,7 +72,7 @@ static struct sk_buff *udp6_ufo_fragment(struct sk_buff *skb,
72 if (uh->check == 0) 72 if (uh->check == 0)
73 uh->check = CSUM_MANGLED_0; 73 uh->check = CSUM_MANGLED_0;
74 74
75 skb->ip_summed = CHECKSUM_NONE; 75 skb->ip_summed = CHECKSUM_UNNECESSARY;
76 76
77 /* If there is no outer header we can fake a checksum offload 77 /* If there is no outer header we can fake a checksum offload
78 * due to the fact that we have already done the checksum in 78 * due to the fact that we have already done the checksum in
diff --git a/net/openvswitch/conntrack.c b/net/openvswitch/conntrack.c
index e3c4c6c3fef7..03859e386b47 100644
--- a/net/openvswitch/conntrack.c
+++ b/net/openvswitch/conntrack.c
@@ -1310,8 +1310,8 @@ static int parse_ct(const struct nlattr *attr, struct ovs_conntrack_info *info,
1310 1310
1311 nla_for_each_nested(a, attr, rem) { 1311 nla_for_each_nested(a, attr, rem) {
1312 int type = nla_type(a); 1312 int type = nla_type(a);
1313 int maxlen = ovs_ct_attr_lens[type].maxlen; 1313 int maxlen;
1314 int minlen = ovs_ct_attr_lens[type].minlen; 1314 int minlen;
1315 1315
1316 if (type > OVS_CT_ATTR_MAX) { 1316 if (type > OVS_CT_ATTR_MAX) {
1317 OVS_NLERR(log, 1317 OVS_NLERR(log,
@@ -1319,6 +1319,9 @@ static int parse_ct(const struct nlattr *attr, struct ovs_conntrack_info *info,
1319 type, OVS_CT_ATTR_MAX); 1319 type, OVS_CT_ATTR_MAX);
1320 return -EINVAL; 1320 return -EINVAL;
1321 } 1321 }
1322
1323 maxlen = ovs_ct_attr_lens[type].maxlen;
1324 minlen = ovs_ct_attr_lens[type].minlen;
1322 if (nla_len(a) < minlen || nla_len(a) > maxlen) { 1325 if (nla_len(a) < minlen || nla_len(a) > maxlen) {
1323 OVS_NLERR(log, 1326 OVS_NLERR(log,
1324 "Conntrack attr type has unexpected length (type=%d, length=%d, expected=%d)", 1327 "Conntrack attr type has unexpected length (type=%d, length=%d, expected=%d)",
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
index 008bb34ee324..0615c2a950fa 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -4329,7 +4329,7 @@ static int packet_set_ring(struct sock *sk, union tpacket_req_u *req_u,
4329 register_prot_hook(sk); 4329 register_prot_hook(sk);
4330 } 4330 }
4331 spin_unlock(&po->bind_lock); 4331 spin_unlock(&po->bind_lock);
4332 if (closing && (po->tp_version > TPACKET_V2)) { 4332 if (pg_vec && (po->tp_version > TPACKET_V2)) {
4333 /* Because we don't support block-based V3 on tx-ring */ 4333 /* Because we don't support block-based V3 on tx-ring */
4334 if (!tx_ring) 4334 if (!tx_ring)
4335 prb_shutdown_retire_blk_timer(po, rb_queue); 4335 prb_shutdown_retire_blk_timer(po, rb_queue);
diff --git a/net/rds/ib_recv.c b/net/rds/ib_recv.c
index e10624aa6959..9722bf839d9d 100644
--- a/net/rds/ib_recv.c
+++ b/net/rds/ib_recv.c
@@ -1015,8 +1015,10 @@ void rds_ib_recv_cqe_handler(struct rds_ib_connection *ic,
1015 if (rds_ib_ring_empty(&ic->i_recv_ring)) 1015 if (rds_ib_ring_empty(&ic->i_recv_ring))
1016 rds_ib_stats_inc(s_ib_rx_ring_empty); 1016 rds_ib_stats_inc(s_ib_rx_ring_empty);
1017 1017
1018 if (rds_ib_ring_low(&ic->i_recv_ring)) 1018 if (rds_ib_ring_low(&ic->i_recv_ring)) {
1019 rds_ib_recv_refill(conn, 0, GFP_NOWAIT); 1019 rds_ib_recv_refill(conn, 0, GFP_NOWAIT);
1020 rds_ib_stats_inc(s_ib_rx_refill_from_cq);
1021 }
1020} 1022}
1021 1023
1022int rds_ib_recv_path(struct rds_conn_path *cp) 1024int rds_ib_recv_path(struct rds_conn_path *cp)
@@ -1029,6 +1031,7 @@ int rds_ib_recv_path(struct rds_conn_path *cp)
1029 if (rds_conn_up(conn)) { 1031 if (rds_conn_up(conn)) {
1030 rds_ib_attempt_ack(ic); 1032 rds_ib_attempt_ack(ic);
1031 rds_ib_recv_refill(conn, 0, GFP_KERNEL); 1033 rds_ib_recv_refill(conn, 0, GFP_KERNEL);
1034 rds_ib_stats_inc(s_ib_rx_refill_from_thread);
1032 } 1035 }
1033 1036
1034 return ret; 1037 return ret;
diff --git a/net/sched/act_ipt.c b/net/sched/act_ipt.c
index 36f0ced9e60c..94ba5cfab860 100644
--- a/net/sched/act_ipt.c
+++ b/net/sched/act_ipt.c
@@ -36,8 +36,8 @@ static struct tc_action_ops act_ipt_ops;
36static unsigned int xt_net_id; 36static unsigned int xt_net_id;
37static struct tc_action_ops act_xt_ops; 37static struct tc_action_ops act_xt_ops;
38 38
39static int ipt_init_target(struct xt_entry_target *t, char *table, 39static int ipt_init_target(struct net *net, struct xt_entry_target *t,
40 unsigned int hook) 40 char *table, unsigned int hook)
41{ 41{
42 struct xt_tgchk_param par; 42 struct xt_tgchk_param par;
43 struct xt_target *target; 43 struct xt_target *target;
@@ -49,6 +49,7 @@ static int ipt_init_target(struct xt_entry_target *t, char *table,
49 return PTR_ERR(target); 49 return PTR_ERR(target);
50 50
51 t->u.kernel.target = target; 51 t->u.kernel.target = target;
52 par.net = net;
52 par.table = table; 53 par.table = table;
53 par.entryinfo = NULL; 54 par.entryinfo = NULL;
54 par.target = target; 55 par.target = target;
@@ -91,10 +92,11 @@ static const struct nla_policy ipt_policy[TCA_IPT_MAX + 1] = {
91 [TCA_IPT_TARG] = { .len = sizeof(struct xt_entry_target) }, 92 [TCA_IPT_TARG] = { .len = sizeof(struct xt_entry_target) },
92}; 93};
93 94
94static int __tcf_ipt_init(struct tc_action_net *tn, struct nlattr *nla, 95static int __tcf_ipt_init(struct net *net, unsigned int id, struct nlattr *nla,
95 struct nlattr *est, struct tc_action **a, 96 struct nlattr *est, struct tc_action **a,
96 const struct tc_action_ops *ops, int ovr, int bind) 97 const struct tc_action_ops *ops, int ovr, int bind)
97{ 98{
99 struct tc_action_net *tn = net_generic(net, id);
98 struct nlattr *tb[TCA_IPT_MAX + 1]; 100 struct nlattr *tb[TCA_IPT_MAX + 1];
99 struct tcf_ipt *ipt; 101 struct tcf_ipt *ipt;
100 struct xt_entry_target *td, *t; 102 struct xt_entry_target *td, *t;
@@ -159,7 +161,7 @@ static int __tcf_ipt_init(struct tc_action_net *tn, struct nlattr *nla,
159 if (unlikely(!t)) 161 if (unlikely(!t))
160 goto err2; 162 goto err2;
161 163
162 err = ipt_init_target(t, tname, hook); 164 err = ipt_init_target(net, t, tname, hook);
163 if (err < 0) 165 if (err < 0)
164 goto err3; 166 goto err3;
165 167
@@ -193,18 +195,16 @@ static int tcf_ipt_init(struct net *net, struct nlattr *nla,
193 struct nlattr *est, struct tc_action **a, int ovr, 195 struct nlattr *est, struct tc_action **a, int ovr,
194 int bind) 196 int bind)
195{ 197{
196 struct tc_action_net *tn = net_generic(net, ipt_net_id); 198 return __tcf_ipt_init(net, ipt_net_id, nla, est, a, &act_ipt_ops, ovr,
197 199 bind);
198 return __tcf_ipt_init(tn, nla, est, a, &act_ipt_ops, ovr, bind);
199} 200}
200 201
201static int tcf_xt_init(struct net *net, struct nlattr *nla, 202static int tcf_xt_init(struct net *net, struct nlattr *nla,
202 struct nlattr *est, struct tc_action **a, int ovr, 203 struct nlattr *est, struct tc_action **a, int ovr,
203 int bind) 204 int bind)
204{ 205{
205 struct tc_action_net *tn = net_generic(net, xt_net_id); 206 return __tcf_ipt_init(net, xt_net_id, nla, est, a, &act_xt_ops, ovr,
206 207 bind);
207 return __tcf_ipt_init(tn, nla, est, a, &act_xt_ops, ovr, bind);
208} 208}
209 209
210static int tcf_ipt(struct sk_buff *skb, const struct tc_action *a, 210static int tcf_ipt(struct sk_buff *skb, const struct tc_action *a,
diff --git a/net/socket.c b/net/socket.c
index bf2122691fba..ad22df1ffbd1 100644
--- a/net/socket.c
+++ b/net/socket.c
@@ -1916,7 +1916,7 @@ static int copy_msghdr_from_user(struct msghdr *kmsg,
1916 if (copy_from_user(&msg, umsg, sizeof(*umsg))) 1916 if (copy_from_user(&msg, umsg, sizeof(*umsg)))
1917 return -EFAULT; 1917 return -EFAULT;
1918 1918
1919 kmsg->msg_control = msg.msg_control; 1919 kmsg->msg_control = (void __force *)msg.msg_control;
1920 kmsg->msg_controllen = msg.msg_controllen; 1920 kmsg->msg_controllen = msg.msg_controllen;
1921 kmsg->msg_flags = msg.msg_flags; 1921 kmsg->msg_flags = msg.msg_flags;
1922 1922
@@ -1935,7 +1935,8 @@ static int copy_msghdr_from_user(struct msghdr *kmsg,
1935 1935
1936 if (msg.msg_name && kmsg->msg_namelen) { 1936 if (msg.msg_name && kmsg->msg_namelen) {
1937 if (!save_addr) { 1937 if (!save_addr) {
1938 err = move_addr_to_kernel(msg.msg_name, kmsg->msg_namelen, 1938 err = move_addr_to_kernel(msg.msg_name,
1939 kmsg->msg_namelen,
1939 kmsg->msg_name); 1940 kmsg->msg_name);
1940 if (err < 0) 1941 if (err < 0)
1941 return err; 1942 return err;
diff --git a/samples/bpf/tcbpf2_kern.c b/samples/bpf/tcbpf2_kern.c
index 9c823a609e75..270edcc149a1 100644
--- a/samples/bpf/tcbpf2_kern.c
+++ b/samples/bpf/tcbpf2_kern.c
@@ -147,9 +147,9 @@ int _geneve_set_tunnel(struct __sk_buff *skb)
147 __builtin_memset(&gopt, 0x0, sizeof(gopt)); 147 __builtin_memset(&gopt, 0x0, sizeof(gopt));
148 gopt.opt_class = 0x102; /* Open Virtual Networking (OVN) */ 148 gopt.opt_class = 0x102; /* Open Virtual Networking (OVN) */
149 gopt.type = 0x08; 149 gopt.type = 0x08;
150 gopt.r1 = 1; 150 gopt.r1 = 0;
151 gopt.r2 = 0; 151 gopt.r2 = 0;
152 gopt.r3 = 1; 152 gopt.r3 = 0;
153 gopt.length = 2; /* 4-byte multiple */ 153 gopt.length = 2; /* 4-byte multiple */
154 *(int *) &gopt.opt_data = 0xdeadbeef; 154 *(int *) &gopt.opt_data = 0xdeadbeef;
155 155
diff --git a/samples/bpf/test_tunnel_bpf.sh b/samples/bpf/test_tunnel_bpf.sh
index 1ff634f187b7..a70d2ea90313 100755
--- a/samples/bpf/test_tunnel_bpf.sh
+++ b/samples/bpf/test_tunnel_bpf.sh
@@ -149,6 +149,7 @@ function cleanup {
149 ip link del veth1 149 ip link del veth1
150 ip link del ipip11 150 ip link del ipip11
151 ip link del gretap11 151 ip link del gretap11
152 ip link del vxlan11
152 ip link del geneve11 153 ip link del geneve11
153 pkill tcpdump 154 pkill tcpdump
154 pkill cat 155 pkill cat
diff --git a/scripts/dtc/dtx_diff b/scripts/dtc/dtx_diff
index fb86f3899e16..f9a3d8d23c64 100755
--- a/scripts/dtc/dtx_diff
+++ b/scripts/dtc/dtx_diff
@@ -321,7 +321,7 @@ fi
321cpp_flags="\ 321cpp_flags="\
322 -nostdinc \ 322 -nostdinc \
323 -I${srctree}/arch/${ARCH}/boot/dts \ 323 -I${srctree}/arch/${ARCH}/boot/dts \
324 -I${srctree}/arch/${ARCH}/boot/dts/include \ 324 -I${srctree}/scripts/dtc/include-prefixes \
325 -I${srctree}/drivers/of/testcase-data \ 325 -I${srctree}/drivers/of/testcase-data \
326 -undef -D__DTS__" 326 -undef -D__DTS__"
327 327
diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
index 3bd5f4f30235..bc443201d3ef 100755
--- a/scripts/get_maintainer.pl
+++ b/scripts/get_maintainer.pl
@@ -18,6 +18,7 @@ my $V = '0.26';
18 18
19use Getopt::Long qw(:config no_auto_abbrev); 19use Getopt::Long qw(:config no_auto_abbrev);
20use Cwd; 20use Cwd;
21use File::Find;
21 22
22my $cur_path = fastgetcwd() . '/'; 23my $cur_path = fastgetcwd() . '/';
23my $lk_path = "./"; 24my $lk_path = "./";
@@ -58,6 +59,7 @@ my $from_filename = 0;
58my $pattern_depth = 0; 59my $pattern_depth = 0;
59my $version = 0; 60my $version = 0;
60my $help = 0; 61my $help = 0;
62my $find_maintainer_files = 0;
61 63
62my $vcs_used = 0; 64my $vcs_used = 0;
63 65
@@ -249,6 +251,7 @@ if (!GetOptions(
249 'sections!' => \$sections, 251 'sections!' => \$sections,
250 'fe|file-emails!' => \$file_emails, 252 'fe|file-emails!' => \$file_emails,
251 'f|file' => \$from_filename, 253 'f|file' => \$from_filename,
254 'find-maintainer-files' => \$find_maintainer_files,
252 'v|version' => \$version, 255 'v|version' => \$version,
253 'h|help|usage' => \$help, 256 'h|help|usage' => \$help,
254 )) { 257 )) {
@@ -307,36 +310,74 @@ if (!top_of_kernel_tree($lk_path)) {
307 310
308my @typevalue = (); 311my @typevalue = ();
309my %keyword_hash; 312my %keyword_hash;
313my @mfiles = ();
310 314
311open (my $maint, '<', "${lk_path}MAINTAINERS") 315sub read_maintainer_file {
312 or die "$P: Can't open MAINTAINERS: $!\n"; 316 my ($file) = @_;
313while (<$maint>) { 317
314 my $line = $_; 318 open (my $maint, '<', "$file")
315 319 or die "$P: Can't open MAINTAINERS file '$file': $!\n";
316 if ($line =~ m/^([A-Z]):\s*(.*)/) { 320 while (<$maint>) {
317 my $type = $1; 321 my $line = $_;
318 my $value = $2; 322
319 323 if ($line =~ m/^([A-Z]):\s*(.*)/) {
320 ##Filename pattern matching 324 my $type = $1;
321 if ($type eq "F" || $type eq "X") { 325 my $value = $2;
322 $value =~ s@\.@\\\.@g; ##Convert . to \. 326
323 $value =~ s/\*/\.\*/g; ##Convert * to .* 327 ##Filename pattern matching
324 $value =~ s/\?/\./g; ##Convert ? to . 328 if ($type eq "F" || $type eq "X") {
325 ##if pattern is a directory and it lacks a trailing slash, add one 329 $value =~ s@\.@\\\.@g; ##Convert . to \.
326 if ((-d $value)) { 330 $value =~ s/\*/\.\*/g; ##Convert * to .*
327 $value =~ s@([^/])$@$1/@; 331 $value =~ s/\?/\./g; ##Convert ? to .
332 ##if pattern is a directory and it lacks a trailing slash, add one
333 if ((-d $value)) {
334 $value =~ s@([^/])$@$1/@;
335 }
336 } elsif ($type eq "K") {
337 $keyword_hash{@typevalue} = $value;
328 } 338 }
329 } elsif ($type eq "K") { 339 push(@typevalue, "$type:$value");
330 $keyword_hash{@typevalue} = $value; 340 } elsif (!(/^\s*$/ || /^\s*\#/)) {
341 $line =~ s/\n$//g;
342 push(@typevalue, $line);
331 } 343 }
332 push(@typevalue, "$type:$value");
333 } elsif (!/^(\s)*$/) {
334 $line =~ s/\n$//g;
335 push(@typevalue, $line);
336 } 344 }
345 close($maint);
346}
347
348sub find_is_maintainer_file {
349 my ($file) = $_;
350 return if ($file !~ m@/MAINTAINERS$@);
351 $file = $File::Find::name;
352 return if (! -f $file);
353 push(@mfiles, $file);
337} 354}
338close($maint);
339 355
356sub find_ignore_git {
357 return grep { $_ !~ /^\.git$/; } @_;
358}
359
360if (-d "${lk_path}MAINTAINERS") {
361 opendir(DIR, "${lk_path}MAINTAINERS") or die $!;
362 my @files = readdir(DIR);
363 closedir(DIR);
364 foreach my $file (@files) {
365 push(@mfiles, "${lk_path}MAINTAINERS/$file") if ($file !~ /^\./);
366 }
367}
368
369if ($find_maintainer_files) {
370 find( { wanted => \&find_is_maintainer_file,
371 preprocess => \&find_ignore_git,
372 no_chdir => 1,
373 }, "${lk_path}");
374} else {
375 push(@mfiles, "${lk_path}MAINTAINERS") if -f "${lk_path}MAINTAINERS";
376}
377
378foreach my $file (@mfiles) {
379 read_maintainer_file("$file");
380}
340 381
341# 382#
342# Read mail address map 383# Read mail address map
@@ -873,7 +914,7 @@ sub top_of_kernel_tree {
873 if ( (-f "${lk_path}COPYING") 914 if ( (-f "${lk_path}COPYING")
874 && (-f "${lk_path}CREDITS") 915 && (-f "${lk_path}CREDITS")
875 && (-f "${lk_path}Kbuild") 916 && (-f "${lk_path}Kbuild")
876 && (-f "${lk_path}MAINTAINERS") 917 && (-e "${lk_path}MAINTAINERS")
877 && (-f "${lk_path}Makefile") 918 && (-f "${lk_path}Makefile")
878 && (-f "${lk_path}README") 919 && (-f "${lk_path}README")
879 && (-d "${lk_path}Documentation") 920 && (-d "${lk_path}Documentation")
diff --git a/scripts/parse-maintainers.pl b/scripts/parse-maintainers.pl
index a0fe34349b24..e40b53db7f9f 100644
--- a/scripts/parse-maintainers.pl
+++ b/scripts/parse-maintainers.pl
@@ -2,9 +2,9 @@
2 2
3use strict; 3use strict;
4 4
5my %map; 5my $P = $0;
6 6
7# sort comparison function 7# sort comparison functions
8sub by_category($$) { 8sub by_category($$) {
9 my ($a, $b) = @_; 9 my ($a, $b) = @_;
10 10
@@ -15,20 +15,33 @@ sub by_category($$) {
15 $a =~ s/THE REST/ZZZZZZ/g; 15 $a =~ s/THE REST/ZZZZZZ/g;
16 $b =~ s/THE REST/ZZZZZZ/g; 16 $b =~ s/THE REST/ZZZZZZ/g;
17 17
18 $a cmp $b; 18 return $a cmp $b;
19} 19}
20 20
21sub alpha_output { 21sub by_pattern($$) {
22 my $key; 22 my ($a, $b) = @_;
23 my $sort_method = \&by_category; 23 my $preferred_order = 'MRPLSWTQBCFXNK';
24 my $sep = ""; 24
25 25 my $a1 = uc(substr($a, 0, 1));
26 foreach $key (sort $sort_method keys %map) { 26 my $b1 = uc(substr($b, 0, 1));
27 if ($key ne " ") { 27
28 print $sep . $key . "\n"; 28 my $a_index = index($preferred_order, $a1);
29 $sep = "\n"; 29 my $b_index = index($preferred_order, $b1);
30 } 30
31 print $map{$key}; 31 $a_index = 1000 if ($a_index == -1);
32 $b_index = 1000 if ($b_index == -1);
33
34 if (($a1 =~ /^F$/ && $b1 =~ /^F$/) ||
35 ($a1 =~ /^X$/ && $b1 =~ /^X$/)) {
36 return $a cmp $b;
37 }
38
39 if ($a_index < $b_index) {
40 return -1;
41 } elsif ($a_index == $b_index) {
42 return 0;
43 } else {
44 return 1;
32 } 45 }
33} 46}
34 47
@@ -39,39 +52,77 @@ sub trim {
39 return $s; 52 return $s;
40} 53}
41 54
55sub alpha_output {
56 my ($hashref, $filename) = (@_);
57
58 open(my $file, '>', "$filename") or die "$P: $filename: open failed - $!\n";
59 foreach my $key (sort by_category keys %$hashref) {
60 if ($key eq " ") {
61 chomp $$hashref{$key};
62 print $file $$hashref{$key};
63 } else {
64 print $file "\n" . $key . "\n";
65 foreach my $pattern (sort by_pattern split('\n', %$hashref{$key})) {
66 print $file ($pattern . "\n");
67 }
68 }
69 }
70 close($file);
71}
72
42sub file_input { 73sub file_input {
74 my ($hashref, $filename) = (@_);
75
43 my $lastline = ""; 76 my $lastline = "";
44 my $case = " "; 77 my $case = " ";
45 $map{$case} = ""; 78 $$hashref{$case} = "";
79
80 open(my $file, '<', "$filename") or die "$P: $filename: open failed - $!\n";
46 81
47 while (<>) { 82 while (<$file>) {
48 my $line = $_; 83 my $line = $_;
49 84
50 # Pattern line? 85 # Pattern line?
51 if ($line =~ m/^([A-Z]):\s*(.*)/) { 86 if ($line =~ m/^([A-Z]):\s*(.*)/) {
52 $line = $1 . ":\t" . trim($2) . "\n"; 87 $line = $1 . ":\t" . trim($2) . "\n";
53 if ($lastline eq "") { 88 if ($lastline eq "") {
54 $map{$case} = $map{$case} . $line; 89 $$hashref{$case} = $$hashref{$case} . $line;
55 next; 90 next;
56 } 91 }
57 $case = trim($lastline); 92 $case = trim($lastline);
58 exists $map{$case} and die "Header '$case' already exists"; 93 exists $$hashref{$case} and die "Header '$case' already exists";
59 $map{$case} = $line; 94 $$hashref{$case} = $line;
60 $lastline = ""; 95 $lastline = "";
61 next; 96 next;
62 } 97 }
63 98
64 if ($case eq " ") { 99 if ($case eq " ") {
65 $map{$case} = $map{$case} . $lastline; 100 $$hashref{$case} = $$hashref{$case} . $lastline;
66 $lastline = $line; 101 $lastline = $line;
67 next; 102 next;
68 } 103 }
69 trim($lastline) eq "" or die ("Odd non-pattern line '$lastline' for '$case'"); 104 trim($lastline) eq "" or die ("Odd non-pattern line '$lastline' for '$case'");
70 $lastline = $line; 105 $lastline = $line;
71 } 106 }
72 $map{$case} = $map{$case} . $lastline; 107 $$hashref{$case} = $$hashref{$case} . $lastline;
108 close($file);
73} 109}
74 110
75&file_input; 111my %hash;
76&alpha_output; 112my %new_hash;
113
114file_input(\%hash, "MAINTAINERS");
115
116foreach my $type (@ARGV) {
117 foreach my $key (keys %hash) {
118 if ($key =~ /$type/ || $hash{$key} =~ /$type/) {
119 $new_hash{$key} = $hash{$key};
120 delete $hash{$key};
121 }
122 }
123}
124
125alpha_output(\%hash, "MAINTAINERS.new");
126alpha_output(\%new_hash, "SECTION.new");
127
77exit(0); 128exit(0);
diff --git a/sound/pci/fm801.c b/sound/pci/fm801.c
index 2e402ece4c86..8e6b04b39dcc 100644
--- a/sound/pci/fm801.c
+++ b/sound/pci/fm801.c
@@ -1235,8 +1235,6 @@ static int snd_fm801_create(struct snd_card *card,
1235 } 1235 }
1236 } 1236 }
1237 1237
1238 snd_fm801_chip_init(chip);
1239
1240 if ((chip->tea575x_tuner & TUNER_ONLY) == 0) { 1238 if ((chip->tea575x_tuner & TUNER_ONLY) == 0) {
1241 if (devm_request_irq(&pci->dev, pci->irq, snd_fm801_interrupt, 1239 if (devm_request_irq(&pci->dev, pci->irq, snd_fm801_interrupt,
1242 IRQF_SHARED, KBUILD_MODNAME, chip)) { 1240 IRQF_SHARED, KBUILD_MODNAME, chip)) {
@@ -1248,6 +1246,8 @@ static int snd_fm801_create(struct snd_card *card,
1248 pci_set_master(pci); 1246 pci_set_master(pci);
1249 } 1247 }
1250 1248
1249 snd_fm801_chip_init(chip);
1250
1251 if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) { 1251 if ((err = snd_device_new(card, SNDRV_DEV_LOWLEVEL, chip, &ops)) < 0) {
1252 snd_fm801_free(chip); 1252 snd_fm801_free(chip);
1253 return err; 1253 return err;
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
index 63bc894ddf5e..8c1289963c80 100644
--- a/sound/pci/hda/patch_conexant.c
+++ b/sound/pci/hda/patch_conexant.c
@@ -933,6 +933,7 @@ static const struct snd_pci_quirk cxt5066_fixups[] = {
933 SND_PCI_QUIRK(0x103c, 0x8174, "HP Spectre x360", CXT_FIXUP_HP_SPECTRE), 933 SND_PCI_QUIRK(0x103c, 0x8174, "HP Spectre x360", CXT_FIXUP_HP_SPECTRE),
934 SND_PCI_QUIRK(0x103c, 0x8115, "HP Z1 Gen3", CXT_FIXUP_HP_GATE_MIC), 934 SND_PCI_QUIRK(0x103c, 0x8115, "HP Z1 Gen3", CXT_FIXUP_HP_GATE_MIC),
935 SND_PCI_QUIRK(0x103c, 0x814f, "HP ZBook 15u G3", CXT_FIXUP_MUTE_LED_GPIO), 935 SND_PCI_QUIRK(0x103c, 0x814f, "HP ZBook 15u G3", CXT_FIXUP_MUTE_LED_GPIO),
936 SND_PCI_QUIRK(0x103c, 0x822e, "HP ProBook 440 G4", CXT_FIXUP_MUTE_LED_GPIO),
936 SND_PCI_QUIRK(0x1043, 0x138d, "Asus", CXT_FIXUP_HEADPHONE_MIC_PIN), 937 SND_PCI_QUIRK(0x1043, 0x138d, "Asus", CXT_FIXUP_HEADPHONE_MIC_PIN),
937 SND_PCI_QUIRK(0x152d, 0x0833, "OLPC XO-1.5", CXT_FIXUP_OLPC_XO), 938 SND_PCI_QUIRK(0x152d, 0x0833, "OLPC XO-1.5", CXT_FIXUP_OLPC_XO),
938 SND_PCI_QUIRK(0x17aa, 0x20f2, "Lenovo T400", CXT_PINCFG_LENOVO_TP410), 939 SND_PCI_QUIRK(0x17aa, 0x20f2, "Lenovo T400", CXT_PINCFG_LENOVO_TP410),
diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
index d549f35f39d3..53f9311370de 100644
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -3733,11 +3733,15 @@ HDA_CODEC_ENTRY(0x1002aa01, "R6xx HDMI", patch_atihdmi),
3733HDA_CODEC_ENTRY(0x10951390, "SiI1390 HDMI", patch_generic_hdmi), 3733HDA_CODEC_ENTRY(0x10951390, "SiI1390 HDMI", patch_generic_hdmi),
3734HDA_CODEC_ENTRY(0x10951392, "SiI1392 HDMI", patch_generic_hdmi), 3734HDA_CODEC_ENTRY(0x10951392, "SiI1392 HDMI", patch_generic_hdmi),
3735HDA_CODEC_ENTRY(0x17e80047, "Chrontel HDMI", patch_generic_hdmi), 3735HDA_CODEC_ENTRY(0x17e80047, "Chrontel HDMI", patch_generic_hdmi),
3736HDA_CODEC_ENTRY(0x10de0001, "MCP73 HDMI", patch_nvhdmi_2ch),
3736HDA_CODEC_ENTRY(0x10de0002, "MCP77/78 HDMI", patch_nvhdmi_8ch_7x), 3737HDA_CODEC_ENTRY(0x10de0002, "MCP77/78 HDMI", patch_nvhdmi_8ch_7x),
3737HDA_CODEC_ENTRY(0x10de0003, "MCP77/78 HDMI", patch_nvhdmi_8ch_7x), 3738HDA_CODEC_ENTRY(0x10de0003, "MCP77/78 HDMI", patch_nvhdmi_8ch_7x),
3739HDA_CODEC_ENTRY(0x10de0004, "GPU 04 HDMI", patch_nvhdmi_8ch_7x),
3738HDA_CODEC_ENTRY(0x10de0005, "MCP77/78 HDMI", patch_nvhdmi_8ch_7x), 3740HDA_CODEC_ENTRY(0x10de0005, "MCP77/78 HDMI", patch_nvhdmi_8ch_7x),
3739HDA_CODEC_ENTRY(0x10de0006, "MCP77/78 HDMI", patch_nvhdmi_8ch_7x), 3741HDA_CODEC_ENTRY(0x10de0006, "MCP77/78 HDMI", patch_nvhdmi_8ch_7x),
3740HDA_CODEC_ENTRY(0x10de0007, "MCP79/7A HDMI", patch_nvhdmi_8ch_7x), 3742HDA_CODEC_ENTRY(0x10de0007, "MCP79/7A HDMI", patch_nvhdmi_8ch_7x),
3743HDA_CODEC_ENTRY(0x10de0008, "GPU 08 HDMI/DP", patch_nvhdmi),
3744HDA_CODEC_ENTRY(0x10de0009, "GPU 09 HDMI/DP", patch_nvhdmi),
3741HDA_CODEC_ENTRY(0x10de000a, "GPU 0a HDMI/DP", patch_nvhdmi), 3745HDA_CODEC_ENTRY(0x10de000a, "GPU 0a HDMI/DP", patch_nvhdmi),
3742HDA_CODEC_ENTRY(0x10de000b, "GPU 0b HDMI/DP", patch_nvhdmi), 3746HDA_CODEC_ENTRY(0x10de000b, "GPU 0b HDMI/DP", patch_nvhdmi),
3743HDA_CODEC_ENTRY(0x10de000c, "MCP89 HDMI", patch_nvhdmi), 3747HDA_CODEC_ENTRY(0x10de000c, "MCP89 HDMI", patch_nvhdmi),
@@ -3764,17 +3768,40 @@ HDA_CODEC_ENTRY(0x10de0041, "GPU 41 HDMI/DP", patch_nvhdmi),
3764HDA_CODEC_ENTRY(0x10de0042, "GPU 42 HDMI/DP", patch_nvhdmi), 3768HDA_CODEC_ENTRY(0x10de0042, "GPU 42 HDMI/DP", patch_nvhdmi),
3765HDA_CODEC_ENTRY(0x10de0043, "GPU 43 HDMI/DP", patch_nvhdmi), 3769HDA_CODEC_ENTRY(0x10de0043, "GPU 43 HDMI/DP", patch_nvhdmi),
3766HDA_CODEC_ENTRY(0x10de0044, "GPU 44 HDMI/DP", patch_nvhdmi), 3770HDA_CODEC_ENTRY(0x10de0044, "GPU 44 HDMI/DP", patch_nvhdmi),
3771HDA_CODEC_ENTRY(0x10de0045, "GPU 45 HDMI/DP", patch_nvhdmi),
3772HDA_CODEC_ENTRY(0x10de0050, "GPU 50 HDMI/DP", patch_nvhdmi),
3767HDA_CODEC_ENTRY(0x10de0051, "GPU 51 HDMI/DP", patch_nvhdmi), 3773HDA_CODEC_ENTRY(0x10de0051, "GPU 51 HDMI/DP", patch_nvhdmi),
3774HDA_CODEC_ENTRY(0x10de0052, "GPU 52 HDMI/DP", patch_nvhdmi),
3768HDA_CODEC_ENTRY(0x10de0060, "GPU 60 HDMI/DP", patch_nvhdmi), 3775HDA_CODEC_ENTRY(0x10de0060, "GPU 60 HDMI/DP", patch_nvhdmi),
3776HDA_CODEC_ENTRY(0x10de0061, "GPU 61 HDMI/DP", patch_nvhdmi),
3777HDA_CODEC_ENTRY(0x10de0062, "GPU 62 HDMI/DP", patch_nvhdmi),
3769HDA_CODEC_ENTRY(0x10de0067, "MCP67 HDMI", patch_nvhdmi_2ch), 3778HDA_CODEC_ENTRY(0x10de0067, "MCP67 HDMI", patch_nvhdmi_2ch),
3770HDA_CODEC_ENTRY(0x10de0070, "GPU 70 HDMI/DP", patch_nvhdmi), 3779HDA_CODEC_ENTRY(0x10de0070, "GPU 70 HDMI/DP", patch_nvhdmi),
3771HDA_CODEC_ENTRY(0x10de0071, "GPU 71 HDMI/DP", patch_nvhdmi), 3780HDA_CODEC_ENTRY(0x10de0071, "GPU 71 HDMI/DP", patch_nvhdmi),
3772HDA_CODEC_ENTRY(0x10de0072, "GPU 72 HDMI/DP", patch_nvhdmi), 3781HDA_CODEC_ENTRY(0x10de0072, "GPU 72 HDMI/DP", patch_nvhdmi),
3782HDA_CODEC_ENTRY(0x10de0073, "GPU 73 HDMI/DP", patch_nvhdmi),
3783HDA_CODEC_ENTRY(0x10de0074, "GPU 74 HDMI/DP", patch_nvhdmi),
3784HDA_CODEC_ENTRY(0x10de0076, "GPU 76 HDMI/DP", patch_nvhdmi),
3785HDA_CODEC_ENTRY(0x10de007b, "GPU 7b HDMI/DP", patch_nvhdmi),
3786HDA_CODEC_ENTRY(0x10de007c, "GPU 7c HDMI/DP", patch_nvhdmi),
3773HDA_CODEC_ENTRY(0x10de007d, "GPU 7d HDMI/DP", patch_nvhdmi), 3787HDA_CODEC_ENTRY(0x10de007d, "GPU 7d HDMI/DP", patch_nvhdmi),
3788HDA_CODEC_ENTRY(0x10de007e, "GPU 7e HDMI/DP", patch_nvhdmi),
3774HDA_CODEC_ENTRY(0x10de0080, "GPU 80 HDMI/DP", patch_nvhdmi), 3789HDA_CODEC_ENTRY(0x10de0080, "GPU 80 HDMI/DP", patch_nvhdmi),
3790HDA_CODEC_ENTRY(0x10de0081, "GPU 81 HDMI/DP", patch_nvhdmi),
3775HDA_CODEC_ENTRY(0x10de0082, "GPU 82 HDMI/DP", patch_nvhdmi), 3791HDA_CODEC_ENTRY(0x10de0082, "GPU 82 HDMI/DP", patch_nvhdmi),
3776HDA_CODEC_ENTRY(0x10de0083, "GPU 83 HDMI/DP", patch_nvhdmi), 3792HDA_CODEC_ENTRY(0x10de0083, "GPU 83 HDMI/DP", patch_nvhdmi),
3793HDA_CODEC_ENTRY(0x10de0084, "GPU 84 HDMI/DP", patch_nvhdmi),
3794HDA_CODEC_ENTRY(0x10de0090, "GPU 90 HDMI/DP", patch_nvhdmi),
3795HDA_CODEC_ENTRY(0x10de0091, "GPU 91 HDMI/DP", patch_nvhdmi),
3796HDA_CODEC_ENTRY(0x10de0092, "GPU 92 HDMI/DP", patch_nvhdmi),
3797HDA_CODEC_ENTRY(0x10de0093, "GPU 93 HDMI/DP", patch_nvhdmi),
3798HDA_CODEC_ENTRY(0x10de0094, "GPU 94 HDMI/DP", patch_nvhdmi),
3799HDA_CODEC_ENTRY(0x10de0095, "GPU 95 HDMI/DP", patch_nvhdmi),
3800HDA_CODEC_ENTRY(0x10de0097, "GPU 97 HDMI/DP", patch_nvhdmi),
3801HDA_CODEC_ENTRY(0x10de0098, "GPU 98 HDMI/DP", patch_nvhdmi),
3802HDA_CODEC_ENTRY(0x10de0099, "GPU 99 HDMI/DP", patch_nvhdmi),
3777HDA_CODEC_ENTRY(0x10de8001, "MCP73 HDMI", patch_nvhdmi_2ch), 3803HDA_CODEC_ENTRY(0x10de8001, "MCP73 HDMI", patch_nvhdmi_2ch),
3804HDA_CODEC_ENTRY(0x10de8067, "MCP67/68 HDMI", patch_nvhdmi_2ch),
3778HDA_CODEC_ENTRY(0x11069f80, "VX900 HDMI/DP", patch_via_hdmi), 3805HDA_CODEC_ENTRY(0x11069f80, "VX900 HDMI/DP", patch_via_hdmi),
3779HDA_CODEC_ENTRY(0x11069f81, "VX900 HDMI/DP", patch_via_hdmi), 3806HDA_CODEC_ENTRY(0x11069f81, "VX900 HDMI/DP", patch_via_hdmi),
3780HDA_CODEC_ENTRY(0x11069f84, "VX11 HDMI/DP", patch_generic_hdmi), 3807HDA_CODEC_ENTRY(0x11069f84, "VX11 HDMI/DP", patch_generic_hdmi),
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 45d58fc1df39..a91a9ef00c40 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -2296,6 +2296,7 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = {
2296 SND_PCI_QUIRK(0x1043, 0x8691, "ASUS ROG Ranger VIII", ALC882_FIXUP_GPIO3), 2296 SND_PCI_QUIRK(0x1043, 0x8691, "ASUS ROG Ranger VIII", ALC882_FIXUP_GPIO3),
2297 SND_PCI_QUIRK(0x104d, 0x9047, "Sony Vaio TT", ALC889_FIXUP_VAIO_TT), 2297 SND_PCI_QUIRK(0x104d, 0x9047, "Sony Vaio TT", ALC889_FIXUP_VAIO_TT),
2298 SND_PCI_QUIRK(0x104d, 0x905a, "Sony Vaio Z", ALC882_FIXUP_NO_PRIMARY_HP), 2298 SND_PCI_QUIRK(0x104d, 0x905a, "Sony Vaio Z", ALC882_FIXUP_NO_PRIMARY_HP),
2299 SND_PCI_QUIRK(0x104d, 0x9060, "Sony Vaio VPCL14M1R", ALC882_FIXUP_NO_PRIMARY_HP),
2299 SND_PCI_QUIRK(0x104d, 0x9043, "Sony Vaio VGC-LN51JGB", ALC882_FIXUP_NO_PRIMARY_HP), 2300 SND_PCI_QUIRK(0x104d, 0x9043, "Sony Vaio VGC-LN51JGB", ALC882_FIXUP_NO_PRIMARY_HP),
2300 SND_PCI_QUIRK(0x104d, 0x9044, "Sony VAIO AiO", ALC882_FIXUP_NO_PRIMARY_HP), 2301 SND_PCI_QUIRK(0x104d, 0x9044, "Sony VAIO AiO", ALC882_FIXUP_NO_PRIMARY_HP),
2301 2302
@@ -3838,6 +3839,17 @@ static void alc269_fixup_hp_line1_mic1_led(struct hda_codec *codec,
3838 } 3839 }
3839} 3840}
3840 3841
3842static struct coef_fw alc225_pre_hsmode[] = {
3843 UPDATE_COEF(0x4a, 1<<8, 0),
3844 UPDATE_COEFEX(0x57, 0x05, 1<<14, 0),
3845 UPDATE_COEF(0x63, 3<<14, 3<<14),
3846 UPDATE_COEF(0x4a, 3<<4, 2<<4),
3847 UPDATE_COEF(0x4a, 3<<10, 3<<10),
3848 UPDATE_COEF(0x45, 0x3f<<10, 0x34<<10),
3849 UPDATE_COEF(0x4a, 3<<10, 0),
3850 {}
3851};
3852
3841static void alc_headset_mode_unplugged(struct hda_codec *codec) 3853static void alc_headset_mode_unplugged(struct hda_codec *codec)
3842{ 3854{
3843 static struct coef_fw coef0255[] = { 3855 static struct coef_fw coef0255[] = {
@@ -3873,6 +3885,10 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
3873 UPDATE_COEF(0x67, 0x2000, 0), 3885 UPDATE_COEF(0x67, 0x2000, 0),
3874 {} 3886 {}
3875 }; 3887 };
3888 static struct coef_fw coef0298[] = {
3889 UPDATE_COEF(0x19, 0x1300, 0x0300),
3890 {}
3891 };
3876 static struct coef_fw coef0292[] = { 3892 static struct coef_fw coef0292[] = {
3877 WRITE_COEF(0x76, 0x000e), 3893 WRITE_COEF(0x76, 0x000e),
3878 WRITE_COEF(0x6c, 0x2400), 3894 WRITE_COEF(0x6c, 0x2400),
@@ -3895,13 +3911,7 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
3895 {} 3911 {}
3896 }; 3912 };
3897 static struct coef_fw coef0225[] = { 3913 static struct coef_fw coef0225[] = {
3898 UPDATE_COEF(0x4a, 1<<8, 0), 3914 UPDATE_COEF(0x63, 3<<14, 0),
3899 UPDATE_COEFEX(0x57, 0x05, 1<<14, 0),
3900 UPDATE_COEF(0x63, 3<<14, 3<<14),
3901 UPDATE_COEF(0x4a, 3<<4, 2<<4),
3902 UPDATE_COEF(0x4a, 3<<10, 3<<10),
3903 UPDATE_COEF(0x45, 0x3f<<10, 0x34<<10),
3904 UPDATE_COEF(0x4a, 3<<10, 0),
3905 {} 3915 {}
3906 }; 3916 };
3907 static struct coef_fw coef0274[] = { 3917 static struct coef_fw coef0274[] = {
@@ -3935,7 +3945,10 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec)
3935 break; 3945 break;
3936 case 0x10ec0286: 3946 case 0x10ec0286:
3937 case 0x10ec0288: 3947 case 0x10ec0288:
3948 alc_process_coef_fw(codec, coef0288);
3949 break;
3938 case 0x10ec0298: 3950 case 0x10ec0298:
3951 alc_process_coef_fw(codec, coef0298);
3939 alc_process_coef_fw(codec, coef0288); 3952 alc_process_coef_fw(codec, coef0288);
3940 break; 3953 break;
3941 case 0x10ec0292: 3954 case 0x10ec0292:
@@ -3976,6 +3989,7 @@ static void alc_headset_mode_mic_in(struct hda_codec *codec, hda_nid_t hp_pin,
3976 {} 3989 {}
3977 }; 3990 };
3978 static struct coef_fw coef0288[] = { 3991 static struct coef_fw coef0288[] = {
3992 UPDATE_COEF(0x4f, 0x00c0, 0),
3979 UPDATE_COEF(0x50, 0x2000, 0), 3993 UPDATE_COEF(0x50, 0x2000, 0),
3980 UPDATE_COEF(0x56, 0x0006, 0), 3994 UPDATE_COEF(0x56, 0x0006, 0),
3981 UPDATE_COEF(0x4f, 0xfcc0, 0xc400), 3995 UPDATE_COEF(0x4f, 0xfcc0, 0xc400),
@@ -4039,7 +4053,6 @@ static void alc_headset_mode_mic_in(struct hda_codec *codec, hda_nid_t hp_pin,
4039 case 0x10ec0286: 4053 case 0x10ec0286:
4040 case 0x10ec0288: 4054 case 0x10ec0288:
4041 case 0x10ec0298: 4055 case 0x10ec0298:
4042 alc_update_coef_idx(codec, 0x4f, 0x000c, 0);
4043 snd_hda_set_pin_ctl_cache(codec, hp_pin, 0); 4056 snd_hda_set_pin_ctl_cache(codec, hp_pin, 0);
4044 alc_process_coef_fw(codec, coef0288); 4057 alc_process_coef_fw(codec, coef0288);
4045 snd_hda_set_pin_ctl_cache(codec, mic_pin, PIN_VREF50); 4058 snd_hda_set_pin_ctl_cache(codec, mic_pin, PIN_VREF50);
@@ -4072,6 +4085,7 @@ static void alc_headset_mode_mic_in(struct hda_codec *codec, hda_nid_t hp_pin,
4072 case 0x10ec0225: 4085 case 0x10ec0225:
4073 case 0x10ec0295: 4086 case 0x10ec0295:
4074 case 0x10ec0299: 4087 case 0x10ec0299:
4088 alc_process_coef_fw(codec, alc225_pre_hsmode);
4075 alc_update_coef_idx(codec, 0x45, 0x3f<<10, 0x31<<10); 4089 alc_update_coef_idx(codec, 0x45, 0x3f<<10, 0x31<<10);
4076 snd_hda_set_pin_ctl_cache(codec, hp_pin, 0); 4090 snd_hda_set_pin_ctl_cache(codec, hp_pin, 0);
4077 alc_process_coef_fw(codec, coef0225); 4091 alc_process_coef_fw(codec, coef0225);
@@ -4084,7 +4098,12 @@ static void alc_headset_mode_mic_in(struct hda_codec *codec, hda_nid_t hp_pin,
4084static void alc_headset_mode_default(struct hda_codec *codec) 4098static void alc_headset_mode_default(struct hda_codec *codec)
4085{ 4099{
4086 static struct coef_fw coef0225[] = { 4100 static struct coef_fw coef0225[] = {
4087 UPDATE_COEF(0x45, 0x3f<<10, 0x34<<10), 4101 UPDATE_COEF(0x45, 0x3f<<10, 0x30<<10),
4102 UPDATE_COEF(0x45, 0x3f<<10, 0x31<<10),
4103 UPDATE_COEF(0x49, 3<<8, 0<<8),
4104 UPDATE_COEF(0x4a, 3<<4, 3<<4),
4105 UPDATE_COEF(0x63, 3<<14, 0),
4106 UPDATE_COEF(0x67, 0xf000, 0x3000),
4088 {} 4107 {}
4089 }; 4108 };
4090 static struct coef_fw coef0255[] = { 4109 static struct coef_fw coef0255[] = {
@@ -4138,6 +4157,7 @@ static void alc_headset_mode_default(struct hda_codec *codec)
4138 case 0x10ec0225: 4157 case 0x10ec0225:
4139 case 0x10ec0295: 4158 case 0x10ec0295:
4140 case 0x10ec0299: 4159 case 0x10ec0299:
4160 alc_process_coef_fw(codec, alc225_pre_hsmode);
4141 alc_process_coef_fw(codec, coef0225); 4161 alc_process_coef_fw(codec, coef0225);
4142 break; 4162 break;
4143 case 0x10ec0255: 4163 case 0x10ec0255:
@@ -4177,6 +4197,8 @@ static void alc_headset_mode_default(struct hda_codec *codec)
4177/* Iphone type */ 4197/* Iphone type */
4178static void alc_headset_mode_ctia(struct hda_codec *codec) 4198static void alc_headset_mode_ctia(struct hda_codec *codec)
4179{ 4199{
4200 int val;
4201
4180 static struct coef_fw coef0255[] = { 4202 static struct coef_fw coef0255[] = {
4181 WRITE_COEF(0x45, 0xd489), /* Set to CTIA type */ 4203 WRITE_COEF(0x45, 0xd489), /* Set to CTIA type */
4182 WRITE_COEF(0x1b, 0x0c2b), 4204 WRITE_COEF(0x1b, 0x0c2b),
@@ -4219,11 +4241,14 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
4219 WRITE_COEF(0xc3, 0x0000), 4241 WRITE_COEF(0xc3, 0x0000),
4220 {} 4242 {}
4221 }; 4243 };
4222 static struct coef_fw coef0225[] = { 4244 static struct coef_fw coef0225_1[] = {
4223 UPDATE_COEF(0x45, 0x3f<<10, 0x35<<10), 4245 UPDATE_COEF(0x45, 0x3f<<10, 0x35<<10),
4224 UPDATE_COEF(0x49, 1<<8, 1<<8), 4246 UPDATE_COEF(0x63, 3<<14, 2<<14),
4225 UPDATE_COEF(0x4a, 7<<6, 7<<6), 4247 {}
4226 UPDATE_COEF(0x4a, 3<<4, 3<<4), 4248 };
4249 static struct coef_fw coef0225_2[] = {
4250 UPDATE_COEF(0x45, 0x3f<<10, 0x35<<10),
4251 UPDATE_COEF(0x63, 3<<14, 1<<14),
4227 {} 4252 {}
4228 }; 4253 };
4229 4254
@@ -4244,8 +4269,17 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
4244 alc_process_coef_fw(codec, coef0233); 4269 alc_process_coef_fw(codec, coef0233);
4245 break; 4270 break;
4246 case 0x10ec0298: 4271 case 0x10ec0298:
4247 alc_update_coef_idx(codec, 0x8e, 0x0070, 0x0020);/* Headset output enable */ 4272 val = alc_read_coef_idx(codec, 0x50);
4248 /* ALC298 jack type setting is the same with ALC286/ALC288 */ 4273 if (val & (1 << 12)) {
4274 alc_update_coef_idx(codec, 0x8e, 0x0070, 0x0020);
4275 alc_update_coef_idx(codec, 0x4f, 0xfcc0, 0xd400);
4276 msleep(300);
4277 } else {
4278 alc_update_coef_idx(codec, 0x8e, 0x0070, 0x0010);
4279 alc_update_coef_idx(codec, 0x4f, 0xfcc0, 0xd400);
4280 msleep(300);
4281 }
4282 break;
4249 case 0x10ec0286: 4283 case 0x10ec0286:
4250 case 0x10ec0288: 4284 case 0x10ec0288:
4251 alc_update_coef_idx(codec, 0x4f, 0xfcc0, 0xd400); 4285 alc_update_coef_idx(codec, 0x4f, 0xfcc0, 0xd400);
@@ -4264,7 +4298,11 @@ static void alc_headset_mode_ctia(struct hda_codec *codec)
4264 case 0x10ec0225: 4298 case 0x10ec0225:
4265 case 0x10ec0295: 4299 case 0x10ec0295:
4266 case 0x10ec0299: 4300 case 0x10ec0299:
4267 alc_process_coef_fw(codec, coef0225); 4301 val = alc_read_coef_idx(codec, 0x45);
4302 if (val & (1 << 9))
4303 alc_process_coef_fw(codec, coef0225_2);
4304 else
4305 alc_process_coef_fw(codec, coef0225_1);
4268 break; 4306 break;
4269 case 0x10ec0867: 4307 case 0x10ec0867:
4270 alc_update_coefex_idx(codec, 0x57, 0x5, 1<<14, 0); 4308 alc_update_coefex_idx(codec, 0x57, 0x5, 1<<14, 0);
@@ -4320,9 +4358,7 @@ static void alc_headset_mode_omtp(struct hda_codec *codec)
4320 }; 4358 };
4321 static struct coef_fw coef0225[] = { 4359 static struct coef_fw coef0225[] = {
4322 UPDATE_COEF(0x45, 0x3f<<10, 0x39<<10), 4360 UPDATE_COEF(0x45, 0x3f<<10, 0x39<<10),
4323 UPDATE_COEF(0x49, 1<<8, 1<<8), 4361 UPDATE_COEF(0x63, 3<<14, 2<<14),
4324 UPDATE_COEF(0x4a, 7<<6, 7<<6),
4325 UPDATE_COEF(0x4a, 3<<4, 3<<4),
4326 {} 4362 {}
4327 }; 4363 };
4328 4364
@@ -4344,7 +4380,9 @@ static void alc_headset_mode_omtp(struct hda_codec *codec)
4344 break; 4380 break;
4345 case 0x10ec0298: 4381 case 0x10ec0298:
4346 alc_update_coef_idx(codec, 0x8e, 0x0070, 0x0010);/* Headset output enable */ 4382 alc_update_coef_idx(codec, 0x8e, 0x0070, 0x0010);/* Headset output enable */
4347 /* ALC298 jack type setting is the same with ALC286/ALC288 */ 4383 alc_update_coef_idx(codec, 0x4f, 0xfcc0, 0xe400);
4384 msleep(300);
4385 break;
4348 case 0x10ec0286: 4386 case 0x10ec0286:
4349 case 0x10ec0288: 4387 case 0x10ec0288:
4350 alc_update_coef_idx(codec, 0x4f, 0xfcc0, 0xe400); 4388 alc_update_coef_idx(codec, 0x4f, 0xfcc0, 0xe400);
@@ -4384,6 +4422,14 @@ static void alc_determine_headset_type(struct hda_codec *codec)
4384 UPDATE_COEF(0x4f, 0xfcc0, 0xd400), /* Check Type */ 4422 UPDATE_COEF(0x4f, 0xfcc0, 0xd400), /* Check Type */
4385 {} 4423 {}
4386 }; 4424 };
4425 static struct coef_fw coef0298[] = {
4426 UPDATE_COEF(0x50, 0x2000, 0x2000),
4427 UPDATE_COEF(0x56, 0x0006, 0x0006),
4428 UPDATE_COEF(0x66, 0x0008, 0),
4429 UPDATE_COEF(0x67, 0x2000, 0),
4430 UPDATE_COEF(0x19, 0x1300, 0x1300),
4431 {}
4432 };
4387 static struct coef_fw coef0293[] = { 4433 static struct coef_fw coef0293[] = {
4388 UPDATE_COEF(0x4a, 0x000f, 0x0008), /* Combo Jack auto detect */ 4434 UPDATE_COEF(0x4a, 0x000f, 0x0008), /* Combo Jack auto detect */
4389 WRITE_COEF(0x45, 0xD429), /* Set to ctia type */ 4435 WRITE_COEF(0x45, 0xD429), /* Set to ctia type */
@@ -4396,11 +4442,6 @@ static void alc_determine_headset_type(struct hda_codec *codec)
4396 WRITE_COEF(0xc3, 0x0c00), 4442 WRITE_COEF(0xc3, 0x0c00),
4397 {} 4443 {}
4398 }; 4444 };
4399 static struct coef_fw coef0225[] = {
4400 UPDATE_COEF(0x45, 0x3f<<10, 0x34<<10),
4401 UPDATE_COEF(0x49, 1<<8, 1<<8),
4402 {}
4403 };
4404 static struct coef_fw coef0274[] = { 4445 static struct coef_fw coef0274[] = {
4405 UPDATE_COEF(0x4a, 0x0010, 0), 4446 UPDATE_COEF(0x4a, 0x0010, 0),
4406 UPDATE_COEF(0x4a, 0x8000, 0), 4447 UPDATE_COEF(0x4a, 0x8000, 0),
@@ -4433,8 +4474,34 @@ static void alc_determine_headset_type(struct hda_codec *codec)
4433 is_ctia = (val & 0x0070) == 0x0070; 4474 is_ctia = (val & 0x0070) == 0x0070;
4434 break; 4475 break;
4435 case 0x10ec0298: 4476 case 0x10ec0298:
4436 alc_update_coef_idx(codec, 0x8e, 0x0070, 0x0020); /* Headset output enable */ 4477 snd_hda_codec_write(codec, 0x21, 0,
4437 /* ALC298 check jack type is the same with ALC286/ALC288 */ 4478 AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_MUTE);
4479 msleep(100);
4480 snd_hda_codec_write(codec, 0x21, 0,
4481 AC_VERB_SET_PIN_WIDGET_CONTROL, 0x0);
4482 msleep(200);
4483
4484 val = alc_read_coef_idx(codec, 0x50);
4485 if (val & (1 << 12)) {
4486 alc_update_coef_idx(codec, 0x8e, 0x0070, 0x0020);
4487 alc_process_coef_fw(codec, coef0288);
4488 msleep(350);
4489 val = alc_read_coef_idx(codec, 0x50);
4490 is_ctia = (val & 0x0070) == 0x0070;
4491 } else {
4492 alc_update_coef_idx(codec, 0x8e, 0x0070, 0x0010);
4493 alc_process_coef_fw(codec, coef0288);
4494 msleep(350);
4495 val = alc_read_coef_idx(codec, 0x50);
4496 is_ctia = (val & 0x0070) == 0x0070;
4497 }
4498 alc_process_coef_fw(codec, coef0298);
4499 snd_hda_codec_write(codec, 0x21, 0,
4500 AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP);
4501 msleep(75);
4502 snd_hda_codec_write(codec, 0x21, 0,
4503 AC_VERB_SET_AMP_GAIN_MUTE, AMP_OUT_UNMUTE);
4504 break;
4438 case 0x10ec0286: 4505 case 0x10ec0286:
4439 case 0x10ec0288: 4506 case 0x10ec0288:
4440 alc_process_coef_fw(codec, coef0288); 4507 alc_process_coef_fw(codec, coef0288);
@@ -4463,10 +4530,25 @@ static void alc_determine_headset_type(struct hda_codec *codec)
4463 case 0x10ec0225: 4530 case 0x10ec0225:
4464 case 0x10ec0295: 4531 case 0x10ec0295:
4465 case 0x10ec0299: 4532 case 0x10ec0299:
4466 alc_process_coef_fw(codec, coef0225); 4533 alc_process_coef_fw(codec, alc225_pre_hsmode);
4467 msleep(800); 4534 alc_update_coef_idx(codec, 0x67, 0xf000, 0x1000);
4468 val = alc_read_coef_idx(codec, 0x46); 4535 val = alc_read_coef_idx(codec, 0x45);
4469 is_ctia = (val & 0x00f0) == 0x00f0; 4536 if (val & (1 << 9)) {
4537 alc_update_coef_idx(codec, 0x45, 0x3f<<10, 0x34<<10);
4538 alc_update_coef_idx(codec, 0x49, 3<<8, 2<<8);
4539 msleep(800);
4540 val = alc_read_coef_idx(codec, 0x46);
4541 is_ctia = (val & 0x00f0) == 0x00f0;
4542 } else {
4543 alc_update_coef_idx(codec, 0x45, 0x3f<<10, 0x34<<10);
4544 alc_update_coef_idx(codec, 0x49, 3<<8, 1<<8);
4545 msleep(800);
4546 val = alc_read_coef_idx(codec, 0x46);
4547 is_ctia = (val & 0x00f0) == 0x00f0;
4548 }
4549 alc_update_coef_idx(codec, 0x4a, 7<<6, 7<<6);
4550 alc_update_coef_idx(codec, 0x4a, 3<<4, 3<<4);
4551 alc_update_coef_idx(codec, 0x67, 0xf000, 0x3000);
4470 break; 4552 break;
4471 case 0x10ec0867: 4553 case 0x10ec0867:
4472 is_ctia = true; 4554 is_ctia = true;
@@ -6724,6 +6806,7 @@ static int patch_alc269(struct hda_codec *codec)
6724 case 0x10ec0225: 6806 case 0x10ec0225:
6725 case 0x10ec0295: 6807 case 0x10ec0295:
6726 spec->codec_variant = ALC269_TYPE_ALC225; 6808 spec->codec_variant = ALC269_TYPE_ALC225;
6809 spec->gen.mixer_nid = 0; /* no loopback on ALC225 ALC295 */
6727 break; 6810 break;
6728 case 0x10ec0299: 6811 case 0x10ec0299:
6729 spec->codec_variant = ALC269_TYPE_ALC225; 6812 spec->codec_variant = ALC269_TYPE_ALC225;
diff --git a/sound/soc/codecs/msm8916-wcd-analog.c b/sound/soc/codecs/msm8916-wcd-analog.c
index a78802920c3c..5710fd440bcd 100644
--- a/sound/soc/codecs/msm8916-wcd-analog.c
+++ b/sound/soc/codecs/msm8916-wcd-analog.c
@@ -36,7 +36,7 @@
36#define CDC_D_CDC_DIG_CLK_CTL (0xf04A) 36#define CDC_D_CDC_DIG_CLK_CTL (0xf04A)
37#define DIG_CLK_CTL_RXD1_CLK_EN BIT(0) 37#define DIG_CLK_CTL_RXD1_CLK_EN BIT(0)
38#define DIG_CLK_CTL_RXD2_CLK_EN BIT(1) 38#define DIG_CLK_CTL_RXD2_CLK_EN BIT(1)
39#define DIG_CLK_CTL_RXD3_CLK_EN BIT(3) 39#define DIG_CLK_CTL_RXD3_CLK_EN BIT(2)
40#define DIG_CLK_CTL_TXD_CLK_EN BIT(4) 40#define DIG_CLK_CTL_TXD_CLK_EN BIT(4)
41#define DIG_CLK_CTL_NCP_CLK_EN_MASK BIT(6) 41#define DIG_CLK_CTL_NCP_CLK_EN_MASK BIT(6)
42#define DIG_CLK_CTL_NCP_CLK_EN BIT(6) 42#define DIG_CLK_CTL_NCP_CLK_EN BIT(6)
diff --git a/sound/soc/codecs/rt5663.c b/sound/soc/codecs/rt5663.c
index a33202affeb1..fa550e3c1332 100644
--- a/sound/soc/codecs/rt5663.c
+++ b/sound/soc/codecs/rt5663.c
@@ -466,7 +466,7 @@ static const struct reg_default rt5663_reg[] = {
466 { 0x0006, 0x1000 }, 466 { 0x0006, 0x1000 },
467 { 0x000a, 0x0000 }, 467 { 0x000a, 0x0000 },
468 { 0x0010, 0x000f }, 468 { 0x0010, 0x000f },
469 { 0x0015, 0x42c1 }, 469 { 0x0015, 0x42f1 },
470 { 0x0016, 0x0000 }, 470 { 0x0016, 0x0000 },
471 { 0x0018, 0x000b }, 471 { 0x0018, 0x000b },
472 { 0x0019, 0xafaf }, 472 { 0x0019, 0xafaf },
@@ -509,7 +509,7 @@ static const struct reg_default rt5663_reg[] = {
509 { 0x008a, 0x0000 }, 509 { 0x008a, 0x0000 },
510 { 0x008b, 0x0000 }, 510 { 0x008b, 0x0000 },
511 { 0x008c, 0x0003 }, 511 { 0x008c, 0x0003 },
512 { 0x008e, 0x0004 }, 512 { 0x008e, 0x0008 },
513 { 0x008f, 0x1000 }, 513 { 0x008f, 0x1000 },
514 { 0x0090, 0x0646 }, 514 { 0x0090, 0x0646 },
515 { 0x0091, 0x0e3e }, 515 { 0x0091, 0x0e3e },
@@ -520,7 +520,7 @@ static const struct reg_default rt5663_reg[] = {
520 { 0x0098, 0x0000 }, 520 { 0x0098, 0x0000 },
521 { 0x009a, 0x0000 }, 521 { 0x009a, 0x0000 },
522 { 0x009f, 0x0000 }, 522 { 0x009f, 0x0000 },
523 { 0x00ae, 0x2000 }, 523 { 0x00ae, 0x6000 },
524 { 0x00af, 0x0000 }, 524 { 0x00af, 0x0000 },
525 { 0x00b6, 0x0000 }, 525 { 0x00b6, 0x0000 },
526 { 0x00b7, 0x0000 }, 526 { 0x00b7, 0x0000 },
@@ -538,7 +538,7 @@ static const struct reg_default rt5663_reg[] = {
538 { 0x00d9, 0x08f9 }, 538 { 0x00d9, 0x08f9 },
539 { 0x00db, 0x0008 }, 539 { 0x00db, 0x0008 },
540 { 0x00dc, 0x00c0 }, 540 { 0x00dc, 0x00c0 },
541 { 0x00dd, 0x6724 }, 541 { 0x00dd, 0x6729 },
542 { 0x00de, 0x3131 }, 542 { 0x00de, 0x3131 },
543 { 0x00df, 0x0008 }, 543 { 0x00df, 0x0008 },
544 { 0x00e0, 0x4000 }, 544 { 0x00e0, 0x4000 },
@@ -578,7 +578,7 @@ static const struct reg_default rt5663_reg[] = {
578 { 0x0116, 0x0000 }, 578 { 0x0116, 0x0000 },
579 { 0x0117, 0x0f00 }, 579 { 0x0117, 0x0f00 },
580 { 0x0118, 0x0006 }, 580 { 0x0118, 0x0006 },
581 { 0x0125, 0x2224 }, 581 { 0x0125, 0x2424 },
582 { 0x0126, 0x5550 }, 582 { 0x0126, 0x5550 },
583 { 0x0127, 0x0400 }, 583 { 0x0127, 0x0400 },
584 { 0x0128, 0x7711 }, 584 { 0x0128, 0x7711 },
@@ -596,8 +596,8 @@ static const struct reg_default rt5663_reg[] = {
596 { 0x0145, 0x0002 }, 596 { 0x0145, 0x0002 },
597 { 0x0146, 0x0000 }, 597 { 0x0146, 0x0000 },
598 { 0x0160, 0x0e80 }, 598 { 0x0160, 0x0e80 },
599 { 0x0161, 0x0020 }, 599 { 0x0161, 0x0080 },
600 { 0x0162, 0x0080 }, 600 { 0x0162, 0x0200 },
601 { 0x0163, 0x0800 }, 601 { 0x0163, 0x0800 },
602 { 0x0164, 0x0000 }, 602 { 0x0164, 0x0000 },
603 { 0x0165, 0x0000 }, 603 { 0x0165, 0x0000 },
@@ -676,8 +676,8 @@ static const struct reg_default rt5663_reg[] = {
676 { 0x0251, 0x0000 }, 676 { 0x0251, 0x0000 },
677 { 0x0252, 0x028a }, 677 { 0x0252, 0x028a },
678 { 0x02fa, 0x0000 }, 678 { 0x02fa, 0x0000 },
679 { 0x02fb, 0x0000 }, 679 { 0x02fb, 0x00a4 },
680 { 0x02fc, 0x0000 }, 680 { 0x02fc, 0x0300 },
681 { 0x0300, 0x0000 }, 681 { 0x0300, 0x0000 },
682 { 0x03d0, 0x0000 }, 682 { 0x03d0, 0x0000 },
683 { 0x03d1, 0x0000 }, 683 { 0x03d1, 0x0000 },
diff --git a/sound/soc/codecs/rt5665.c b/sound/soc/codecs/rt5665.c
index 370ed54d1e15..e597c893536d 100644
--- a/sound/soc/codecs/rt5665.c
+++ b/sound/soc/codecs/rt5665.c
@@ -4368,12 +4368,12 @@ static int rt5665_set_bclk_ratio(struct snd_soc_dai *dai, unsigned int ratio)
4368 switch (dai->id) { 4368 switch (dai->id) {
4369 case RT5665_AIF2_1: 4369 case RT5665_AIF2_1:
4370 case RT5665_AIF2_2: 4370 case RT5665_AIF2_2:
4371 snd_soc_update_bits(codec, RT5665_ADDA_CLK_1, 4371 snd_soc_update_bits(codec, RT5665_ADDA_CLK_2,
4372 RT5665_I2S_BCLK_MS2_MASK, 4372 RT5665_I2S_BCLK_MS2_MASK,
4373 RT5665_I2S_BCLK_MS2_64); 4373 RT5665_I2S_BCLK_MS2_64);
4374 break; 4374 break;
4375 case RT5665_AIF3: 4375 case RT5665_AIF3:
4376 snd_soc_update_bits(codec, RT5665_ADDA_CLK_1, 4376 snd_soc_update_bits(codec, RT5665_ADDA_CLK_2,
4377 RT5665_I2S_BCLK_MS3_MASK, 4377 RT5665_I2S_BCLK_MS3_MASK,
4378 RT5665_I2S_BCLK_MS3_64); 4378 RT5665_I2S_BCLK_MS3_64);
4379 break; 4379 break;
diff --git a/sound/soc/codecs/rt5665.h b/sound/soc/codecs/rt5665.h
index 1db5c6a62a8e..d95249c4c47b 100644
--- a/sound/soc/codecs/rt5665.h
+++ b/sound/soc/codecs/rt5665.h
@@ -1692,8 +1692,8 @@
1692#define RT5665_GP6_PIN_MASK (0x3 << 5) 1692#define RT5665_GP6_PIN_MASK (0x3 << 5)
1693#define RT5665_GP6_PIN_SFT 5 1693#define RT5665_GP6_PIN_SFT 5
1694#define RT5665_GP6_PIN_GPIO6 (0x0 << 5) 1694#define RT5665_GP6_PIN_GPIO6 (0x0 << 5)
1695#define RT5665_GP6_PIN_BCLK3 (0x0 << 5) 1695#define RT5665_GP6_PIN_BCLK3 (0x1 << 5)
1696#define RT5665_GP6_PIN_PDM_SCL (0x1 << 5) 1696#define RT5665_GP6_PIN_PDM_SCL (0x2 << 5)
1697#define RT5665_GP7_PIN_MASK (0x3 << 3) 1697#define RT5665_GP7_PIN_MASK (0x3 << 3)
1698#define RT5665_GP7_PIN_SFT 3 1698#define RT5665_GP7_PIN_SFT 3
1699#define RT5665_GP7_PIN_GPIO7 (0x0 << 3) 1699#define RT5665_GP7_PIN_GPIO7 (0x0 << 3)
diff --git a/sound/soc/codecs/sgtl5000.c b/sound/soc/codecs/sgtl5000.c
index 8f6814c1eb6b..80f6d1da7095 100644
--- a/sound/soc/codecs/sgtl5000.c
+++ b/sound/soc/codecs/sgtl5000.c
@@ -409,7 +409,7 @@ static int dac_put_volsw(struct snd_kcontrol *kcontrol,
409static int avc_get_threshold(struct snd_kcontrol *kcontrol, 409static int avc_get_threshold(struct snd_kcontrol *kcontrol,
410 struct snd_ctl_elem_value *ucontrol) 410 struct snd_ctl_elem_value *ucontrol)
411{ 411{
412 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); 412 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
413 int db, i; 413 int db, i;
414 u16 reg = snd_soc_read(codec, SGTL5000_DAP_AVC_THRESHOLD); 414 u16 reg = snd_soc_read(codec, SGTL5000_DAP_AVC_THRESHOLD);
415 415
@@ -442,7 +442,7 @@ static int avc_get_threshold(struct snd_kcontrol *kcontrol,
442static int avc_put_threshold(struct snd_kcontrol *kcontrol, 442static int avc_put_threshold(struct snd_kcontrol *kcontrol,
443 struct snd_ctl_elem_value *ucontrol) 443 struct snd_ctl_elem_value *ucontrol)
444{ 444{
445 struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol); 445 struct snd_soc_codec *codec = snd_soc_kcontrol_codec(kcontrol);
446 int db; 446 int db;
447 u16 reg; 447 u16 reg;
448 448
diff --git a/sound/soc/fsl/imx-ssi.c b/sound/soc/fsl/imx-ssi.c
index b95132e2f9dc..06790615e04e 100644
--- a/sound/soc/fsl/imx-ssi.c
+++ b/sound/soc/fsl/imx-ssi.c
@@ -527,6 +527,10 @@ static int imx_ssi_probe(struct platform_device *pdev)
527 } 527 }
528 528
529 ssi->irq = platform_get_irq(pdev, 0); 529 ssi->irq = platform_get_irq(pdev, 0);
530 if (ssi->irq < 0) {
531 dev_err(&pdev->dev, "Failed to get IRQ: %d\n", ssi->irq);
532 return ssi->irq;
533 }
530 534
531 ssi->clk = devm_clk_get(&pdev->dev, NULL); 535 ssi->clk = devm_clk_get(&pdev->dev, NULL);
532 if (IS_ERR(ssi->clk)) { 536 if (IS_ERR(ssi->clk)) {
diff --git a/sound/soc/generic/audio-graph-card.c b/sound/soc/generic/audio-graph-card.c
index 105ec3a6e30d..de2550c7a96b 100644
--- a/sound/soc/generic/audio-graph-card.c
+++ b/sound/soc/generic/audio-graph-card.c
@@ -224,9 +224,11 @@ static int asoc_graph_card_parse_of(struct graph_card_data *priv)
224 224
225 of_for_each_phandle(&it, rc, node, "dais", NULL, 0) { 225 of_for_each_phandle(&it, rc, node, "dais", NULL, 0) {
226 ret = asoc_graph_card_dai_link_of(it.node, priv, idx++); 226 ret = asoc_graph_card_dai_link_of(it.node, priv, idx++);
227 of_node_put(it.node); 227 if (ret < 0) {
228 if (ret < 0) 228 of_node_put(it.node);
229
229 return ret; 230 return ret;
231 }
230 } 232 }
231 233
232 return asoc_simple_card_parse_card_name(card, NULL); 234 return asoc_simple_card_parse_card_name(card, NULL);
@@ -239,10 +241,8 @@ static int asoc_graph_get_dais_count(struct device *dev)
239 int count = 0; 241 int count = 0;
240 int rc; 242 int rc;
241 243
242 of_for_each_phandle(&it, rc, node, "dais", NULL, 0) { 244 of_for_each_phandle(&it, rc, node, "dais", NULL, 0)
243 count++; 245 count++;
244 of_node_put(it.node);
245 }
246 246
247 return count; 247 return count;
248} 248}
diff --git a/sound/soc/generic/audio-graph-scu-card.c b/sound/soc/generic/audio-graph-scu-card.c
index dcd2df37bc3b..758ac06f3a99 100644
--- a/sound/soc/generic/audio-graph-scu-card.c
+++ b/sound/soc/generic/audio-graph-scu-card.c
@@ -215,7 +215,6 @@ static int asoc_graph_card_parse_of(struct graph_card_data *priv)
215 codec_ep = of_graph_get_remote_endpoint(cpu_ep); 215 codec_ep = of_graph_get_remote_endpoint(cpu_ep);
216 rcpu_ep = of_graph_get_remote_endpoint(codec_ep); 216 rcpu_ep = of_graph_get_remote_endpoint(codec_ep);
217 217
218 of_node_put(cpu_port);
219 of_node_put(cpu_ep); 218 of_node_put(cpu_ep);
220 of_node_put(codec_ep); 219 of_node_put(codec_ep);
221 of_node_put(rcpu_ep); 220 of_node_put(rcpu_ep);
@@ -232,8 +231,10 @@ static int asoc_graph_card_parse_of(struct graph_card_data *priv)
232 231
233 ret = asoc_simple_card_parse_daifmt(dev, cpu_ep, codec_ep, 232 ret = asoc_simple_card_parse_daifmt(dev, cpu_ep, codec_ep,
234 NULL, &daifmt); 233 NULL, &daifmt);
235 if (ret < 0) 234 if (ret < 0) {
235 of_node_put(cpu_port);
236 goto parse_of_err; 236 goto parse_of_err;
237 }
237 } 238 }
238 239
239 dai_idx = 0; 240 dai_idx = 0;
@@ -250,7 +251,6 @@ static int asoc_graph_card_parse_of(struct graph_card_data *priv)
250 codec_ep = of_graph_get_remote_endpoint(cpu_ep); 251 codec_ep = of_graph_get_remote_endpoint(cpu_ep);
251 codec_port = of_graph_get_port_parent(codec_ep); 252 codec_port = of_graph_get_port_parent(codec_ep);
252 253
253 of_node_put(cpu_port);
254 of_node_put(cpu_ep); 254 of_node_put(cpu_ep);
255 of_node_put(codec_ep); 255 of_node_put(codec_ep);
256 of_node_put(codec_port); 256 of_node_put(codec_port);
@@ -266,13 +266,17 @@ static int asoc_graph_card_parse_of(struct graph_card_data *priv)
266 266
267 /* Back-End (= Codec) */ 267 /* Back-End (= Codec) */
268 ret = asoc_graph_card_dai_link_of(codec_ep, priv, daifmt, dai_idx++, 0); 268 ret = asoc_graph_card_dai_link_of(codec_ep, priv, daifmt, dai_idx++, 0);
269 if (ret < 0) 269 if (ret < 0) {
270 of_node_put(cpu_port);
270 goto parse_of_err; 271 goto parse_of_err;
272 }
271 } else { 273 } else {
272 /* Front-End (= CPU) */ 274 /* Front-End (= CPU) */
273 ret = asoc_graph_card_dai_link_of(cpu_ep, priv, daifmt, dai_idx++, 1); 275 ret = asoc_graph_card_dai_link_of(cpu_ep, priv, daifmt, dai_idx++, 1);
274 if (ret < 0) 276 if (ret < 0) {
277 of_node_put(cpu_port);
275 goto parse_of_err; 278 goto parse_of_err;
279 }
276 } 280 }
277 } 281 }
278 } 282 }
@@ -306,7 +310,6 @@ static int asoc_graph_get_dais_count(struct device *dev)
306 codec_ep = of_graph_get_remote_endpoint(cpu_ep); 310 codec_ep = of_graph_get_remote_endpoint(cpu_ep);
307 codec_port = of_graph_get_port_parent(codec_ep); 311 codec_port = of_graph_get_port_parent(codec_ep);
308 312
309 of_node_put(cpu_port);
310 of_node_put(cpu_ep); 313 of_node_put(cpu_ep);
311 of_node_put(codec_ep); 314 of_node_put(codec_ep);
312 of_node_put(codec_port); 315 of_node_put(codec_port);
diff --git a/sound/soc/generic/simple-card-utils.c b/sound/soc/generic/simple-card-utils.c
index 26d64fa40c9c..7d7ab4aee42e 100644
--- a/sound/soc/generic/simple-card-utils.c
+++ b/sound/soc/generic/simple-card-utils.c
@@ -263,6 +263,9 @@ static int asoc_simple_card_get_dai_id(struct device_node *ep)
263 id = i; 263 id = i;
264 i++; 264 i++;
265 } 265 }
266
267 of_node_put(node);
268
266 if (id < 0) 269 if (id < 0)
267 return -ENODEV; 270 return -ENODEV;
268 271
@@ -282,11 +285,6 @@ int asoc_simple_card_parse_graph_dai(struct device_node *ep,
282 if (!dai_name) 285 if (!dai_name)
283 return 0; 286 return 0;
284 287
285 /*
286 * of_graph_get_port_parent() will call
287 * of_node_put(). So, call of_node_get() here
288 */
289 of_node_get(ep);
290 node = of_graph_get_port_parent(ep); 288 node = of_graph_get_port_parent(ep);
291 289
292 /* Get dai->name */ 290 /* Get dai->name */
diff --git a/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c b/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
index 3fe4a0807095..cfd89ca6a18d 100644
--- a/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
+++ b/sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
@@ -319,7 +319,9 @@ static int kabylake_rt5663_hw_params(struct snd_pcm_substream *substream,
319 int ret; 319 int ret;
320 320
321 /* use ASRC for internal clocks, as PLL rate isn't multiple of BCLK */ 321 /* use ASRC for internal clocks, as PLL rate isn't multiple of BCLK */
322 rt5663_sel_asrc_clk_src(codec_dai->codec, RT5663_DA_STEREO_FILTER, 1); 322 rt5663_sel_asrc_clk_src(codec_dai->codec,
323 RT5663_DA_STEREO_FILTER | RT5663_AD_STEREO_FILTER,
324 RT5663_CLK_SEL_I2S1_ASRC);
323 325
324 ret = snd_soc_dai_set_sysclk(codec_dai, 326 ret = snd_soc_dai_set_sysclk(codec_dai,
325 RT5663_SCLK_S_MCLK, 24576000, SND_SOC_CLOCK_IN); 327 RT5663_SCLK_S_MCLK, 24576000, SND_SOC_CLOCK_IN);
@@ -349,19 +351,10 @@ static int kabylake_ssp0_hw_params(struct snd_pcm_substream *substream,
349 return ret; 351 return ret;
350 } 352 }
351 353
352 ret = snd_soc_dai_set_pll(codec_dai, 0,
353 RT5514_PLL1_S_BCLK, RT5514_AIF1_BCLK_FREQ,
354 RT5514_AIF1_SYSCLK_FREQ);
355 if (ret < 0) {
356 dev_err(rtd->dev, "set bclk err: %d\n", ret);
357 return ret;
358 }
359
360 ret = snd_soc_dai_set_sysclk(codec_dai, 354 ret = snd_soc_dai_set_sysclk(codec_dai,
361 RT5514_SCLK_S_PLL1, RT5514_AIF1_SYSCLK_FREQ, 355 RT5514_SCLK_S_MCLK, 24576000, SND_SOC_CLOCK_IN);
362 SND_SOC_CLOCK_IN);
363 if (ret < 0) { 356 if (ret < 0) {
364 dev_err(rtd->dev, "set sclk err: %d\n", ret); 357 dev_err(rtd->dev, "set sysclk err: %d\n", ret);
365 return ret; 358 return ret;
366 } 359 }
367 } 360 }
diff --git a/sound/soc/intel/skylake/skl-messages.c b/sound/soc/intel/skylake/skl-messages.c
index eca85827dbd2..fb2f1f603f3c 100644
--- a/sound/soc/intel/skylake/skl-messages.c
+++ b/sound/soc/intel/skylake/skl-messages.c
@@ -540,6 +540,14 @@ static void skl_setup_cpr_gateway_cfg(struct skl_sst *ctx,
540 cpr_mconfig->gtw_cfg.dma_buffer_size = 540 cpr_mconfig->gtw_cfg.dma_buffer_size =
541 mconfig->dma_buffer_size * dma_io_buf; 541 mconfig->dma_buffer_size * dma_io_buf;
542 542
543 /* fallback to 2ms default value */
544 if (!cpr_mconfig->gtw_cfg.dma_buffer_size) {
545 if (mconfig->hw_conn_type == SKL_CONN_SOURCE)
546 cpr_mconfig->gtw_cfg.dma_buffer_size = 2 * mconfig->obs;
547 else
548 cpr_mconfig->gtw_cfg.dma_buffer_size = 2 * mconfig->ibs;
549 }
550
543 cpr_mconfig->cpr_feature_mask = 0; 551 cpr_mconfig->cpr_feature_mask = 0;
544 cpr_mconfig->gtw_cfg.config_length = 0; 552 cpr_mconfig->gtw_cfg.config_length = 0;
545 553
diff --git a/sound/soc/intel/skylake/skl.c b/sound/soc/intel/skylake/skl.c
index 334917ee41cf..9e3f8c04dd32 100644
--- a/sound/soc/intel/skylake/skl.c
+++ b/sound/soc/intel/skylake/skl.c
@@ -941,6 +941,7 @@ static struct sst_acpi_mach sst_bxtp_devdata[] = {
941 .machine_quirk = sst_acpi_codec_list, 941 .machine_quirk = sst_acpi_codec_list,
942 .quirk_data = &bxt_codecs, 942 .quirk_data = &bxt_codecs,
943 }, 943 },
944 {}
944}; 945};
945 946
946static struct sst_acpi_mach sst_kbl_devdata[] = { 947static struct sst_acpi_mach sst_kbl_devdata[] = {
@@ -991,6 +992,7 @@ static struct sst_acpi_mach sst_glk_devdata[] = {
991 .drv_name = "glk_alc298s_i2s", 992 .drv_name = "glk_alc298s_i2s",
992 .fw_filename = "intel/dsp_fw_glk.bin", 993 .fw_filename = "intel/dsp_fw_glk.bin",
993 }, 994 },
995 {}
994}; 996};
995 997
996/* PCI IDs */ 998/* PCI IDs */
diff --git a/sound/soc/pxa/Kconfig b/sound/soc/pxa/Kconfig
index 960744e46edc..484ab3c2ad67 100644
--- a/sound/soc/pxa/Kconfig
+++ b/sound/soc/pxa/Kconfig
@@ -1,6 +1,7 @@
1config SND_PXA2XX_SOC 1config SND_PXA2XX_SOC
2 tristate "SoC Audio for the Intel PXA2xx chip" 2 tristate "SoC Audio for the Intel PXA2xx chip"
3 depends on ARCH_PXA || COMPILE_TEST 3 depends on ARCH_PXA || COMPILE_TEST
4 depends on HAS_DMA
4 select SND_PXA2XX_LIB 5 select SND_PXA2XX_LIB
5 help 6 help
6 Say Y or M if you want to add support for codecs attached to 7 Say Y or M if you want to add support for codecs attached to
diff --git a/sound/soc/samsung/odroid.c b/sound/soc/samsung/odroid.c
index 0c0b00e40646..0834319ead42 100644
--- a/sound/soc/samsung/odroid.c
+++ b/sound/soc/samsung/odroid.c
@@ -42,17 +42,17 @@ static int odroid_card_hw_params(struct snd_pcm_substream *substream,
42 switch (params_rate(params)) { 42 switch (params_rate(params)) {
43 case 32000: 43 case 32000:
44 case 64000: 44 case 64000:
45 pll_freq = 131072000U; 45 pll_freq = 131072006U;
46 break; 46 break;
47 case 44100: 47 case 44100:
48 case 88200: 48 case 88200:
49 case 176400: 49 case 176400:
50 pll_freq = 180633600U; 50 pll_freq = 180633609U;
51 break; 51 break;
52 case 48000: 52 case 48000:
53 case 96000: 53 case 96000:
54 case 192000: 54 case 192000:
55 pll_freq = 196608000U; 55 pll_freq = 196608001U;
56 break; 56 break;
57 default: 57 default:
58 return -EINVAL; 58 return -EINVAL;
diff --git a/sound/soc/sh/hac.c b/sound/soc/sh/hac.c
index 84c51037a7d0..624aaf569fef 100644
--- a/sound/soc/sh/hac.c
+++ b/sound/soc/sh/hac.c
@@ -315,6 +315,8 @@ static const struct snd_soc_component_driver sh4_hac_component = {
315 315
316static int hac_soc_platform_probe(struct platform_device *pdev) 316static int hac_soc_platform_probe(struct platform_device *pdev)
317{ 317{
318 int ret;
319
318 ret = snd_soc_set_ac97_ops(&hac_ac97_ops); 320 ret = snd_soc_set_ac97_ops(&hac_ac97_ops);
319 if (ret != 0) 321 if (ret != 0)
320 return ret; 322 return ret;
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 921622a01944..13c875e2392a 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -3171,8 +3171,6 @@ static int snd_soc_component_initialize(struct snd_soc_component *component,
3171 component->remove = component->driver->remove; 3171 component->remove = component->driver->remove;
3172 component->suspend = component->driver->suspend; 3172 component->suspend = component->driver->suspend;
3173 component->resume = component->driver->resume; 3173 component->resume = component->driver->resume;
3174 component->pcm_new = component->driver->pcm_new;
3175 component->pcm_free = component->driver->pcm_free;
3176 3174
3177 dapm = &component->dapm; 3175 dapm = &component->dapm;
3178 dapm->dev = dev; 3176 dapm->dev = dev;
@@ -3360,25 +3358,6 @@ static void snd_soc_platform_drv_remove(struct snd_soc_component *component)
3360 platform->driver->remove(platform); 3358 platform->driver->remove(platform);
3361} 3359}
3362 3360
3363static int snd_soc_platform_drv_pcm_new(struct snd_soc_pcm_runtime *rtd)
3364{
3365 struct snd_soc_platform *platform = rtd->platform;
3366
3367 if (platform->driver->pcm_new)
3368 return platform->driver->pcm_new(rtd);
3369 else
3370 return 0;
3371}
3372
3373static void snd_soc_platform_drv_pcm_free(struct snd_pcm *pcm)
3374{
3375 struct snd_soc_pcm_runtime *rtd = pcm->private_data;
3376 struct snd_soc_platform *platform = rtd->platform;
3377
3378 if (platform->driver->pcm_free)
3379 platform->driver->pcm_free(pcm);
3380}
3381
3382/** 3361/**
3383 * snd_soc_add_platform - Add a platform to the ASoC core 3362 * snd_soc_add_platform - Add a platform to the ASoC core
3384 * @dev: The parent device for the platform 3363 * @dev: The parent device for the platform
@@ -3402,10 +3381,6 @@ int snd_soc_add_platform(struct device *dev, struct snd_soc_platform *platform,
3402 platform->component.probe = snd_soc_platform_drv_probe; 3381 platform->component.probe = snd_soc_platform_drv_probe;
3403 if (platform_drv->remove) 3382 if (platform_drv->remove)
3404 platform->component.remove = snd_soc_platform_drv_remove; 3383 platform->component.remove = snd_soc_platform_drv_remove;
3405 if (platform_drv->pcm_new)
3406 platform->component.pcm_new = snd_soc_platform_drv_pcm_new;
3407 if (platform_drv->pcm_free)
3408 platform->component.pcm_free = snd_soc_platform_drv_pcm_free;
3409 3384
3410#ifdef CONFIG_DEBUG_FS 3385#ifdef CONFIG_DEBUG_FS
3411 platform->component.debugfs_prefix = "platform"; 3386 platform->component.debugfs_prefix = "platform";
@@ -4113,6 +4088,8 @@ int snd_soc_get_dai_id(struct device_node *ep)
4113 } 4088 }
4114 mutex_unlock(&client_mutex); 4089 mutex_unlock(&client_mutex);
4115 4090
4091 of_node_put(node);
4092
4116 return ret; 4093 return ret;
4117} 4094}
4118EXPORT_SYMBOL_GPL(snd_soc_get_dai_id); 4095EXPORT_SYMBOL_GPL(snd_soc_get_dai_id);
diff --git a/sound/soc/soc-pcm.c b/sound/soc/soc-pcm.c
index dcc5ece08668..7d3859e1a7b9 100644
--- a/sound/soc/soc-pcm.c
+++ b/sound/soc/soc-pcm.c
@@ -181,6 +181,10 @@ int dpcm_dapm_stream_event(struct snd_soc_pcm_runtime *fe, int dir,
181 dev_dbg(be->dev, "ASoC: BE %s event %d dir %d\n", 181 dev_dbg(be->dev, "ASoC: BE %s event %d dir %d\n",
182 be->dai_link->name, event, dir); 182 be->dai_link->name, event, dir);
183 183
184 if ((event == SND_SOC_DAPM_STREAM_STOP) &&
185 (be->dpcm[dir].users >= 1))
186 continue;
187
184 snd_soc_dapm_stream_event(be, dir, event); 188 snd_soc_dapm_stream_event(be, dir, event);
185 } 189 }
186 190
@@ -2628,25 +2632,12 @@ static int dpcm_fe_dai_close(struct snd_pcm_substream *fe_substream)
2628 return ret; 2632 return ret;
2629} 2633}
2630 2634
2631static void soc_pcm_free(struct snd_pcm *pcm)
2632{
2633 struct snd_soc_pcm_runtime *rtd = pcm->private_data;
2634 struct snd_soc_component *component;
2635
2636 list_for_each_entry(component, &rtd->card->component_dev_list,
2637 card_list) {
2638 if (component->pcm_free)
2639 component->pcm_free(pcm);
2640 }
2641}
2642
2643/* create a new pcm */ 2635/* create a new pcm */
2644int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num) 2636int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num)
2645{ 2637{
2646 struct snd_soc_platform *platform = rtd->platform; 2638 struct snd_soc_platform *platform = rtd->platform;
2647 struct snd_soc_dai *codec_dai; 2639 struct snd_soc_dai *codec_dai;
2648 struct snd_soc_dai *cpu_dai = rtd->cpu_dai; 2640 struct snd_soc_dai *cpu_dai = rtd->cpu_dai;
2649 struct snd_soc_component *component;
2650 struct snd_pcm *pcm; 2641 struct snd_pcm *pcm;
2651 char new_name[64]; 2642 char new_name[64];
2652 int ret = 0, playback = 0, capture = 0; 2643 int ret = 0, playback = 0, capture = 0;
@@ -2756,18 +2747,17 @@ int soc_new_pcm(struct snd_soc_pcm_runtime *rtd, int num)
2756 if (capture) 2747 if (capture)
2757 snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &rtd->ops); 2748 snd_pcm_set_ops(pcm, SNDRV_PCM_STREAM_CAPTURE, &rtd->ops);
2758 2749
2759 list_for_each_entry(component, &rtd->card->component_dev_list, card_list) { 2750 if (platform->driver->pcm_new) {
2760 if (component->pcm_new) { 2751 ret = platform->driver->pcm_new(rtd);
2761 ret = component->pcm_new(rtd); 2752 if (ret < 0) {
2762 if (ret < 0) { 2753 dev_err(platform->dev,
2763 dev_err(component->dev, 2754 "ASoC: pcm constructor failed: %d\n",
2764 "ASoC: pcm constructor failed: %d\n", 2755 ret);
2765 ret); 2756 return ret;
2766 return ret;
2767 }
2768 } 2757 }
2769 } 2758 }
2770 pcm->private_free = soc_pcm_free; 2759
2760 pcm->private_free = platform->driver->pcm_free;
2771out: 2761out:
2772 dev_info(rtd->card->dev, "%s <-> %s mapping ok\n", 2762 dev_info(rtd->card->dev, "%s <-> %s mapping ok\n",
2773 (rtd->num_codecs > 1) ? "multicodec" : rtd->codec_dai->name, 2763 (rtd->num_codecs > 1) ? "multicodec" : rtd->codec_dai->name,
diff --git a/sound/soc/ux500/mop500.c b/sound/soc/ux500/mop500.c
index b50f68a439ce..ba9fc099cf67 100644
--- a/sound/soc/ux500/mop500.c
+++ b/sound/soc/ux500/mop500.c
@@ -33,6 +33,7 @@ static struct snd_soc_dai_link mop500_dai_links[] = {
33 .stream_name = "ab8500_0", 33 .stream_name = "ab8500_0",
34 .cpu_dai_name = "ux500-msp-i2s.1", 34 .cpu_dai_name = "ux500-msp-i2s.1",
35 .codec_dai_name = "ab8500-codec-dai.0", 35 .codec_dai_name = "ab8500-codec-dai.0",
36 .platform_name = "ux500-msp-i2s.1",
36 .codec_name = "ab8500-codec.0", 37 .codec_name = "ab8500-codec.0",
37 .init = mop500_ab8500_machine_init, 38 .init = mop500_ab8500_machine_init,
38 .ops = mop500_ab8500_ops, 39 .ops = mop500_ab8500_ops,
@@ -42,6 +43,7 @@ static struct snd_soc_dai_link mop500_dai_links[] = {
42 .stream_name = "ab8500_1", 43 .stream_name = "ab8500_1",
43 .cpu_dai_name = "ux500-msp-i2s.3", 44 .cpu_dai_name = "ux500-msp-i2s.3",
44 .codec_dai_name = "ab8500-codec-dai.1", 45 .codec_dai_name = "ab8500-codec-dai.1",
46 .platform_name = "ux500-msp-i2s.3",
45 .codec_name = "ab8500-codec.0", 47 .codec_name = "ab8500-codec.0",
46 .init = NULL, 48 .init = NULL,
47 .ops = mop500_ab8500_ops, 49 .ops = mop500_ab8500_ops,
@@ -85,6 +87,8 @@ static int mop500_of_probe(struct platform_device *pdev,
85 for (i = 0; i < 2; i++) { 87 for (i = 0; i < 2; i++) {
86 mop500_dai_links[i].cpu_of_node = msp_np[i]; 88 mop500_dai_links[i].cpu_of_node = msp_np[i];
87 mop500_dai_links[i].cpu_dai_name = NULL; 89 mop500_dai_links[i].cpu_dai_name = NULL;
90 mop500_dai_links[i].platform_of_node = msp_np[i];
91 mop500_dai_links[i].platform_name = NULL;
88 mop500_dai_links[i].codec_of_node = codec_np; 92 mop500_dai_links[i].codec_of_node = codec_np;
89 mop500_dai_links[i].codec_name = NULL; 93 mop500_dai_links[i].codec_name = NULL;
90 } 94 }
diff --git a/tools/build/feature/test-bpf.c b/tools/build/feature/test-bpf.c
index 7598361ef1f1..da2172ff9662 100644
--- a/tools/build/feature/test-bpf.c
+++ b/tools/build/feature/test-bpf.c
@@ -11,6 +11,8 @@
11# define __NR_bpf 280 11# define __NR_bpf 280
12# elif defined(__sparc__) 12# elif defined(__sparc__)
13# define __NR_bpf 349 13# define __NR_bpf 349
14# elif defined(__s390__)
15# define __NR_bpf 351
14# else 16# else
15# error __NR_bpf not defined. libbpf does not support your arch. 17# error __NR_bpf not defined. libbpf does not support your arch.
16# endif 18# endif
diff --git a/tools/kvm/kvm_stat/kvm_stat b/tools/kvm/kvm_stat/kvm_stat
index dd8f00cfb8b4..32283d88701a 100755
--- a/tools/kvm/kvm_stat/kvm_stat
+++ b/tools/kvm/kvm_stat/kvm_stat
@@ -474,7 +474,7 @@ class Provider(object):
474 @staticmethod 474 @staticmethod
475 def is_field_wanted(fields_filter, field): 475 def is_field_wanted(fields_filter, field):
476 """Indicate whether field is valid according to fields_filter.""" 476 """Indicate whether field is valid according to fields_filter."""
477 if not fields_filter: 477 if not fields_filter or fields_filter == "help":
478 return True 478 return True
479 return re.match(fields_filter, field) is not None 479 return re.match(fields_filter, field) is not None
480 480
@@ -1413,8 +1413,8 @@ performance.
1413 1413
1414Requirements: 1414Requirements:
1415- Access to: 1415- Access to:
1416 /sys/kernel/debug/kvm 1416 %s
1417 /sys/kernel/debug/trace/events/* 1417 %s/events/*
1418 /proc/pid/task 1418 /proc/pid/task
1419- /proc/sys/kernel/perf_event_paranoid < 1 if user has no 1419- /proc/sys/kernel/perf_event_paranoid < 1 if user has no
1420 CAP_SYS_ADMIN and perf events are used. 1420 CAP_SYS_ADMIN and perf events are used.
@@ -1434,7 +1434,7 @@ Interactive Commands:
1434 s set update interval 1434 s set update interval
1435 x toggle reporting of stats for individual child trace events 1435 x toggle reporting of stats for individual child trace events
1436Press any other key to refresh statistics immediately. 1436Press any other key to refresh statistics immediately.
1437""" 1437""" % (PATH_DEBUGFS_KVM, PATH_DEBUGFS_TRACING)
1438 1438
1439 class PlainHelpFormatter(optparse.IndentedHelpFormatter): 1439 class PlainHelpFormatter(optparse.IndentedHelpFormatter):
1440 def format_description(self, description): 1440 def format_description(self, description):
@@ -1496,7 +1496,8 @@ Press any other key to refresh statistics immediately.
1496 action='store', 1496 action='store',
1497 default=DEFAULT_REGEX, 1497 default=DEFAULT_REGEX,
1498 dest='fields', 1498 dest='fields',
1499 help='fields to display (regex)', 1499 help='''fields to display (regex)
1500 "-f help" for a list of available events''',
1500 ) 1501 )
1501 optparser.add_option('-p', '--pid', 1502 optparser.add_option('-p', '--pid',
1502 action='store', 1503 action='store',
@@ -1559,6 +1560,17 @@ def main():
1559 1560
1560 stats = Stats(options) 1561 stats = Stats(options)
1561 1562
1563 if options.fields == "help":
1564 event_list = "\n"
1565 s = stats.get()
1566 for key in s.keys():
1567 if key.find('(') != -1:
1568 key = key[0:key.find('(')]
1569 if event_list.find('\n' + key + '\n') == -1:
1570 event_list += key + '\n'
1571 sys.stdout.write(event_list)
1572 return ""
1573
1562 if options.log: 1574 if options.log:
1563 log(stats) 1575 log(stats)
1564 elif not options.once: 1576 elif not options.once:
diff --git a/tools/lib/bpf/bpf.c b/tools/lib/bpf/bpf.c
index 412a7c82995a..e5bbb090bf88 100644
--- a/tools/lib/bpf/bpf.c
+++ b/tools/lib/bpf/bpf.c
@@ -39,6 +39,8 @@
39# define __NR_bpf 280 39# define __NR_bpf 280
40# elif defined(__sparc__) 40# elif defined(__sparc__)
41# define __NR_bpf 349 41# define __NR_bpf 349
42# elif defined(__s390__)
43# define __NR_bpf 351
42# else 44# else
43# error __NR_bpf not defined. libbpf does not support your arch. 45# error __NR_bpf not defined. libbpf does not support your arch.
44# endif 46# endif
@@ -314,7 +316,6 @@ int bpf_obj_get_info_by_fd(int prog_fd, void *info, __u32 *info_len)
314 int err; 316 int err;
315 317
316 bzero(&attr, sizeof(attr)); 318 bzero(&attr, sizeof(attr));
317 bzero(info, *info_len);
318 attr.info.bpf_fd = prog_fd; 319 attr.info.bpf_fd = prog_fd;
319 attr.info.info_len = *info_len; 320 attr.info.info_len = *info_len;
320 attr.info.info = ptr_to_u64(info); 321 attr.info.info = ptr_to_u64(info);
diff --git a/tools/testing/selftests/bpf/test_pkt_md_access.c b/tools/testing/selftests/bpf/test_pkt_md_access.c
index 71729d47eb85..7956302ecdf2 100644
--- a/tools/testing/selftests/bpf/test_pkt_md_access.c
+++ b/tools/testing/selftests/bpf/test_pkt_md_access.c
@@ -12,12 +12,23 @@
12 12
13int _version SEC("version") = 1; 13int _version SEC("version") = 1;
14 14
15#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
15#define TEST_FIELD(TYPE, FIELD, MASK) \ 16#define TEST_FIELD(TYPE, FIELD, MASK) \
16 { \ 17 { \
17 TYPE tmp = *(volatile TYPE *)&skb->FIELD; \ 18 TYPE tmp = *(volatile TYPE *)&skb->FIELD; \
18 if (tmp != ((*(volatile __u32 *)&skb->FIELD) & MASK)) \ 19 if (tmp != ((*(volatile __u32 *)&skb->FIELD) & MASK)) \
19 return TC_ACT_SHOT; \ 20 return TC_ACT_SHOT; \
20 } 21 }
22#else
23#define TEST_FIELD_OFFSET(a, b) ((sizeof(a) - sizeof(b)) / sizeof(b))
24#define TEST_FIELD(TYPE, FIELD, MASK) \
25 { \
26 TYPE tmp = *((volatile TYPE *)&skb->FIELD + \
27 TEST_FIELD_OFFSET(skb->FIELD, TYPE)); \
28 if (tmp != ((*(volatile __u32 *)&skb->FIELD) & MASK)) \
29 return TC_ACT_SHOT; \
30 }
31#endif
21 32
22SEC("test1") 33SEC("test1")
23int process(struct __sk_buff *skb) 34int process(struct __sk_buff *skb)
diff --git a/tools/testing/selftests/bpf/test_progs.c b/tools/testing/selftests/bpf/test_progs.c
index 5855cd3d3d45..1f7dd35551b9 100644
--- a/tools/testing/selftests/bpf/test_progs.c
+++ b/tools/testing/selftests/bpf/test_progs.c
@@ -340,6 +340,7 @@ static void test_bpf_obj_id(void)
340 340
341 /* Check getting prog info */ 341 /* Check getting prog info */
342 info_len = sizeof(struct bpf_prog_info) * 2; 342 info_len = sizeof(struct bpf_prog_info) * 2;
343 bzero(&prog_infos[i], info_len);
343 prog_infos[i].jited_prog_insns = ptr_to_u64(jited_insns); 344 prog_infos[i].jited_prog_insns = ptr_to_u64(jited_insns);
344 prog_infos[i].jited_prog_len = sizeof(jited_insns); 345 prog_infos[i].jited_prog_len = sizeof(jited_insns);
345 prog_infos[i].xlated_prog_insns = ptr_to_u64(xlated_insns); 346 prog_infos[i].xlated_prog_insns = ptr_to_u64(xlated_insns);
@@ -369,6 +370,7 @@ static void test_bpf_obj_id(void)
369 370
370 /* Check getting map info */ 371 /* Check getting map info */
371 info_len = sizeof(struct bpf_map_info) * 2; 372 info_len = sizeof(struct bpf_map_info) * 2;
373 bzero(&map_infos[i], info_len);
372 err = bpf_obj_get_info_by_fd(map_fds[i], &map_infos[i], 374 err = bpf_obj_get_info_by_fd(map_fds[i], &map_infos[i],
373 &info_len); 375 &info_len);
374 if (CHECK(err || 376 if (CHECK(err ||
@@ -394,7 +396,7 @@ static void test_bpf_obj_id(void)
394 nr_id_found = 0; 396 nr_id_found = 0;
395 next_id = 0; 397 next_id = 0;
396 while (!bpf_prog_get_next_id(next_id, &next_id)) { 398 while (!bpf_prog_get_next_id(next_id, &next_id)) {
397 struct bpf_prog_info prog_info; 399 struct bpf_prog_info prog_info = {};
398 int prog_fd; 400 int prog_fd;
399 401
400 info_len = sizeof(prog_info); 402 info_len = sizeof(prog_info);
@@ -418,6 +420,8 @@ static void test_bpf_obj_id(void)
418 nr_id_found++; 420 nr_id_found++;
419 421
420 err = bpf_obj_get_info_by_fd(prog_fd, &prog_info, &info_len); 422 err = bpf_obj_get_info_by_fd(prog_fd, &prog_info, &info_len);
423 prog_infos[i].jited_prog_insns = 0;
424 prog_infos[i].xlated_prog_insns = 0;
421 CHECK(err || info_len != sizeof(struct bpf_prog_info) || 425 CHECK(err || info_len != sizeof(struct bpf_prog_info) ||
422 memcmp(&prog_info, &prog_infos[i], info_len), 426 memcmp(&prog_info, &prog_infos[i], info_len),
423 "get-prog-info(next_id->fd)", 427 "get-prog-info(next_id->fd)",
@@ -436,7 +440,7 @@ static void test_bpf_obj_id(void)
436 nr_id_found = 0; 440 nr_id_found = 0;
437 next_id = 0; 441 next_id = 0;
438 while (!bpf_map_get_next_id(next_id, &next_id)) { 442 while (!bpf_map_get_next_id(next_id, &next_id)) {
439 struct bpf_map_info map_info; 443 struct bpf_map_info map_info = {};
440 int map_fd; 444 int map_fd;
441 445
442 info_len = sizeof(map_info); 446 info_len = sizeof(map_info);
diff --git a/tools/testing/selftests/bpf/test_verifier.c b/tools/testing/selftests/bpf/test_verifier.c
index af7d173910f4..d3ed7324105e 100644
--- a/tools/testing/selftests/bpf/test_verifier.c
+++ b/tools/testing/selftests/bpf/test_verifier.c
@@ -8,6 +8,7 @@
8 * License as published by the Free Software Foundation. 8 * License as published by the Free Software Foundation.
9 */ 9 */
10 10
11#include <endian.h>
11#include <asm/types.h> 12#include <asm/types.h>
12#include <linux/types.h> 13#include <linux/types.h>
13#include <stdint.h> 14#include <stdint.h>
@@ -1098,7 +1099,7 @@ static struct bpf_test tests[] = {
1098 "check skb->hash byte load permitted", 1099 "check skb->hash byte load permitted",
1099 .insns = { 1100 .insns = {
1100 BPF_MOV64_IMM(BPF_REG_0, 0), 1101 BPF_MOV64_IMM(BPF_REG_0, 0),
1101#ifdef __LITTLE_ENDIAN 1102#if __BYTE_ORDER == __LITTLE_ENDIAN
1102 BPF_LDX_MEM(BPF_B, BPF_REG_0, BPF_REG_1, 1103 BPF_LDX_MEM(BPF_B, BPF_REG_0, BPF_REG_1,
1103 offsetof(struct __sk_buff, hash)), 1104 offsetof(struct __sk_buff, hash)),
1104#else 1105#else
@@ -1135,7 +1136,7 @@ static struct bpf_test tests[] = {
1135 "check skb->hash byte load not permitted 3", 1136 "check skb->hash byte load not permitted 3",
1136 .insns = { 1137 .insns = {
1137 BPF_MOV64_IMM(BPF_REG_0, 0), 1138 BPF_MOV64_IMM(BPF_REG_0, 0),
1138#ifdef __LITTLE_ENDIAN 1139#if __BYTE_ORDER == __LITTLE_ENDIAN
1139 BPF_LDX_MEM(BPF_B, BPF_REG_0, BPF_REG_1, 1140 BPF_LDX_MEM(BPF_B, BPF_REG_0, BPF_REG_1,
1140 offsetof(struct __sk_buff, hash) + 3), 1141 offsetof(struct __sk_buff, hash) + 3),
1141#else 1142#else
@@ -1244,7 +1245,7 @@ static struct bpf_test tests[] = {
1244 "check skb->hash half load permitted", 1245 "check skb->hash half load permitted",
1245 .insns = { 1246 .insns = {
1246 BPF_MOV64_IMM(BPF_REG_0, 0), 1247 BPF_MOV64_IMM(BPF_REG_0, 0),
1247#ifdef __LITTLE_ENDIAN 1248#if __BYTE_ORDER == __LITTLE_ENDIAN
1248 BPF_LDX_MEM(BPF_H, BPF_REG_0, BPF_REG_1, 1249 BPF_LDX_MEM(BPF_H, BPF_REG_0, BPF_REG_1,
1249 offsetof(struct __sk_buff, hash)), 1250 offsetof(struct __sk_buff, hash)),
1250#else 1251#else
@@ -1259,7 +1260,7 @@ static struct bpf_test tests[] = {
1259 "check skb->hash half load not permitted", 1260 "check skb->hash half load not permitted",
1260 .insns = { 1261 .insns = {
1261 BPF_MOV64_IMM(BPF_REG_0, 0), 1262 BPF_MOV64_IMM(BPF_REG_0, 0),
1262#ifdef __LITTLE_ENDIAN 1263#if __BYTE_ORDER == __LITTLE_ENDIAN
1263 BPF_LDX_MEM(BPF_H, BPF_REG_0, BPF_REG_1, 1264 BPF_LDX_MEM(BPF_H, BPF_REG_0, BPF_REG_1,
1264 offsetof(struct __sk_buff, hash) + 2), 1265 offsetof(struct __sk_buff, hash) + 2),
1265#else 1266#else
@@ -5422,7 +5423,7 @@ static struct bpf_test tests[] = {
5422 "check bpf_perf_event_data->sample_period byte load permitted", 5423 "check bpf_perf_event_data->sample_period byte load permitted",
5423 .insns = { 5424 .insns = {
5424 BPF_MOV64_IMM(BPF_REG_0, 0), 5425 BPF_MOV64_IMM(BPF_REG_0, 0),
5425#ifdef __LITTLE_ENDIAN 5426#if __BYTE_ORDER == __LITTLE_ENDIAN
5426 BPF_LDX_MEM(BPF_B, BPF_REG_0, BPF_REG_1, 5427 BPF_LDX_MEM(BPF_B, BPF_REG_0, BPF_REG_1,
5427 offsetof(struct bpf_perf_event_data, sample_period)), 5428 offsetof(struct bpf_perf_event_data, sample_period)),
5428#else 5429#else
@@ -5438,7 +5439,7 @@ static struct bpf_test tests[] = {
5438 "check bpf_perf_event_data->sample_period half load permitted", 5439 "check bpf_perf_event_data->sample_period half load permitted",
5439 .insns = { 5440 .insns = {
5440 BPF_MOV64_IMM(BPF_REG_0, 0), 5441 BPF_MOV64_IMM(BPF_REG_0, 0),
5441#ifdef __LITTLE_ENDIAN 5442#if __BYTE_ORDER == __LITTLE_ENDIAN
5442 BPF_LDX_MEM(BPF_H, BPF_REG_0, BPF_REG_1, 5443 BPF_LDX_MEM(BPF_H, BPF_REG_0, BPF_REG_1,
5443 offsetof(struct bpf_perf_event_data, sample_period)), 5444 offsetof(struct bpf_perf_event_data, sample_period)),
5444#else 5445#else
@@ -5454,7 +5455,7 @@ static struct bpf_test tests[] = {
5454 "check bpf_perf_event_data->sample_period word load permitted", 5455 "check bpf_perf_event_data->sample_period word load permitted",
5455 .insns = { 5456 .insns = {
5456 BPF_MOV64_IMM(BPF_REG_0, 0), 5457 BPF_MOV64_IMM(BPF_REG_0, 0),
5457#ifdef __LITTLE_ENDIAN 5458#if __BYTE_ORDER == __LITTLE_ENDIAN
5458 BPF_LDX_MEM(BPF_W, BPF_REG_0, BPF_REG_1, 5459 BPF_LDX_MEM(BPF_W, BPF_REG_0, BPF_REG_1,
5459 offsetof(struct bpf_perf_event_data, sample_period)), 5460 offsetof(struct bpf_perf_event_data, sample_period)),
5460#else 5461#else
@@ -5481,7 +5482,7 @@ static struct bpf_test tests[] = {
5481 "check skb->data half load not permitted", 5482 "check skb->data half load not permitted",
5482 .insns = { 5483 .insns = {
5483 BPF_MOV64_IMM(BPF_REG_0, 0), 5484 BPF_MOV64_IMM(BPF_REG_0, 0),
5484#ifdef __LITTLE_ENDIAN 5485#if __BYTE_ORDER == __LITTLE_ENDIAN
5485 BPF_LDX_MEM(BPF_H, BPF_REG_0, BPF_REG_1, 5486 BPF_LDX_MEM(BPF_H, BPF_REG_0, BPF_REG_1,
5486 offsetof(struct __sk_buff, data)), 5487 offsetof(struct __sk_buff, data)),
5487#else 5488#else
@@ -5497,7 +5498,7 @@ static struct bpf_test tests[] = {
5497 "check skb->tc_classid half load not permitted for lwt prog", 5498 "check skb->tc_classid half load not permitted for lwt prog",
5498 .insns = { 5499 .insns = {
5499 BPF_MOV64_IMM(BPF_REG_0, 0), 5500 BPF_MOV64_IMM(BPF_REG_0, 0),
5500#ifdef __LITTLE_ENDIAN 5501#if __BYTE_ORDER == __LITTLE_ENDIAN
5501 BPF_LDX_MEM(BPF_H, BPF_REG_0, BPF_REG_1, 5502 BPF_LDX_MEM(BPF_H, BPF_REG_0, BPF_REG_1,
5502 offsetof(struct __sk_buff, tc_classid)), 5503 offsetof(struct __sk_buff, tc_classid)),
5503#else 5504#else
@@ -5980,6 +5981,34 @@ static struct bpf_test tests[] = {
5980 .result = REJECT, 5981 .result = REJECT,
5981 .result_unpriv = REJECT, 5982 .result_unpriv = REJECT,
5982 }, 5983 },
5984 {
5985 "subtraction bounds (map value)",
5986 .insns = {
5987 BPF_ST_MEM(BPF_DW, BPF_REG_10, -8, 0),
5988 BPF_MOV64_REG(BPF_REG_2, BPF_REG_10),
5989 BPF_ALU64_IMM(BPF_ADD, BPF_REG_2, -8),
5990 BPF_LD_MAP_FD(BPF_REG_1, 0),
5991 BPF_RAW_INSN(BPF_JMP | BPF_CALL, 0, 0, 0,
5992 BPF_FUNC_map_lookup_elem),
5993 BPF_JMP_IMM(BPF_JEQ, BPF_REG_0, 0, 9),
5994 BPF_LDX_MEM(BPF_B, BPF_REG_1, BPF_REG_0, 0),
5995 BPF_JMP_IMM(BPF_JGT, BPF_REG_1, 0xff, 7),
5996 BPF_LDX_MEM(BPF_B, BPF_REG_3, BPF_REG_0, 1),
5997 BPF_JMP_IMM(BPF_JGT, BPF_REG_3, 0xff, 5),
5998 BPF_ALU64_REG(BPF_SUB, BPF_REG_1, BPF_REG_3),
5999 BPF_ALU64_IMM(BPF_RSH, BPF_REG_1, 56),
6000 BPF_ALU64_REG(BPF_ADD, BPF_REG_0, BPF_REG_1),
6001 BPF_LDX_MEM(BPF_B, BPF_REG_0, BPF_REG_0, 0),
6002 BPF_EXIT_INSN(),
6003 BPF_MOV64_IMM(BPF_REG_0, 0),
6004 BPF_EXIT_INSN(),
6005 },
6006 .fixup_map1 = { 3 },
6007 .errstr_unpriv = "R0 pointer arithmetic prohibited",
6008 .errstr = "R0 min value is negative, either use unsigned index or do a if (index >=0) check.",
6009 .result = REJECT,
6010 .result_unpriv = REJECT,
6011 },
5983}; 6012};
5984 6013
5985static int probe_filter_length(const struct bpf_insn *fp) 6014static int probe_filter_length(const struct bpf_insn *fp)
diff --git a/virt/kvm/arm/mmu.c b/virt/kvm/arm/mmu.c
index 0e1fc75f3585..2ea21dac0b44 100644
--- a/virt/kvm/arm/mmu.c
+++ b/virt/kvm/arm/mmu.c
@@ -1718,12 +1718,16 @@ static int kvm_test_age_hva_handler(struct kvm *kvm, gpa_t gpa, u64 size, void *
1718 1718
1719int kvm_age_hva(struct kvm *kvm, unsigned long start, unsigned long end) 1719int kvm_age_hva(struct kvm *kvm, unsigned long start, unsigned long end)
1720{ 1720{
1721 if (!kvm->arch.pgd)
1722 return 0;
1721 trace_kvm_age_hva(start, end); 1723 trace_kvm_age_hva(start, end);
1722 return handle_hva_to_gpa(kvm, start, end, kvm_age_hva_handler, NULL); 1724 return handle_hva_to_gpa(kvm, start, end, kvm_age_hva_handler, NULL);
1723} 1725}
1724 1726
1725int kvm_test_age_hva(struct kvm *kvm, unsigned long hva) 1727int kvm_test_age_hva(struct kvm *kvm, unsigned long hva)
1726{ 1728{
1729 if (!kvm->arch.pgd)
1730 return 0;
1727 trace_kvm_test_age_hva(hva); 1731 trace_kvm_test_age_hva(hva);
1728 return handle_hva_to_gpa(kvm, hva, hva, kvm_test_age_hva_handler, NULL); 1732 return handle_hva_to_gpa(kvm, hva, hva, kvm_test_age_hva_handler, NULL);
1729} 1733}
diff --git a/virt/kvm/arm/pmu.c b/virt/kvm/arm/pmu.c
index fc8a723ff387..8a9c42366db7 100644
--- a/virt/kvm/arm/pmu.c
+++ b/virt/kvm/arm/pmu.c
@@ -203,11 +203,15 @@ static u64 kvm_pmu_overflow_status(struct kvm_vcpu *vcpu)
203 return reg; 203 return reg;
204} 204}
205 205
206static void kvm_pmu_check_overflow(struct kvm_vcpu *vcpu) 206static void kvm_pmu_update_state(struct kvm_vcpu *vcpu)
207{ 207{
208 struct kvm_pmu *pmu = &vcpu->arch.pmu; 208 struct kvm_pmu *pmu = &vcpu->arch.pmu;
209 bool overflow = !!kvm_pmu_overflow_status(vcpu); 209 bool overflow;
210
211 if (!kvm_arm_pmu_v3_ready(vcpu))
212 return;
210 213
214 overflow = !!kvm_pmu_overflow_status(vcpu);
211 if (pmu->irq_level == overflow) 215 if (pmu->irq_level == overflow)
212 return; 216 return;
213 217
@@ -215,33 +219,11 @@ static void kvm_pmu_check_overflow(struct kvm_vcpu *vcpu)
215 219
216 if (likely(irqchip_in_kernel(vcpu->kvm))) { 220 if (likely(irqchip_in_kernel(vcpu->kvm))) {
217 int ret = kvm_vgic_inject_irq(vcpu->kvm, vcpu->vcpu_id, 221 int ret = kvm_vgic_inject_irq(vcpu->kvm, vcpu->vcpu_id,
218 pmu->irq_num, overflow, 222 pmu->irq_num, overflow, pmu);
219 &vcpu->arch.pmu);
220 WARN_ON(ret); 223 WARN_ON(ret);
221 } 224 }
222} 225}
223 226
224/**
225 * kvm_pmu_overflow_set - set PMU overflow interrupt
226 * @vcpu: The vcpu pointer
227 * @val: the value guest writes to PMOVSSET register
228 */
229void kvm_pmu_overflow_set(struct kvm_vcpu *vcpu, u64 val)
230{
231 if (val == 0)
232 return;
233
234 vcpu_sys_reg(vcpu, PMOVSSET_EL0) |= val;
235 kvm_pmu_check_overflow(vcpu);
236}
237
238static void kvm_pmu_update_state(struct kvm_vcpu *vcpu)
239{
240 if (!kvm_arm_pmu_v3_ready(vcpu))
241 return;
242 kvm_pmu_check_overflow(vcpu);
243}
244
245bool kvm_pmu_should_notify_user(struct kvm_vcpu *vcpu) 227bool kvm_pmu_should_notify_user(struct kvm_vcpu *vcpu)
246{ 228{
247 struct kvm_pmu *pmu = &vcpu->arch.pmu; 229 struct kvm_pmu *pmu = &vcpu->arch.pmu;
@@ -303,7 +285,7 @@ static inline struct kvm_vcpu *kvm_pmc_to_vcpu(struct kvm_pmc *pmc)
303} 285}
304 286
305/** 287/**
306 * When perf event overflows, call kvm_pmu_overflow_set to set overflow status. 288 * When the perf event overflows, set the overflow status and inform the vcpu.
307 */ 289 */
308static void kvm_pmu_perf_overflow(struct perf_event *perf_event, 290static void kvm_pmu_perf_overflow(struct perf_event *perf_event,
309 struct perf_sample_data *data, 291 struct perf_sample_data *data,
@@ -313,7 +295,12 @@ static void kvm_pmu_perf_overflow(struct perf_event *perf_event,
313 struct kvm_vcpu *vcpu = kvm_pmc_to_vcpu(pmc); 295 struct kvm_vcpu *vcpu = kvm_pmc_to_vcpu(pmc);
314 int idx = pmc->idx; 296 int idx = pmc->idx;
315 297
316 kvm_pmu_overflow_set(vcpu, BIT(idx)); 298 vcpu_sys_reg(vcpu, PMOVSSET_EL0) |= BIT(idx);
299
300 if (kvm_pmu_overflow_status(vcpu)) {
301 kvm_make_request(KVM_REQ_IRQ_PENDING, vcpu);
302 kvm_vcpu_kick(vcpu);
303 }
317} 304}
318 305
319/** 306/**
@@ -341,7 +328,7 @@ void kvm_pmu_software_increment(struct kvm_vcpu *vcpu, u64 val)
341 reg = lower_32_bits(reg); 328 reg = lower_32_bits(reg);
342 vcpu_sys_reg(vcpu, PMEVCNTR0_EL0 + i) = reg; 329 vcpu_sys_reg(vcpu, PMEVCNTR0_EL0 + i) = reg;
343 if (!reg) 330 if (!reg)
344 kvm_pmu_overflow_set(vcpu, BIT(i)); 331 vcpu_sys_reg(vcpu, PMOVSSET_EL0) |= BIT(i);
345 } 332 }
346 } 333 }
347} 334}
diff --git a/virt/kvm/arm/vgic/vgic-init.c b/virt/kvm/arm/vgic/vgic-init.c
index 3a0b8999f011..5801261f3add 100644
--- a/virt/kvm/arm/vgic/vgic-init.c
+++ b/virt/kvm/arm/vgic/vgic-init.c
@@ -285,9 +285,6 @@ int vgic_init(struct kvm *kvm)
285 if (ret) 285 if (ret)
286 goto out; 286 goto out;
287 287
288 if (vgic_has_its(kvm))
289 dist->msis_require_devid = true;
290
291 kvm_for_each_vcpu(i, vcpu, kvm) 288 kvm_for_each_vcpu(i, vcpu, kvm)
292 kvm_vgic_vcpu_enable(vcpu); 289 kvm_vgic_vcpu_enable(vcpu);
293 290
diff --git a/virt/kvm/arm/vgic/vgic-its.c b/virt/kvm/arm/vgic/vgic-its.c
index 2dff288b3a66..aa6b68db80b4 100644
--- a/virt/kvm/arm/vgic/vgic-its.c
+++ b/virt/kvm/arm/vgic/vgic-its.c
@@ -1598,6 +1598,7 @@ static int vgic_its_create(struct kvm_device *dev, u32 type)
1598 INIT_LIST_HEAD(&its->device_list); 1598 INIT_LIST_HEAD(&its->device_list);
1599 INIT_LIST_HEAD(&its->collection_list); 1599 INIT_LIST_HEAD(&its->collection_list);
1600 1600
1601 dev->kvm->arch.vgic.msis_require_devid = true;
1601 dev->kvm->arch.vgic.has_its = true; 1602 dev->kvm->arch.vgic.has_its = true;
1602 its->enabled = false; 1603 its->enabled = false;
1603 its->dev = dev; 1604 its->dev = dev;
diff --git a/virt/kvm/arm/vgic/vgic-mmio-v3.c b/virt/kvm/arm/vgic/vgic-mmio-v3.c
index 714fa3933546..408ef06638fc 100644
--- a/virt/kvm/arm/vgic/vgic-mmio-v3.c
+++ b/virt/kvm/arm/vgic/vgic-mmio-v3.c
@@ -369,7 +369,7 @@ static void vgic_mmio_write_propbase(struct kvm_vcpu *vcpu,
369 return; 369 return;
370 370
371 do { 371 do {
372 old_propbaser = dist->propbaser; 372 old_propbaser = READ_ONCE(dist->propbaser);
373 propbaser = old_propbaser; 373 propbaser = old_propbaser;
374 propbaser = update_64bit_reg(propbaser, addr & 4, len, val); 374 propbaser = update_64bit_reg(propbaser, addr & 4, len, val);
375 propbaser = vgic_sanitise_propbaser(propbaser); 375 propbaser = vgic_sanitise_propbaser(propbaser);
@@ -397,7 +397,7 @@ static void vgic_mmio_write_pendbase(struct kvm_vcpu *vcpu,
397 return; 397 return;
398 398
399 do { 399 do {
400 old_pendbaser = vgic_cpu->pendbaser; 400 old_pendbaser = READ_ONCE(vgic_cpu->pendbaser);
401 pendbaser = old_pendbaser; 401 pendbaser = old_pendbaser;
402 pendbaser = update_64bit_reg(pendbaser, addr & 4, len, val); 402 pendbaser = update_64bit_reg(pendbaser, addr & 4, len, val);
403 pendbaser = vgic_sanitise_pendbaser(pendbaser); 403 pendbaser = vgic_sanitise_pendbaser(pendbaser);
diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 82987d457b8b..15252d723b54 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -717,10 +717,9 @@ out_err_no_srcu:
717 hardware_disable_all(); 717 hardware_disable_all();
718out_err_no_disable: 718out_err_no_disable:
719 for (i = 0; i < KVM_NR_BUSES; i++) 719 for (i = 0; i < KVM_NR_BUSES; i++)
720 kfree(rcu_access_pointer(kvm->buses[i])); 720 kfree(kvm_get_bus(kvm, i));
721 for (i = 0; i < KVM_ADDRESS_SPACE_NUM; i++) 721 for (i = 0; i < KVM_ADDRESS_SPACE_NUM; i++)
722 kvm_free_memslots(kvm, 722 kvm_free_memslots(kvm, __kvm_memslots(kvm, i));
723 rcu_dereference_protected(kvm->memslots[i], 1));
724 kvm_arch_free_vm(kvm); 723 kvm_arch_free_vm(kvm);
725 mmdrop(current->mm); 724 mmdrop(current->mm);
726 return ERR_PTR(r); 725 return ERR_PTR(r);
@@ -754,9 +753,8 @@ static void kvm_destroy_vm(struct kvm *kvm)
754 spin_unlock(&kvm_lock); 753 spin_unlock(&kvm_lock);
755 kvm_free_irq_routing(kvm); 754 kvm_free_irq_routing(kvm);
756 for (i = 0; i < KVM_NR_BUSES; i++) { 755 for (i = 0; i < KVM_NR_BUSES; i++) {
757 struct kvm_io_bus *bus; 756 struct kvm_io_bus *bus = kvm_get_bus(kvm, i);
758 757
759 bus = rcu_dereference_protected(kvm->buses[i], 1);
760 if (bus) 758 if (bus)
761 kvm_io_bus_destroy(bus); 759 kvm_io_bus_destroy(bus);
762 kvm->buses[i] = NULL; 760 kvm->buses[i] = NULL;
@@ -770,8 +768,7 @@ static void kvm_destroy_vm(struct kvm *kvm)
770 kvm_arch_destroy_vm(kvm); 768 kvm_arch_destroy_vm(kvm);
771 kvm_destroy_devices(kvm); 769 kvm_destroy_devices(kvm);
772 for (i = 0; i < KVM_ADDRESS_SPACE_NUM; i++) 770 for (i = 0; i < KVM_ADDRESS_SPACE_NUM; i++)
773 kvm_free_memslots(kvm, 771 kvm_free_memslots(kvm, __kvm_memslots(kvm, i));
774 rcu_dereference_protected(kvm->memslots[i], 1));
775 cleanup_srcu_struct(&kvm->irq_srcu); 772 cleanup_srcu_struct(&kvm->irq_srcu);
776 cleanup_srcu_struct(&kvm->srcu); 773 cleanup_srcu_struct(&kvm->srcu);
777 kvm_arch_free_vm(kvm); 774 kvm_arch_free_vm(kvm);
@@ -3883,7 +3880,6 @@ static const struct file_operations *stat_fops[] = {
3883static void kvm_uevent_notify_change(unsigned int type, struct kvm *kvm) 3880static void kvm_uevent_notify_change(unsigned int type, struct kvm *kvm)
3884{ 3881{
3885 struct kobj_uevent_env *env; 3882 struct kobj_uevent_env *env;
3886 char *tmp, *pathbuf = NULL;
3887 unsigned long long created, active; 3883 unsigned long long created, active;
3888 3884
3889 if (!kvm_dev.this_device || !kvm) 3885 if (!kvm_dev.this_device || !kvm)
@@ -3907,38 +3903,28 @@ static void kvm_uevent_notify_change(unsigned int type, struct kvm *kvm)
3907 add_uevent_var(env, "CREATED=%llu", created); 3903 add_uevent_var(env, "CREATED=%llu", created);
3908 add_uevent_var(env, "COUNT=%llu", active); 3904 add_uevent_var(env, "COUNT=%llu", active);
3909 3905
3910 if (type == KVM_EVENT_CREATE_VM) 3906 if (type == KVM_EVENT_CREATE_VM) {
3911 add_uevent_var(env, "EVENT=create"); 3907 add_uevent_var(env, "EVENT=create");
3912 else if (type == KVM_EVENT_DESTROY_VM) 3908 kvm->userspace_pid = task_pid_nr(current);
3909 } else if (type == KVM_EVENT_DESTROY_VM) {
3913 add_uevent_var(env, "EVENT=destroy"); 3910 add_uevent_var(env, "EVENT=destroy");
3911 }
3912 add_uevent_var(env, "PID=%d", kvm->userspace_pid);
3914 3913
3915 if (kvm->debugfs_dentry) { 3914 if (kvm->debugfs_dentry) {
3916 char p[ITOA_MAX_LEN]; 3915 char *tmp, *p = kmalloc(PATH_MAX, GFP_KERNEL);
3917 3916
3918 snprintf(p, sizeof(p), "%s", kvm->debugfs_dentry->d_name.name); 3917 if (p) {
3919 tmp = strchrnul(p + 1, '-'); 3918 tmp = dentry_path_raw(kvm->debugfs_dentry, p, PATH_MAX);
3920 *tmp = '\0'; 3919 if (!IS_ERR(tmp))
3921 add_uevent_var(env, "PID=%s", p); 3920 add_uevent_var(env, "STATS_PATH=%s", tmp);
3922 pathbuf = kmalloc(PATH_MAX, GFP_KERNEL); 3921 kfree(p);
3923 if (pathbuf) {
3924 /* sizeof counts the final '\0' */
3925 int len = sizeof("STATS_PATH=") - 1;
3926 const char *pvar = "STATS_PATH=";
3927
3928 tmp = dentry_path_raw(kvm->debugfs_dentry,
3929 pathbuf + len,
3930 PATH_MAX - len);
3931 if (!IS_ERR(tmp)) {
3932 memcpy(tmp - len, pvar, len);
3933 env->envp[env->envp_idx++] = tmp - len;
3934 }
3935 } 3922 }
3936 } 3923 }
3937 /* no need for checks, since we are adding at most only 5 keys */ 3924 /* no need for checks, since we are adding at most only 5 keys */
3938 env->envp[env->envp_idx++] = NULL; 3925 env->envp[env->envp_idx++] = NULL;
3939 kobject_uevent_env(&kvm_dev.this_device->kobj, KOBJ_CHANGE, env->envp); 3926 kobject_uevent_env(&kvm_dev.this_device->kobj, KOBJ_CHANGE, env->envp);
3940 kfree(env); 3927 kfree(env);
3941 kfree(pathbuf);
3942} 3928}
3943 3929
3944static int kvm_init_debug(void) 3930static int kvm_init_debug(void)