diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
new file mode 100644
index 0000000000..98fd20cc34
--- /dev/null
+++ b/.github/workflows/maven.yml
@@ -0,0 +1,27 @@
+# This workflow will build a Java project with Maven, and cache/restore any dependencies to improve the workflow execution time
+# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven
+
+name: Java CI with Maven
+
+on:
+ push:
+ branches: [ "master" ]
+
+jobs:
+ build:
+
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v3
+ - name: Set up JDK 11
+ uses: actions/setup-java@v3
+ with:
+ java-version: '11'
+ distribution: 'temurin'
+ cache: maven
+ - name: Build with Maven
+ run: mvn -Dmaven.test.skip=true -B package source:jar deploy --file pom.xml -s mvn_settings.xml -DS_NUTZMAVEN_USER_ID=${{secrets.S_NUTZMAVEN_USER_ID}} -DS_NUTZMAVEN_USER_PWD=${{secrets.S_NUTZMAVEN_USER_PWD}}
+ env:
+ S_NUTZMAVEN_USER_ID : ${{secrets.S_NUTZMAVEN_USER_ID}}
+ S_NUTZMAVEN_USER_PWD : ${{secrets.S_NUTZMAVEN_USER_PWD}}
diff --git a/.gitignore b/.gitignore
index 387cca4572..7de83eb13b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -22,4 +22,6 @@
/build/libs
.gradle
local.properties
-/mysrc
\ No newline at end of file
+/mysrc
+*.iml
+/local_conf
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index e46598991e..0000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-sudo: false
-language: java
-script: mvn clean source:jar cobertura:cobertura package
-jdk:
- - oraclejdk8
-# whitelist
-branches:
- only:
- - master
- - coverity_scan
-before_script:
- - psql -c 'create database nutztest;' -U postgres
- - cp ./tools/travis-ci/nutz-test.properties ./test/
- - cp ./tools/travis-ci/log4j.properties ./test/
-notifications:
- email: false
-before_install:
- - export TZ=Asia/Shanghai
-env:
- global:
- # The next declaration is the encrypted COVERITY_SCAN_TOKEN, created
- # via the "travis encrypt" command using the project repo's public key
- - secure: "E1z+6z9M4iTdAXZ2a1rYSrxfIOq6PkdXEMutAbIn/bp1e/Qvb5IVoAS0heo7SPwcIlHlN8mDiOtKdzbcu9q8VaftfHwFjff6AoKyuWtfDqE1ecTfflebWwzmtXKJmT5uxBPvu442dS4sIc2zx3zjvnxMsSmvrdSwbMxwdbAKvDc="
- - SONATYPE_USERNAME=wendal
- - secure : "BaXmGpodQiuU23YgtUThWCHf7Vig2Gv3UfpBjo3FATgn1LRF3i2IOgY5sCSi+XJYqx+05fVNdwVYccxS/9UfhPNSqQuslIwgmg0y9f26DYaX2gaW+jk8padhZRkeBrY3fO+g9nQuu+Epgqi0ITru6+IjH932O0m1JR7iJu2RNhs="
-after_success:
- - bash <(curl -s https://codecov.io/bash)
- - python mvn_settings.py
-addons:
- postgresql: "9.3"
- coverity_scan:
- project:
- name: "nutzam/nutz"
- notification_email: wendal1985@gmail.com
- build_command_prepend: "mvn clean"
- build_command: "mvn -DskipTests=true compile"
- branch_pattern: coverity_scan
diff --git a/License.txt b/License.txt
index 7f110e1a28..d26637e7a0 100644
--- a/License.txt
+++ b/License.txt
@@ -187,7 +187,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.
- Copyright [2009-2016] [Nutz]
+ Copyright [2009-2021] [Nutz]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
diff --git a/README.md b/README.md
index 46ff9e4e06..ae65899518 100644
--- a/README.md
+++ b/README.md
@@ -1,14 +1,8 @@

-[](https://travis-ci.org/nutzam/nutz)
-[](https://circleci.com/gh/nutzam/nutz/tree/master)
-[](https://scan.coverity.com/projects/4917/)
[](https://maven-badges.herokuapp.com/maven-central/org.nutz/nutz/)
-[](http://codecov.io/github/nutzam/nutz?branch=master)
-[](https://github.com/nutzam/nutz/releases)
[](https://www.apache.org/licenses/LICENSE-2.0.html)
-[](https://github.com/OpenSkywalking/skywalking)
## 项目目标
@@ -18,16 +12,22 @@
Nutz遵循Apache协议,完全开源,文档齐全,永远免费(商用也是)
+完整的Mvc,Ioc,Dao,Aop, 快速开发Web/桌面/嵌入式应用,无强制依赖
+
## 项目各种资源地址
* [项目官网](https://nutzam.com)
* [Nutz社区](https://nutz.cn/) 秒回, 就是这么爽
+* [NutzBoot](https://nutz.io) 可靠的企业级微服务框架,提供自动配置,嵌入式web服务,分布式会话,RPC等一篮子解决方案
* 在线文档
* [官网](https://nutzam.com/core/nutz_preface.html) Nutz手册,涵盖方方面面
* [w3cschool上的文档](http://www.w3cschool.cn/nutz/) [由vincent109维护](https://github.com/vincent109)
+ * [github pages](https://nutzam.github.io/nutz/) github 的 pages
* [各种插件](http://github.com/nutzam/nutzmore) 您能想到的都有哦(基本上`^_^`)
* [好玩的Nutzbook](http://nutzbook.wendal.net) 几分钟搭建一个demo有何不可? 入门从这里开始
* [在线javadoc](https://nutzam.com/javadoc/) 注释就是这么全
+* [NutzWk](https://github.com/Wizzercn/NutzWk) 基于Nutz的Java开源企业级开发框架
+* [Idea插件](https://github.com/threefish/NutzCodeInsight) idea 插件
## Nutz生态系统
@@ -39,33 +39,22 @@ Nutz遵循Apache协议,完全开源,文档齐全,永远免费(商用也是)
org.nutz
nutz
- 1.r.62
+ 1.r.69.v20220703
```
+详情: [https://nutzam.com/core/basic/maven.html](https://nutzam.com/core/basic/maven.html)
-详情: https://nutzam.com/core/basic/maven.html
-
-## Gradle 依赖
-
-```gradle
-compile(group: 'org.nutz', name: 'nutz', version:'1.r.62')
-```
-
-
-## Sponsorship
-YourKit supports open source projects with its full-featured Java Profiler.
-YourKit, LLC is the creator of [YourKit Java Profiler](http://www.yourkit.com/java/profiler/index.jsp)
-and [YourKit .NET Profiler](http://www.yourkit.com/.net/profiler/index.jsp),
-innovative and intelligent tools for profiling Java and .NET applications.
+## 关于我们
-
+广州市文尔软件科技有限公司
-JetBrains IntelliJ IDEA
+## Contributors
-http://www.jetbrains.com
+This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].
+
-## 关于我们
+## Stargazers over time
-广州市文尔软件科技有限公司
+[](https://starchart.cc/nutzam/nutz)
diff --git a/_build.gradle b/_build.gradle
deleted file mode 100644
index 1c58cae1fb..0000000000
--- a/_build.gradle
+++ /dev/null
@@ -1,218 +0,0 @@
-apply plugin: 'java'
-apply plugin: 'maven'
-apply plugin: 'maven-publish'
-apply plugin: 'signing'
-
-group = 'org.nutz'
-version = '1.r.60'
-
-ext.isReleaseVersion = !version.endsWith("SNAPSHOT")
-
-description = "Nutz"
-
-sourceCompatibility = 1.6
-targetCompatibility = 1.6
-
-repositories {
- mavenCentral()
-}
-
-dependencies {
- testCompile group: 'junit', name: 'junit', version:'4.8.2'
- testCompile group: 'com.h2database', name: 'h2', version:'1.4.181'
- testCompile group: 'org.eclipse.jetty', name: 'jetty-server', version:'7.6.18.v20150929'
- testCompile group: 'org.eclipse.jetty', name: 'jetty-jsp', version:'7.6.18.v20150929'
- testCompile group: 'org.postgresql', name: 'postgresql', version:'9.4-1206-jdbc41'
- testCompile group: 'mysql', name: 'mysql-connector-java', version:'5.1.40'
- testCompile group: 'org.xerial', name: 'sqlite-jdbc', version:'3.8.11.2'
- testCompile(group: 'com.alibaba', name: 'druid', version:'1.0.26') {
- exclude(module: 'jconsole')
- exclude(module: 'tools')
- }
- testCompile group: 'org.eclipse.jetty.aggregate', name: 'jetty-all', version:'9.2.20.v20161216'
- testCompile group: 'org.eclipse.jetty', name: 'jetty-jsp', version:'9.2.19.v20160908'
- compile(group: 'log4j', name: 'log4j', version:'1.2.17')
- compile(group: 'javax.servlet', name: 'java.servlet-api', version:'3.1.0')
-}
-
-sourceSets {
- main{
- java.srcDir "$projectDir/src"
- }
- test {
- java.srcDirs "$projectDir/test"
- resources.srcDir "$projectDir/test-prop"
- }
-}
-tasks.withType(JavaCompile) {
- options.encoding = "UTF-8"
- options.compilerArgs = ["-parameters"]
-}
-
-javadoc.options.encoding = "UTF-8"
-if (JavaVersion.current().isJava8Compatible()) {
- allprojects {
- tasks.withType(Javadoc) {
- options.addStringOption('Xdoclint:none', '-quiet')
- }
- }
-}
-
-task sourcesJar(type: Jar, dependsOn: classes) {
- classifier = 'sources'
- from sourceSets.main.allSource
-}
-
-task javadocJar(type: Jar, dependsOn: javadoc) {
- classifier = 'javadoc'
- from javadoc.destinationDir
-}
-
-
-task androidJar(type: Jar, dependsOn: classes) {
- classifier = 'android'
- from sourceSets.main.output
- exclude('org/nutz/repo/org/**')
- exclude('org/nutz/dao/**')
- exclude('org/nutz/trans/**')
- exclude('org/nutz/service/**')
- exclude('org/nutz/img/**')
-}
-
-task jsonJar(type: Jar, dependsOn: classes) {
- classifier = 'json'
- from sourceSets.main.output
- exclude('org/nutz/repo/org/**')
- exclude('org/nutz/dao/**')
- exclude('org/nutz/trans/**')
- exclude('org/nutz/service/**')
- exclude('org/nutz/img/**')
- exclude('org/nutz/ioc/**')
- exclude('org/nutz/mvc/**')
- exclude('org/nutz/aop/**')
- exclude('org/nutz/http/**')
- exclude('org/nutz/net/**')
- exclude('org/nutz/el/**')
- exclude('org/nutz/repo/**')
- exclude('org/nutz/filepool/**')
- exclude('org/nutz/runner/**')
- exclude('org/nutz/resource/**')
- exclude('org/nutz/conf/**')
- exclude('*.xsd')
-}
-
-artifacts {
- archives jar
- archives sourcesJar
- archives javadocJar
- archives androidJar
-// archives jsonJar
-}
-
-processResources {
- from ('src'){
- exclude '**/*.java';
- }
-}
-processTestResources {
- from ('test'){
- exclude '**/*.java';
- }
-}
-test {
- include "org/nutz/TestAll"
- jvmArgs "-Dfile.encoding=utf-8"
- //showStackTraces = true
- testLogging {
- debug {
- events "started", "skipped", "failed"
- exceptionFormat "full"
- }
- }
-}
-
-
-def Properties properties = new Properties()
-properties.load(project.rootProject.file('local.properties').newDataInputStream())
-
-//if (isReleaseVersion) {
- ext."signing.keyId"=properties["signing.keyId"]
- ext."signing.password"=properties["signing.password"]
- ext."signing.secretKeyRingFile"=properties["signing.secretKeyRingFile"]
- ext."ossrhUsername"=properties["ossrhUsername"]
- ext."ossrhPassword"=properties["ossrhPassword"]
-//}
-
-
-uploadArchives {
- repositories {
- mavenDeployer {
- beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) }
-
- repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
- authentication(userName: ossrhUsername, password: ossrhPassword)
- }
-
- snapshotRepository(url: "https://oss.sonatype.org/content/repositories/snapshots/") {
- authentication(userName: ossrhUsername, password: ossrhPassword)
- }
- pom.project {
- name 'Nutz'
- packaging 'jar'
- description 'Nutz, which is a collections of lightweight frameworks, each of them can be used independently'
- url 'https://nutz.cn'
-
- scm {
- connection 'scm:git:git://github.com/nutzam/nutz.git'
- developerConnection 'scm:git:git://github.com/nutzam/nutz.git'
- url 'git://github.com/nutzam/nutz.git'
- }
-
- licenses {
- license {
- name 'The Apache License, Version 2.0'
- url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
- }
- }
-
- developers {
- developer {
- id 'zozoh'
- name 'zozoh'
- email 'zozohtnt@gmail.com'
- }
- developer {
- id 'wendal'
- name 'Wendal Chen'
- email 'wendal1985@gmail.com'
- url "http://wendal.net"
- }
- }
- }
- }
- }
-}
-
-signing {
- required { isReleaseVersion && gradle.taskGraph.hasTask("uploadArchives") }
- sign configurations.archives
-}
-
-
-def installer = install.repositories.mavenInstaller
-def deployer = uploadArchives.repositories.mavenDeployer
-
-//[installer, deployer]*.pom*.whenConfigured {pom ->
-// pom.dependencies.find {dep -> dep.groupId != '' }.provided = true
-//}
-
-deployer.pom.whenConfigured {pom ->
- pom.dependencies.find {dep -> dep.scope == "compile" || dep.version == "2.5" }.each {dep -> dep.scope = "provided"}
- pom.dependencies.find {dep -> dep.scope == "compile"}.each{dep-> println dep.scope }
- pom.dependencies.find {dep -> dep.scope == "compile"}.each {dep -> dep.scope = "provided"}
- pom.dependencies.find {dep -> dep.scope == "compile"}.each{dep-> println dep.scope }
-}
-installer.pom.whenConfigured {pom ->
- pom.dependencies.find {dep -> dep.scope != "test" }.each {dep -> dep.scope = "provided"}
- pom.dependencies.each{dep-> println dep.scope }
-}
diff --git a/_gradlew b/_gradlew
deleted file mode 100644
index 9aa616c273..0000000000
--- a/_gradlew
+++ /dev/null
@@ -1,169 +0,0 @@
-#!/usr/bin/env bash
-
-##############################################################################
-##
-## Gradle start up script for UN*X
-##
-##############################################################################
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
- echo "$*"
-}
-
-die ( ) {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-nonstop=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
- NONSTOP* )
- nonstop=true
- ;;
-esac
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- if [ ! -x "$JAVACMD" ] ; then
- die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
- fi
-else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
- JAVACMD=`cygpath --unix "$JAVACMD"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
- # Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
- fi
- i=$((i+1))
- done
- case $i in
- (0) set -- ;;
- (1) set -- "$args0" ;;
- (2) set -- "$args0" "$args1" ;;
- (3) set -- "$args0" "$args1" "$args2" ;;
- (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
-fi
-
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
- JVM_OPTS=("$@")
-}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
-
-# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
-if [[ "$(uname)" == "Darwin" ]] && [[ "$HOME" == "$PWD" ]]; then
- cd "$(dirname "$0")"
-fi
-
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/build/build2.xml b/build/build2.xml
index c2462064af..dc7c229883 100644
--- a/build/build2.xml
+++ b/build/build2.xml
@@ -34,7 +34,7 @@
-
+
diff --git a/build/java-build b/build/java-build
old mode 100644
new mode 100755
diff --git a/circle.yml b/circle.yml
deleted file mode 100644
index 13060889e9..0000000000
--- a/circle.yml
+++ /dev/null
@@ -1,22 +0,0 @@
-machine:
- timezone: Asia/Shanghai
- java:
- version: oraclejdk8
-
-general:
- branches:
- only:
- - master
-
-dependencies:
- override:
- - cp ./tools/travis-ci/nutz-test.properties ./test/
- - cp ./tools/travis-ci/log4j.properties ./test/
-
-database:
- override:
- - psql -c 'create database nutztest;' -U ubuntu
-test:
- post:
- - mkdir -p $CIRCLE_TEST_REPORTS/junit/
- - find . -type f -regex ".*/target/surefire-reports/.*xml" -exec cp {} $CIRCLE_TEST_REPORTS/junit/ \;
diff --git a/demo/nutzdemo/pom.xml b/demo/nutzdemo/pom.xml
index b813c168d4..a9109bf60e 100644
--- a/demo/nutzdemo/pom.xml
+++ b/demo/nutzdemo/pom.xml
@@ -14,7 +14,7 @@
junit
junit
- 4.12
+ 4.13.1
test
diff --git a/demo/nutzdemo/src/main/webapp/WEB-INF/web.xml b/demo/nutzdemo/src/main/webapp/WEB-INF/web.xml
index e9b5125dc9..e6ead89bb4 100644
--- a/demo/nutzdemo/src/main/webapp/WEB-INF/web.xml
+++ b/demo/nutzdemo/src/main/webapp/WEB-INF/web.xml
@@ -6,7 +6,7 @@
dummy
- Nutz Web Demo
+ NutzWebDemo
nutz
org.nutz.mvc.NutFilter
diff --git a/doc/ci/logo.ai b/doc/ci/logo.ai
new file mode 100644
index 0000000000..05fb5f2b28
--- /dev/null
+++ b/doc/ci/logo.ai
@@ -0,0 +1,661 @@
+%PDF-1.5
%
+1 0 obj
<>/OCGs[5 0 R 6 0 R 40 0 R 41 0 R 77 0 R 78 0 R 127 0 R 160 0 R 193 0 R 194 0 R 229 0 R 230 0 R 265 0 R 266 0 R]>>/Pages 3 0 R/Type/Catalog>>
endobj
2 0 obj
<>stream
+
+
+
+
+ application/pdf
+ Adobe Illustrator CC 22.0 (Macintosh)
+ 2017-12-13T00:30:52+08:00
+ 2018-03-02T01:30:37+08:00
+ 2018-03-02T01:30:37+08:00
+
+
+
+ 232
+ 256
+ JPEG
+ /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAADoAwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9Befda1TSrC3ksJBEZZC
kjlQxHw1FOVR49sy9JijMm3G1OSUQKeaXes6tdkm5vJpa9mdiv0LWgzaRxxHIOulkkeZQeTYIm21
LUbUg211LCR09N2X9RyMoRPMMhMjkWRaX+Y2uWpC3fG9hHXmOD09mUfrBzFyaKB5bORDVyHPdneh
+atI1heNvJ6dxSrW0lFf6OzD5Zr8unlDnyc7HmjPknGUtrsVdirsVdiriQBU7AdTiqCn1vRrckT3
1vGw/ZaVAfurXLBikeQLA5IjmQg385eWENDqEZ/1QzfqByY02TuYfmId6j/j3yn/AMt3/JKb/mjJ
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
+
+
+
+ xmp.did:cc904e27-b1e9-4a82-85b6-1dec225b3b18
+ uuid:48076d9b-88a3-e040-acba-5e72522feb27
+ uuid:8DA34F1C6409DD11A85196CD1A741DD0
+ proof:pdf
+
+ xmp.iid:828A06EB12B7DF11BCB1D5A43C1C7911
+ uuid:8DA34F1C6409DD11A85196CD1A741DD0
+ uuid:8DA34F1C6409DD11A85196CD1A741DD0
+
+
+
+
+ saved
+ xmp.iid:A2A3E3F70DB7DF11BCB1D5A43C1C7911
+ 2010-09-03T11:47:26+08:00
+ Adobe Photoshop CS4 Windows
+ /
+
+
+ converted
+ from image/jpeg to application/vnd.adobe.photoshop
+
+
+ derived
+ converted from image/jpeg to application/vnd.adobe.photoshop
+
+
+ saved
+ xmp.iid:A3A3E3F70DB7DF11BCB1D5A43C1C7911
+ 2010-09-03T11:47:26+08:00
+ Adobe Photoshop CS4 Windows
+ /
+
+
+ saved
+ xmp.iid:cc904e27-b1e9-4a82-85b6-1dec225b3b18
+ 2017-12-13T00:30:54+08:00
+ Adobe Illustrator CC 22.0 (Macintosh)
+ /
+
+
+
+ 3
+ sRGB IEC61966-2.1
+ False
+ 1
+ 720000/10000
+ 720000/10000
+ 2
+ 1
+ 256
+ 256
+ 1
+ True
+ False
+
+ 256.000000
+ 256.000000
+ Points
+
+
+
+ Cyan
+ Magenta
+ Yellow
+ Black
+
+
+
+
+
+ 默认色板组
+ 0
+
+
+
+ Document
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
endstream
endobj
3 0 obj
<>
endobj
8 0 obj
<>/Resources<>/ExtGState<>/Properties<>/XObject<>>>/Thumb 275 0 R/TrimBox[0.0 0.0 256.0 256.0]/Type/Page>>
endobj
268 0 obj
<>stream
+HnEoq
D FV Hޟvqw}IRm\Rw?Ͽ~zL=/wRϒwsYkv5#YnΙ'wNך8ke=B{$sM'WolxʾLliw3X%o1IFcE$NY>#qkepa,,ɢ<§