Compare commits
115 Commits
1.7.1-0.92
...
developmen
| Author | SHA1 | Date | |
|---|---|---|---|
| 5594a4a4a9 | |||
| 9ae3a3f374 | |||
| 64dbb93260 | |||
| 015a64039d | |||
| 7afd1c87f6 | |||
| 27b3f59031 | |||
| a1b9721772 | |||
| 69187ea0fd | |||
| 0353fc1a0a | |||
| 1a71203872 | |||
| 03d99a0ed1 | |||
| 8fb42631f2 | |||
| ba04c8a7b9 | |||
| 1bb8dcef05 | |||
| ceb55d53b1 | |||
| 002f36c7f5 | |||
| 90c1ceef45 | |||
| 4f1b505550 | |||
| 051c0dcdd8 | |||
| 09173d353c | |||
| d5c5023bf8 | |||
| e3493bd0be | |||
| 44261678f7 | |||
| 6e4a29a422 | |||
| 2039139380 | |||
| c80b112ce7 | |||
| 4a05024656 | |||
| 7a04c6eb5c | |||
| 3e00189de0 | |||
| c94cf8e6f0 | |||
| ee974b200d | |||
| 546cafe6bc | |||
| 9dd4d99a1a | |||
| 3a6273777a | |||
| daed585347 | |||
| 11d7229525 | |||
| e43d52df20 | |||
| 1c0da3c5b9 | |||
| 3084db8b26 | |||
| cba263ff12 | |||
| 43a6f0d41d | |||
| c80ea0ed23 | |||
| 73d028de77 | |||
| d812e4dedb | |||
| b8cc962843 | |||
| c593faea89 | |||
| 7d69f15101 | |||
| 687eae3a11 | |||
| eba2131f34 | |||
| 1070387ed2 | |||
| eca107f52d | |||
| 71c333965c | |||
| 5664f54390 | |||
| 720b0c06d8 | |||
| e6ec52dfbd | |||
| b380f0790d | |||
| 47aec70f5f | |||
| d2db639853 | |||
| 3aaa5350f0 | |||
| 865eb37b11 | |||
| 5dd989450d | |||
| 4ac9dcdccd | |||
| 63443383e9 | |||
| 4d1d53b335 | |||
| 422a399f20 | |||
| 7efb394905 | |||
| 9c7d0cfaec | |||
| baa7a6adcb | |||
| 86e12fa90c | |||
| ae9827f628 | |||
| 79b590d732 | |||
| 1bfa339ccf | |||
| c55a02ffba | |||
| dd7b7dbd0e | |||
| 2585c8afaa | |||
| 82056961cd | |||
| 0848b64c1d | |||
| 8a9b43fee0 | |||
| 19cb302d5f | |||
| 90895cfb1f | |||
| 32afa80718 | |||
| e3927a0b95 | |||
| adc5b7102f | |||
| 5d16ce9dcc | |||
| a9973e913d | |||
| 35296c8210 | |||
| afea6af667 | |||
| b0bd1feefb | |||
| e6e66e0392 | |||
| b3ddd60277 | |||
| 6dce9a2bf9 | |||
| 93dafc5f79 | |||
| 583319125a | |||
| 9f39d1cd88 | |||
| a0d446b27f | |||
| f3c875b8e6 | |||
| 9f1e6d707c | |||
| aef50d710c | |||
| 7f0594d784 | |||
| 866f5c51a0 | |||
| 48b1d548f2 | |||
| 822b64b03c | |||
| aca83bcd3d | |||
| c7145c4b38 | |||
| a82d161be8 | |||
| 7152269a59 | |||
| 31c08bcb7d | |||
| dffb0918a2 | |||
| 23cd14af7d | |||
| a5cf2019bc | |||
| 11b9fe0377 | |||
| 4905c8e638 | |||
| 3d71c6a8eb | |||
| 1cea75dd51 | |||
| 661ba0ce4a |
8
.gitmodules
vendored
8
.gitmodules
vendored
@ -1,6 +1,12 @@
|
||||
[submodule "ihk"]
|
||||
path = ihk
|
||||
url = https://github.com/RIKEN-SysSoft/ihk.git
|
||||
url = https://github.com/ihkmckernel/ihk.git
|
||||
[submodule "executer/user/lib/libdwarf/libdwarf"]
|
||||
path = executer/user/lib/libdwarf/libdwarf
|
||||
url = https://github.com/bgerofi/libdwarf.git
|
||||
[submodule "executer/user/lib/syscall_intercept"]
|
||||
path = executer/user/lib/syscall_intercept
|
||||
url = https://github.com/ihkmckernel/syscall_intercept.git
|
||||
[submodule "executer/user/lib/uti"]
|
||||
path = executer/user/lib/uti
|
||||
url = https://github.com/ihkmckernel/uti.git
|
||||
|
||||
@ -7,10 +7,10 @@ endif (NOT CMAKE_BUILD_TYPE)
|
||||
enable_language(C ASM)
|
||||
|
||||
project(mckernel C ASM)
|
||||
set(MCKERNEL_VERSION "1.7.1")
|
||||
set(MCKERNEL_VERSION "1.8.0")
|
||||
|
||||
# See "Fedora Packaging Guidelines -- Versioning"
|
||||
set(MCKERNEL_RELEASE "0.92")
|
||||
set(MCKERNEL_RELEASE "")
|
||||
|
||||
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
|
||||
# for rpmbuild
|
||||
@ -41,6 +41,11 @@ if(IMPLICIT_FALLTHROUGH)
|
||||
set(EXTRA_WARNINGS "-Wno-implicit-fallthrough")
|
||||
endif(IMPLICIT_FALLTHROUGH)
|
||||
|
||||
CHECK_C_COMPILER_FLAG(-Wno-stringop-truncation STRINGOP_TRUNCATION)
|
||||
if(STRINGOP_TRUNCATION)
|
||||
list(APPEND EXTRA_WARNINGS "-Wno-stringop-truncation")
|
||||
endif(STRINGOP_TRUNCATION)
|
||||
|
||||
# build options
|
||||
set(CFLAGS_WARNING "-Wall" "-Wextra" "-Wno-unused-parameter" "-Wno-sign-compare" "-Wno-unused-function" ${EXTRA_WARNINGS} CACHE STRING "Warning flags")
|
||||
add_compile_options(${CFLAGS_WARNING})
|
||||
@ -65,7 +70,7 @@ if(ENABLE_TOFU)
|
||||
endif()
|
||||
|
||||
# when compiling on a compute-node
|
||||
execute_process(COMMAND bash -c "grep $(hostname) /etc/opt/FJSVfefs/config/fefs_node1.csv 2>/dev/null | cut -d, -f2"
|
||||
execute_process(COMMAND bash -c "grep $(hostname) /etc/opt/FJSVfefs/config/fefs_node1.csv 2>/dev/null | cut -d, -f2 | grep -o CN"
|
||||
OUTPUT_VARIABLE FUGAKU_NODE_TYPE OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
if(FUGAKU_NODE_TYPE STREQUAL "CN")
|
||||
option(ENABLE_FUGAKU_HACKS "Fugaku hacks" ON)
|
||||
@ -78,15 +83,40 @@ if(ENABLE_FUGAKU_HACKS)
|
||||
set(KBUILD_C_FLAGS "${KBUILD_C_FLAGS} -DENABLE_FUGAKU_HACKS")
|
||||
endif()
|
||||
|
||||
# Fujitsu MPI tries to xpmem-attach segment with size of range size + 1?
|
||||
#set(FJMPI_VERSION_COMMAND "a=\$(which mpifcc); b=\${a%/*/*}; c=\${b##*/}; d=\${c#*-}; echo \$d")
|
||||
set(FJMPI_VERSION_COMMAND "a=\$(which mpifort); b=\${a%/*/*}; c=\${b##*/}; d=\${c#*-}; echo \$d")
|
||||
execute_process(COMMAND bash -c "${FJMPI_VERSION_COMMAND}"
|
||||
OUTPUT_VARIABLE FJMPI_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
message("FJMPI_VERSION: ${FJMPI_VERSION}")
|
||||
|
||||
if(NOT "${FJMPI_VERSION}" STREQUAL "")
|
||||
option(ENABLE_FJMPI_WORKAROUND "Fujitsu MPI workaround" ON)
|
||||
else()
|
||||
option(ENABLE_FJMPI_WORKAROUND "Fujitsu MPI workaround" OFF)
|
||||
endif()
|
||||
|
||||
if(ENABLE_FJMPI_WORKAROUND)
|
||||
add_definitions(-DENABLE_FJMPI_WORKAROUND)
|
||||
set(KBUILD_C_FLAGS "${KBUILD_C_FLAGS} -DENABLE_FJMPI_WORKAROUND")
|
||||
endif()
|
||||
|
||||
# krm that mandates reserved memory amount >= available at boot time?
|
||||
execute_process(COMMAND bash -c "rpm -qi FJSVpxkrm-plugin-mckernel | awk '$1 == \"Version\" && $2 == \":\" { print $3 }'"
|
||||
OUTPUT_VARIABLE KRM_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
message("KRM_VERSION: ${KRM_VERSION}")
|
||||
|
||||
if(NOT "${KRM_VERSION}" STREQUAL "" AND "${KRM_VERSION}" VERSION_LESS_EQUAL 4.0.1)
|
||||
option(ENABLE_KRM_WORKAROUND "krm workaround" ON)
|
||||
else()
|
||||
execute_process(COMMAND bash -c "rpm -qi FJSVpxkrm-plugin-mckernel | awk '$1 == \"Release\" && $2 == \":\" { print $3 }'"
|
||||
OUTPUT_VARIABLE KRM_RELEASE OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
message("KRM_RELEASE: ${KRM_RELEASE}")
|
||||
|
||||
if("${KRM_VERSION}" STREQUAL "")
|
||||
option(ENABLE_KRM_WORKAROUND "krm workaround" OFF)
|
||||
elseif("${KRM_VERSION}" VERSION_GREATER_EQUAL 4.0.2 OR
|
||||
("${KRM_VERSION}" VERSION_EQUAL 4.0.1 AND "${KRM_RELEASE}" VERSION_GREATER_EQUAL 25.13.1.0))
|
||||
option(ENABLE_KRM_WORKAROUND "krm workaround" OFF)
|
||||
else()
|
||||
option(ENABLE_KRM_WORKAROUND "krm workaround" ON)
|
||||
endif()
|
||||
|
||||
if(ENABLE_KRM_WORKAROUND)
|
||||
@ -102,6 +132,14 @@ if(ENABLE_FUGAKU_DEBUG)
|
||||
set(KBUILD_C_FLAGS "${KBUILD_C_FLAGS} -DENABLE_FUGAKU_DEBUG")
|
||||
endif()
|
||||
|
||||
# redirect kernel messages to Linux's /dev/kmsg
|
||||
option(ENABLE_KMSG_REDIRECT "Redirect kernel message to Linux's /dev/kmsg" OFF)
|
||||
|
||||
if(ENABLE_KMSG_REDIRECT)
|
||||
add_definitions(-DENABLE_KMSG_REDIRECT)
|
||||
set(KBUILD_C_FLAGS "${KBUILD_C_FLAGS} -DENABLE_KMSG_REDIRECT")
|
||||
endif()
|
||||
|
||||
option(PROFILE_ENABLE "System call profile" ON)
|
||||
if(PROFILE_ENABLE)
|
||||
add_definitions(-DPROFILE_ENABLE)
|
||||
@ -115,10 +153,9 @@ if (ENABLE_LINUX_WORK_IRQ_FOR_IKC)
|
||||
endif()
|
||||
|
||||
if (BUILD_TARGET STREQUAL "smp-arm64")
|
||||
foreach(i RANGE 1 120)
|
||||
add_definitions(-DPOSTK_DEBUG_ARCH_DEP_${i} -DPOSTK_DEBUG_TEMP_FIX_${i})
|
||||
set(KBUILD_C_FLAGS "${KBUILD_C_FLAGS} -DPOSTK_DEBUG_ARCH_DEP_${i} -DPOSTK_DEBUG_TEMP_FIX_${i}")
|
||||
endforeach()
|
||||
set(POSTK_DEBUG_DEFINES "-DPOSTK_DEBUG_ARCH_DEP_100 -DPOSTK_DEBUG_ARCH_DEP_42 -DPOSTK_DEBUG_TEMP_FIX_29 -DPOSTK_DEBUG_TEMP_FIX_49")
|
||||
add_definitions("${POSTK_DEBUG_DEFINES}")
|
||||
set(KBUILD_C_FLAGS "${KBUILD_C_FLAGS} ${POSTK_DEBUG_DEFINES}")
|
||||
|
||||
execute_process(COMMAND awk -F= "$1 == \"CONFIG_ARM64_64K_PAGES\" { print $2; exit; }" "${KERNEL_DIR}/.config"
|
||||
OUTPUT_VARIABLE CONFIG_ARM64_64K_PAGES OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
@ -155,6 +192,7 @@ file(REMOVE_RECURSE ${tmpdir})
|
||||
file(MAKE_DIRECTORY ${tmpdir})
|
||||
file(WRITE ${tmpdir}/driver.c "#include <linux/module.h>\n")
|
||||
file(APPEND ${tmpdir}/driver.c "unsigned long MAP_KERNEL_START = MODULES_END - (1UL << 23);\n")
|
||||
file(APPEND ${tmpdir}/driver.c "MODULE_LICENSE(\"GPL\");\n")
|
||||
file(WRITE ${tmpdir}/Makefile "obj-m := driver.o\n")
|
||||
file(APPEND ${tmpdir}/Makefile "all:\n")
|
||||
file(APPEND ${tmpdir}/Makefile "\tmake ${KBUILD_MAKE_FLAGS_STR} -C ${KERNEL_DIR} M=${tmpdir} modules\n")
|
||||
@ -213,11 +251,6 @@ if (ENABLE_QLMPI)
|
||||
find_package(MPI REQUIRED)
|
||||
endif()
|
||||
|
||||
if (ENABLE_UTI)
|
||||
pkg_check_modules(LIBSYSCALL_INTERCEPT REQUIRED libsyscall_intercept)
|
||||
link_directories(${LIBSYSCALL_INTERCEPT_LIBRARY_DIRS})
|
||||
endif()
|
||||
|
||||
string(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)(-([0-9]+)(.*))?" "\\1;\\2;\\3;\\5;\\6" LINUX_VERSION ${UNAME_R})
|
||||
list(GET LINUX_VERSION 0 LINUX_VERSION_MAJOR)
|
||||
list(GET LINUX_VERSION 1 LINUX_VERSION_MINOR)
|
||||
@ -228,6 +261,7 @@ math(EXPR LINUX_VERSION_CODE "${LINUX_VERSION_MAJOR} * 65536 + ${LINUX_VERSION_M
|
||||
# compat with various install paths
|
||||
set(BINDIR ${CMAKE_INSTALL_FULL_BINDIR})
|
||||
set(SBINDIR ${CMAKE_INSTALL_FULL_SBINDIR})
|
||||
set(LIBDIR ${CMAKE_INSTALL_FULL_LIBDIR})
|
||||
set(ETCDIR ${CMAKE_INSTALL_PREFIX}/etc)
|
||||
set(ROOTFSDIR "/rootfs")
|
||||
if (CMAKE_INSTALL_PREFIX STREQUAL "/usr")
|
||||
@ -244,11 +278,11 @@ set(CMAKE_INSTALL_RPATH ${CMAKE_INSTALL_FULL_LIBDIR})
|
||||
|
||||
# ihk: ultimately should support extrnal build, but add as subproject for now
|
||||
if (EXISTS ${PROJECT_SOURCE_DIR}/ihk/CMakeLists.txt)
|
||||
set(IHK_SOURCE_DIR "ihk" CACHE STRINGS "path to ihk source directory from mckernel sources")
|
||||
set(IHK_SOURCE_DIR "ihk" CACHE STRING "path to ihk source directory from mckernel sources")
|
||||
elseif (EXISTS ${PROJECT_SOURCE_DIR}/../ihk/CMakeLists.txt)
|
||||
set(IHK_SOURCE_DIR "../ihk" CACHE STRINGS "path to ihk source directory from mckernel sources")
|
||||
set(IHK_SOURCE_DIR "../ihk" CACHE STRING "path to ihk source directory from mckernel sources")
|
||||
else()
|
||||
set(IHK_SOURCE_DIR "ihk" CACHE STRINGS "path to ihk source directory from mckernel sources")
|
||||
set(IHK_SOURCE_DIR "ihk" CACHE STRING "path to ihk source directory from mckernel sources")
|
||||
endif()
|
||||
if (EXISTS ${PROJECT_SOURCE_DIR}/${IHK_SOURCE_DIR}/CMakeLists.txt)
|
||||
set(IHK_FULL_SOURCE_DIR ${PROJECT_SOURCE_DIR}/${IHK_SOURCE_DIR})
|
||||
@ -314,6 +348,7 @@ message("ENABLE_TOFU: ${ENABLE_TOFU}")
|
||||
message("ENABLE_FUGAKU_HACKS: ${ENABLE_FUGAKU_HACKS}")
|
||||
message("ENABLE_FUGAKU_DEBUG: ${ENABLE_FUGAKU_DEBUG}")
|
||||
message("ENABLE_KRM_WORKAROUND: ${ENABLE_KRM_WORKAROUND}")
|
||||
message("ENABLE_FJMPI_WORKAROUND: ${ENABLE_FJMPI_WORKAROUND}")
|
||||
message("PROFILE_ENABLE: ${PROFILE_ENABLE}")
|
||||
message("ENABLE_RUSAGE: ${ENABLE_RUSAGE}")
|
||||
message("ENABLE_QLMPI: ${ENABLE_QLMPI}")
|
||||
@ -322,4 +357,5 @@ message("ENABLE_WERROR: ${ENABLE_WERROR}")
|
||||
message("ENABLE_UBSAN: ${ENABLE_UBSAN}")
|
||||
message("ENABLE_LINUX_WORK_IRQ_FOR_IKC: ${ENABLE_LINUX_WORK_IRQ_FOR_IKC}")
|
||||
message("ENABLE_PER_CPU_ALLOC_CACHE: ${ENABLE_PER_CPU_ALLOC_CACHE}")
|
||||
message("ENABLE_KMSG_REDIRECT: ${ENABLE_KMSG_REDIRECT}")
|
||||
message("-------------------------------")
|
||||
|
||||
@ -912,7 +912,6 @@ unsigned long cpu_enable_interrupt_save(void)
|
||||
return flags;
|
||||
}
|
||||
|
||||
#ifdef ENABLE_FUGAKU_HACKS
|
||||
int cpu_interrupt_disabled(void)
|
||||
{
|
||||
unsigned long flags;
|
||||
@ -925,7 +924,6 @@ int cpu_interrupt_disabled(void)
|
||||
: "memory");
|
||||
return (flags == masked);
|
||||
}
|
||||
#endif
|
||||
|
||||
#else /* defined(CONFIG_HAS_NMI) */
|
||||
|
||||
@ -989,6 +987,18 @@ unsigned long cpu_enable_interrupt_save(void)
|
||||
: "memory");
|
||||
return flags;
|
||||
}
|
||||
|
||||
int cpu_interrupt_disabled(void)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
asm volatile(
|
||||
"mrs %0, daif // arch_local_irq_save\n"
|
||||
: "=r" (flags)
|
||||
:
|
||||
: "memory");
|
||||
return !!(flags & 0x2);
|
||||
}
|
||||
#endif /* defined(CONFIG_HAS_NMI) */
|
||||
|
||||
/* we not have "pause" instruction, instead "yield" instruction */
|
||||
@ -1524,6 +1534,11 @@ int ihk_mc_arch_get_special_register(enum ihk_asr_type type,
|
||||
return -1;
|
||||
}
|
||||
|
||||
int ihk_mc_get_interrupt_id(int cpu)
|
||||
{
|
||||
return cpu;
|
||||
}
|
||||
|
||||
/*@
|
||||
@ requires \valid_cpuid(cpu); // valid CPU logical ID
|
||||
@ ensures \result == 0
|
||||
@ -1972,15 +1987,15 @@ int arch_cpu_read_write_register(
|
||||
return ret;
|
||||
}
|
||||
|
||||
int smp_call_func(cpu_set_t *__cpu_set, smp_func_t __func, void *__arg)
|
||||
{
|
||||
/* TODO: skeleton for smp_call_func */
|
||||
return -1;
|
||||
}
|
||||
|
||||
void arch_flush_icache_all(void)
|
||||
{
|
||||
asm("ic ialluis");
|
||||
dsb(ish);
|
||||
}
|
||||
|
||||
int ihk_mc_get_smp_handler_irq(void)
|
||||
{
|
||||
return LOCAL_SMP_FUNC_CALL_VECTOR;
|
||||
}
|
||||
|
||||
/*** end of file ***/
|
||||
|
||||
@ -89,9 +89,6 @@
|
||||
mov x2, #0
|
||||
bl check_signal_irq_disabled // check whether the signal is delivered(for kernel_exit)
|
||||
.endif
|
||||
.if \el == 1
|
||||
bl check_sig_pending
|
||||
.endif
|
||||
disable_irq x1 // disable interrupts
|
||||
.if \need_enable_step == 1
|
||||
ldr x1, [tsk, #TI_FLAGS]
|
||||
|
||||
@ -7,7 +7,8 @@
|
||||
* @ref.impl
|
||||
* linux-linaro/arch/arm64/include/asm/futex.h:__futex_atomic_op
|
||||
*/
|
||||
#define __futex_atomic_op(insn, ret, oldval, uaddr, tmp, oparg) \
|
||||
#define ___futex_atomic_op(insn, ret, oldval, uaddr, tmp, oparg) \
|
||||
do { \
|
||||
asm volatile( \
|
||||
"1: ldxr %w1, %2\n" \
|
||||
insn "\n" \
|
||||
@ -26,7 +27,24 @@
|
||||
" .popsection\n" \
|
||||
: "=&r" (ret), "=&r" (oldval), "+Q" (*uaddr), "=&r" (tmp) \
|
||||
: "r" (oparg), "Ir" (-EFAULT) \
|
||||
: "memory")
|
||||
: "memory"); \
|
||||
} while (0);
|
||||
|
||||
#ifndef IHK_OS_MANYCORE
|
||||
#include <linux/uaccess.h>
|
||||
|
||||
#define __futex_atomic_op(insn, ret, oldval, uaddr, tmp, oparg) \
|
||||
do { \
|
||||
uaccess_enable(); \
|
||||
___futex_atomic_op(insn, ret, oldval, uaddr, tmp, oparg) \
|
||||
uaccess_disable(); \
|
||||
} while (0);
|
||||
|
||||
#else
|
||||
#define __futex_atomic_op(insn, ret, oldval, uaddr, tmp, oparg) \
|
||||
___futex_atomic_op(insn, ret, oldval, uaddr, tmp, oparg) \
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
* @ref.impl
|
||||
@ -135,12 +153,4 @@ futex_atomic_cmpxchg_inatomic(int __user *uaddr, int oldval, int newval)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline int get_futex_value_locked(uint32_t *dest, uint32_t *from)
|
||||
{
|
||||
|
||||
*dest = *(volatile uint32_t *)from;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* !__HEADER_ARM64_COMMON_ARCH_FUTEX_H */
|
||||
|
||||
@ -783,32 +783,8 @@ static inline pte_t *get_contiguous_tail(pte_t *__ptep, size_t __pgsize)
|
||||
return (pte_t *)__page_align_up(__ptep + 1, align) - 1;
|
||||
}
|
||||
|
||||
static inline int split_contiguous_pages(pte_t *ptep, size_t pgsize)
|
||||
{
|
||||
int ret;
|
||||
pte_t *head = get_contiguous_head(ptep, pgsize);
|
||||
pte_t *tail = get_contiguous_tail(ptep, pgsize);
|
||||
pte_t *ptr;
|
||||
|
||||
uintptr_t phys;
|
||||
struct page *page;
|
||||
|
||||
phys = pte_get_phys(head);
|
||||
page = phys_to_page(phys);
|
||||
if (page && (page_is_in_memobj(page)
|
||||
|| page_is_multi_mapped(page))) {
|
||||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
for (ptr = head; ptr <= tail; ptr++) {
|
||||
*ptr &= ~PTE_CONT;
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
int split_contiguous_pages(pte_t *ptep, size_t pgsize,
|
||||
uint32_t memobj_flags);
|
||||
|
||||
static inline int page_is_contiguous_head(pte_t *ptep, size_t pgsize)
|
||||
{
|
||||
|
||||
@ -17,6 +17,7 @@
|
||||
#define INTRID_STACK_TRACE 5
|
||||
#define INTRID_MULTI_INTR 6
|
||||
#define INTRID_MULTI_NMI 7
|
||||
#define LOCAL_SMP_FUNC_CALL_VECTOR 1 /* same as IKC */
|
||||
|
||||
/* use PPI interrupt number */
|
||||
#define INTRID_PERF_OVF 23
|
||||
|
||||
@ -344,10 +344,13 @@ void handle_interrupt_gicv3(struct pt_regs *regs)
|
||||
|
||||
//irqflags = ihk_mc_spinlock_lock(&v->runq_lock);
|
||||
/* For migration by IPI or by timesharing */
|
||||
if (v->flags &
|
||||
(CPU_FLAG_NEED_MIGRATE | CPU_FLAG_NEED_RESCHED)) {
|
||||
v->flags &= ~CPU_FLAG_NEED_RESCHED;
|
||||
do_check = 1;
|
||||
if (v->flags & CPU_FLAG_NEED_RESCHED) {
|
||||
if (v->flags & CPU_FLAG_NEED_MIGRATE && !from_user) {
|
||||
// Don't migrate on K2K schedule
|
||||
} else {
|
||||
v->flags &= ~CPU_FLAG_NEED_RESCHED;
|
||||
do_check = 1;
|
||||
}
|
||||
}
|
||||
//ihk_mc_spinlock_unlock(&v->runq_lock, irqflags);
|
||||
|
||||
|
||||
@ -2654,7 +2654,8 @@ static int clear_range(struct page_table *pt, struct process_vm *vm,
|
||||
if (ptep && pte_is_contiguous(ptep)) {
|
||||
if (!page_is_contiguous_head(ptep, pgsize)) {
|
||||
// start pte is not contiguous head
|
||||
error = split_contiguous_pages(ptep, pgsize);
|
||||
error = split_contiguous_pages(ptep, pgsize,
|
||||
memobj ? memobj->flags : 0);
|
||||
if (error) {
|
||||
return error;
|
||||
}
|
||||
@ -2666,7 +2667,8 @@ static int clear_range(struct page_table *pt, struct process_vm *vm,
|
||||
if (ptep && pte_is_contiguous(ptep)) {
|
||||
if (!page_is_contiguous_tail(ptep, pgsize)) {
|
||||
// end pte is not contiguous tail
|
||||
error = split_contiguous_pages(ptep, pgsize);
|
||||
error = split_contiguous_pages(ptep, pgsize,
|
||||
memobj ? memobj->flags : 0);
|
||||
if (error) {
|
||||
return error;
|
||||
}
|
||||
@ -3287,7 +3289,8 @@ out:
|
||||
return error;
|
||||
}
|
||||
|
||||
int ihk_mc_pt_split(page_table_t pt, struct process_vm *vm, void *addr)
|
||||
int ihk_mc_pt_split(page_table_t pt, struct process_vm *vm,
|
||||
struct vm_range *range, void *addr)
|
||||
{
|
||||
int error;
|
||||
pte_t *ptep;
|
||||
@ -3309,7 +3312,9 @@ retry:
|
||||
if (ptep && !ptl_null(ptep, level) && (pgaddr != addr)) {
|
||||
page = NULL;
|
||||
if (ptl_is_contiguous(ptep, level)) {
|
||||
error = split_contiguous_pages(ptep, pgsize);
|
||||
error = split_contiguous_pages(ptep, pgsize,
|
||||
range->memobj ?
|
||||
range->memobj->flags : 0);
|
||||
if (error) {
|
||||
goto out;
|
||||
}
|
||||
@ -3320,8 +3325,8 @@ retry:
|
||||
phys = ptl_phys(ptep, level);
|
||||
page = phys_to_page(phys);
|
||||
}
|
||||
if (page && (page_is_in_memobj(page)
|
||||
|| page_is_multi_mapped(page))) {
|
||||
if (!is_splitable(page, range->memobj ?
|
||||
range->memobj->flags : 0)) {
|
||||
error = -EINVAL;
|
||||
kprintf("ihk_mc_pt_split:NYI:page break down\n");
|
||||
goto out;
|
||||
@ -3494,7 +3499,9 @@ int move_pte_range(page_table_t pt, struct process_vm *vm,
|
||||
if (ptep && pte_is_contiguous(ptep)) {
|
||||
if (!page_is_contiguous_head(ptep, pgsize)) {
|
||||
// start pte is not contiguous head
|
||||
error = split_contiguous_pages(ptep, pgsize);
|
||||
error = split_contiguous_pages(ptep, pgsize,
|
||||
range->memobj ?
|
||||
range->memobj->flags : 0);
|
||||
if (error) {
|
||||
goto out;
|
||||
}
|
||||
@ -3505,7 +3512,9 @@ int move_pte_range(page_table_t pt, struct process_vm *vm,
|
||||
if (ptep && pte_is_contiguous(ptep)) {
|
||||
if (!page_is_contiguous_tail(ptep, pgsize)) {
|
||||
// end pte is not contiguous tail
|
||||
error = split_contiguous_pages(ptep, pgsize);
|
||||
error = split_contiguous_pages(ptep, pgsize,
|
||||
range->memobj ?
|
||||
range->memobj->flags : 0);
|
||||
if (error) {
|
||||
goto out;
|
||||
}
|
||||
@ -4110,3 +4119,30 @@ void arch_adjust_allocate_page_size(struct page_table *pt,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int split_contiguous_pages(pte_t *ptep, size_t pgsize,
|
||||
uint32_t memobj_flags)
|
||||
{
|
||||
int ret;
|
||||
pte_t *head = get_contiguous_head(ptep, pgsize);
|
||||
pte_t *tail = get_contiguous_tail(ptep, pgsize);
|
||||
pte_t *ptr;
|
||||
|
||||
uintptr_t phys;
|
||||
struct page *page;
|
||||
|
||||
phys = pte_get_phys(head);
|
||||
page = phys_to_page(phys);
|
||||
if (!is_splitable(page, memobj_flags)) {
|
||||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
||||
for (ptr = head; ptr <= tail; ptr++) {
|
||||
*ptr &= ~PTE_CONT;
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
out:
|
||||
return ret;
|
||||
}
|
||||
|
||||
@ -15,7 +15,9 @@
|
||||
#include <limits.h>
|
||||
#include <uio.h>
|
||||
#include <syscall.h>
|
||||
#include <bitops.h>
|
||||
#include <rusage_private.h>
|
||||
#include <memory.h>
|
||||
#include <ihk/debug.h>
|
||||
|
||||
void terminate_mcexec(int, int);
|
||||
@ -1806,7 +1808,7 @@ SYSCALL_DECLARE(mmap)
|
||||
goto out;
|
||||
}
|
||||
|
||||
addr = do_mmap(addr, len, prot, flags, fd, off0);
|
||||
addr = do_mmap(addr, len, prot, flags, fd, off0, 0, NULL);
|
||||
|
||||
error = 0;
|
||||
out:
|
||||
@ -2250,8 +2252,10 @@ int move_pages_smp_handler(int cpu_index, int nr_cpus, void *arg)
|
||||
case 0:
|
||||
memcpy(mpsr->virt_addr, mpsr->user_virt_addr,
|
||||
sizeof(void *) * count);
|
||||
memcpy(mpsr->nodes, mpsr->user_nodes,
|
||||
sizeof(int) * count);
|
||||
if (mpsr->user_nodes) {
|
||||
memcpy(mpsr->nodes, mpsr->user_nodes,
|
||||
sizeof(int) * count);
|
||||
}
|
||||
memset(mpsr->ptep, 0, sizeof(pte_t) * count);
|
||||
memset(mpsr->status, 0, sizeof(int) * count);
|
||||
memset(mpsr->nr_pages, 0, sizeof(int) * count);
|
||||
@ -2269,8 +2273,10 @@ int move_pages_smp_handler(int cpu_index, int nr_cpus, void *arg)
|
||||
case 0:
|
||||
memcpy(mpsr->virt_addr, mpsr->user_virt_addr,
|
||||
sizeof(void *) * count);
|
||||
memcpy(mpsr->nodes, mpsr->user_nodes,
|
||||
sizeof(int) * count);
|
||||
if (mpsr->user_nodes) {
|
||||
memcpy(mpsr->nodes, mpsr->user_nodes,
|
||||
sizeof(int) * count);
|
||||
}
|
||||
mpsr->nodes_ready = 1;
|
||||
break;
|
||||
case 1:
|
||||
@ -2292,8 +2298,10 @@ int move_pages_smp_handler(int cpu_index, int nr_cpus, void *arg)
|
||||
sizeof(void *) * count);
|
||||
break;
|
||||
case 1:
|
||||
memcpy(mpsr->nodes, mpsr->user_nodes,
|
||||
sizeof(int) * count);
|
||||
if (mpsr->user_nodes) {
|
||||
memcpy(mpsr->nodes, mpsr->user_nodes,
|
||||
sizeof(int) * count);
|
||||
}
|
||||
mpsr->nodes_ready = 1;
|
||||
break;
|
||||
case 2:
|
||||
@ -2322,8 +2330,10 @@ int move_pages_smp_handler(int cpu_index, int nr_cpus, void *arg)
|
||||
sizeof(void *) * (count / 2));
|
||||
break;
|
||||
case 2:
|
||||
memcpy(mpsr->nodes, mpsr->user_nodes,
|
||||
sizeof(int) * count);
|
||||
if (mpsr->user_nodes) {
|
||||
memcpy(mpsr->nodes, mpsr->user_nodes,
|
||||
sizeof(int) * count);
|
||||
}
|
||||
mpsr->nodes_ready = 1;
|
||||
break;
|
||||
case 3:
|
||||
@ -2349,13 +2359,15 @@ int move_pages_smp_handler(int cpu_index, int nr_cpus, void *arg)
|
||||
}
|
||||
|
||||
/* NUMA verification in parallel */
|
||||
for (i = i_s; i < i_e; i++) {
|
||||
if (mpsr->nodes[i] < 0 ||
|
||||
mpsr->nodes[i] >= ihk_mc_get_nr_numa_nodes() ||
|
||||
!test_bit(mpsr->nodes[i],
|
||||
mpsr->proc->vm->numa_mask)) {
|
||||
mpsr->phase_ret = -EINVAL;
|
||||
break;
|
||||
if (mpsr->user_nodes) {
|
||||
for (i = i_s; i < i_e; i++) {
|
||||
if (mpsr->nodes[i] < 0 ||
|
||||
mpsr->nodes[i] >= ihk_mc_get_nr_numa_nodes() ||
|
||||
!test_bit(mpsr->nodes[i],
|
||||
mpsr->proc->vm->numa_mask)) {
|
||||
mpsr->phase_ret = -EINVAL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2387,7 +2399,7 @@ int move_pages_smp_handler(int cpu_index, int nr_cpus, void *arg)
|
||||
|
||||
/* PTE valid? */
|
||||
if (!mpsr->ptep[i] || !pte_is_present(mpsr->ptep[i])) {
|
||||
mpsr->status[i] = -ENOENT;
|
||||
mpsr->status[i] = -EFAULT;
|
||||
mpsr->ptep[i] = NULL;
|
||||
continue;
|
||||
}
|
||||
@ -2451,6 +2463,26 @@ pte_out:
|
||||
dkprintf("%s: phase %d done\n", __FUNCTION__, phase);
|
||||
++phase;
|
||||
|
||||
/*
|
||||
* When nodes array is NULL, move_pages doesn't move any pages,
|
||||
* instead will return the node where each page
|
||||
* currently resides by status array.
|
||||
*/
|
||||
if (!mpsr->user_nodes) {
|
||||
/* get nid in parallel */
|
||||
for (i = i_s; i < i_e; i++) {
|
||||
if (mpsr->status[i] < 0) {
|
||||
continue;
|
||||
}
|
||||
mpsr->status[i] = phys_to_nid(
|
||||
pte_get_phys(mpsr->ptep[i]));
|
||||
}
|
||||
mpsr->phase_ret = 0;
|
||||
goto out; // return node information
|
||||
}
|
||||
|
||||
/* Processing of move pages */
|
||||
|
||||
if (cpu_index == 0) {
|
||||
/* Allocate new pages on target NUMA nodes */
|
||||
for (i = 0; i < count; i++) {
|
||||
@ -2463,8 +2495,11 @@ pte_out:
|
||||
|
||||
/* TODO: store pgalign info in an array as well? */
|
||||
if (mpsr->nr_pages[i] > 1) {
|
||||
if (mpsr->nr_pages[i] * PAGE_SIZE == PTL2_SIZE)
|
||||
pgalign = PTL2_SHIFT - PTL1_SHIFT;
|
||||
int nr_pages;
|
||||
|
||||
for (pgalign = 0, nr_pages = mpsr->nr_pages[i];
|
||||
nr_pages != 1; pgalign++, nr_pages >>= 1) {
|
||||
}
|
||||
}
|
||||
|
||||
dst = ihk_mc_alloc_aligned_pages_node(mpsr->nr_pages[i],
|
||||
|
||||
@ -33,7 +33,6 @@ struct vdso {
|
||||
long offset_sigtramp;
|
||||
};
|
||||
|
||||
extern char vdso_start, vdso_end;
|
||||
static struct vdso vdso;
|
||||
|
||||
struct tod_data_s tod_data
|
||||
@ -155,7 +154,7 @@ int arch_map_vdso(struct process_vm *vm)
|
||||
flag = VR_REMOTE | VR_PROT_READ;
|
||||
flag |= VRFLAG_PROT_TO_MAXPROT(flag);
|
||||
ret = add_process_memory_range(vm, start, end, vdso.vvar_phys, flag,
|
||||
NULL, 0, PAGE_SHIFT, &range);
|
||||
NULL, 0, PAGE_SHIFT, NULL, &range);
|
||||
if (ret != 0){
|
||||
dkprintf("ERROR: adding memory range for tod_data\n");
|
||||
goto exit;
|
||||
@ -167,7 +166,7 @@ int arch_map_vdso(struct process_vm *vm)
|
||||
flag = VR_REMOTE | VR_PROT_READ | VR_PROT_EXEC;
|
||||
flag |= VRFLAG_PROT_TO_MAXPROT(flag);
|
||||
ret = add_process_memory_range(vm, start, end, vdso.vdso_physlist[0], flag,
|
||||
NULL, 0, PAGE_SHIFT, &range);
|
||||
NULL, 0, PAGE_SHIFT, NULL, &range);
|
||||
if (ret != 0) {
|
||||
dkprintf("ERROR: adding memory range for vdso_text\n");
|
||||
|
||||
|
||||
@ -80,7 +80,11 @@ static void (*lapic_icr_write)(unsigned int h, unsigned int l);
|
||||
static void (*lapic_wait_icr_idle)(void);
|
||||
void (*x86_issue_ipi)(unsigned int apicid, unsigned int low);
|
||||
int running_on_kvm(void);
|
||||
static void smp_func_call_handler(void);
|
||||
void smp_func_call_handler(void);
|
||||
int ihk_mc_get_smp_handler_irq(void)
|
||||
{
|
||||
return LOCAL_SMP_FUNC_CALL_VECTOR;
|
||||
}
|
||||
|
||||
void init_processors_local(int max_id);
|
||||
void assign_processor_id(void);
|
||||
@ -919,20 +923,18 @@ void interrupt_exit(struct x86_user_context *regs)
|
||||
check_need_resched();
|
||||
check_signal(0, regs, -1);
|
||||
}
|
||||
else {
|
||||
check_sig_pending();
|
||||
}
|
||||
}
|
||||
|
||||
void handle_interrupt(int vector, struct x86_user_context *regs)
|
||||
{
|
||||
struct ihk_mc_interrupt_handler *h;
|
||||
struct cpu_local_var *v = get_this_cpu_local_var();
|
||||
int from_user = interrupt_from_user(regs);
|
||||
|
||||
lapic_ack();
|
||||
++v->in_interrupt;
|
||||
|
||||
set_cputime(interrupt_from_user(regs) ?
|
||||
set_cputime(from_user ?
|
||||
CPUTIME_MODE_U2K : CPUTIME_MODE_K2K_IN);
|
||||
|
||||
dkprintf("CPU[%d] got interrupt, vector: %d, RIP: 0x%lX\n",
|
||||
@ -1050,15 +1052,18 @@ void handle_interrupt(int vector, struct x86_user_context *regs)
|
||||
}
|
||||
|
||||
interrupt_exit(regs);
|
||||
set_cputime(interrupt_from_user(regs) ?
|
||||
set_cputime(from_user ?
|
||||
CPUTIME_MODE_K2U : CPUTIME_MODE_K2K_OUT);
|
||||
|
||||
--v->in_interrupt;
|
||||
|
||||
/* for migration by IPI */
|
||||
if (v->flags & CPU_FLAG_NEED_MIGRATE) {
|
||||
schedule();
|
||||
check_signal(0, regs, 0);
|
||||
// Don't migrate on K2K schedule
|
||||
if (from_user) {
|
||||
schedule();
|
||||
check_signal(0, regs, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1268,6 +1273,15 @@ unsigned long cpu_enable_interrupt_save(void)
|
||||
return flags;
|
||||
}
|
||||
|
||||
int cpu_interrupt_disabled(void)
|
||||
{
|
||||
unsigned long flags;
|
||||
|
||||
asm volatile("pushf; pop %0" : "=r"(flags) : : "memory", "cc");
|
||||
|
||||
return !(flags & 0x200);
|
||||
}
|
||||
|
||||
/*@
|
||||
@ behavior valid_vector:
|
||||
@ assumes 32 <= vector <= 255;
|
||||
@ -1673,6 +1687,11 @@ int ihk_mc_arch_get_special_register(enum ihk_asr_type type,
|
||||
}
|
||||
}
|
||||
|
||||
int ihk_mc_get_interrupt_id(int cpu)
|
||||
{
|
||||
return get_x86_cpu_local_variable(cpu)->apic_id;
|
||||
}
|
||||
|
||||
/*@
|
||||
@ requires \valid_cpuid(cpu); // valid CPU logical ID
|
||||
@ ensures \result == 0
|
||||
@ -2170,144 +2189,6 @@ int arch_cpu_read_write_register(
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Generic remote CPU function invocation facility.
|
||||
*/
|
||||
static void smp_func_call_handler(void)
|
||||
{
|
||||
int irq_flags;
|
||||
struct smp_func_call_request *req;
|
||||
int reqs_left;
|
||||
|
||||
reiterate:
|
||||
req = NULL;
|
||||
reqs_left = 0;
|
||||
|
||||
irq_flags = ihk_mc_spinlock_lock(
|
||||
&cpu_local_var(smp_func_req_lock));
|
||||
|
||||
/* Take requests one-by-one */
|
||||
if (!list_empty(&cpu_local_var(smp_func_req_list))) {
|
||||
req = list_first_entry(&cpu_local_var(smp_func_req_list),
|
||||
struct smp_func_call_request, list);
|
||||
list_del(&req->list);
|
||||
|
||||
reqs_left = !list_empty(&cpu_local_var(smp_func_req_list));
|
||||
}
|
||||
|
||||
ihk_mc_spinlock_unlock(&cpu_local_var(smp_func_req_lock),
|
||||
irq_flags);
|
||||
|
||||
if (req) {
|
||||
req->ret = req->sfcd->func(req->cpu_index,
|
||||
req->sfcd->nr_cpus, req->sfcd->arg);
|
||||
ihk_atomic_dec(&req->sfcd->cpus_left);
|
||||
}
|
||||
|
||||
if (reqs_left)
|
||||
goto reiterate;
|
||||
}
|
||||
|
||||
int smp_call_func(cpu_set_t *__cpu_set, smp_func_t __func, void *__arg)
|
||||
{
|
||||
int cpu, nr_cpus = 0;
|
||||
int cpu_index = 0;
|
||||
int this_cpu_index = 0;
|
||||
struct smp_func_call_data sfcd;
|
||||
struct smp_func_call_request *reqs;
|
||||
int ret = 0;
|
||||
int call_on_this_cpu = 0;
|
||||
cpu_set_t cpu_set;
|
||||
|
||||
/* Sanity checks */
|
||||
if (!__cpu_set || !__func) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
/* Make sure it won't change in between */
|
||||
cpu_set = *__cpu_set;
|
||||
|
||||
for_each_set_bit(cpu, (unsigned long *)&cpu_set,
|
||||
sizeof(cpu_set) * BITS_PER_BYTE) {
|
||||
|
||||
if (cpu == ihk_mc_get_processor_id()) {
|
||||
call_on_this_cpu = 1;
|
||||
}
|
||||
++nr_cpus;
|
||||
}
|
||||
|
||||
if (!nr_cpus) {
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
reqs = kmalloc(sizeof(*reqs) * nr_cpus, IHK_MC_AP_NOWAIT);
|
||||
if (!reqs) {
|
||||
ret = -ENOMEM;
|
||||
goto free_out;
|
||||
}
|
||||
|
||||
sfcd.nr_cpus = nr_cpus;
|
||||
sfcd.func = __func;
|
||||
sfcd.arg = __arg;
|
||||
ihk_atomic_set(&sfcd.cpus_left,
|
||||
call_on_this_cpu ? nr_cpus - 1 : nr_cpus);
|
||||
|
||||
/* Add requests and send IPIs */
|
||||
cpu_index = 0;
|
||||
for_each_set_bit(cpu, (unsigned long *)&cpu_set,
|
||||
sizeof(cpu_set) * BITS_PER_BYTE) {
|
||||
unsigned long irq_flags;
|
||||
|
||||
reqs[cpu_index].cpu_index = cpu_index;
|
||||
reqs[cpu_index].ret = 0;
|
||||
|
||||
if (cpu == ihk_mc_get_processor_id()) {
|
||||
this_cpu_index = cpu_index;
|
||||
++cpu_index;
|
||||
continue;
|
||||
}
|
||||
|
||||
reqs[cpu_index].sfcd = &sfcd;
|
||||
|
||||
irq_flags =
|
||||
ihk_mc_spinlock_lock(&get_cpu_local_var(cpu)->smp_func_req_lock);
|
||||
list_add_tail(&reqs[cpu_index].list,
|
||||
&get_cpu_local_var(cpu)->smp_func_req_list);
|
||||
ihk_mc_spinlock_unlock(&get_cpu_local_var(cpu)->smp_func_req_lock,
|
||||
irq_flags);
|
||||
|
||||
ihk_mc_interrupt_cpu(cpu, LOCAL_SMP_FUNC_CALL_VECTOR);
|
||||
|
||||
++cpu_index;
|
||||
}
|
||||
|
||||
/* Is this CPU involved? */
|
||||
if (call_on_this_cpu) {
|
||||
reqs[this_cpu_index].ret =
|
||||
__func(this_cpu_index, nr_cpus, __arg);
|
||||
}
|
||||
|
||||
/* Wait for the rest of the CPUs */
|
||||
while (ihk_atomic_read(&sfcd.cpus_left) > 0) {
|
||||
cpu_pause();
|
||||
}
|
||||
|
||||
/* Check return values, if error, report the first non-zero */
|
||||
for (cpu_index = 0; cpu_index < nr_cpus; ++cpu_index) {
|
||||
if (reqs[cpu_index].ret != 0) {
|
||||
ret = reqs[cpu_index].ret;
|
||||
goto free_out;
|
||||
}
|
||||
}
|
||||
|
||||
ret = 0;
|
||||
|
||||
free_out:
|
||||
kfree(reqs);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
extern int nmi_mode;
|
||||
extern long freeze_thaw(void *nmi_ctx);
|
||||
|
||||
|
||||
@ -129,12 +129,4 @@ static inline int futex_atomic_op_inuser(int encoded_op,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static inline int get_futex_value_locked(uint32_t *dest, uint32_t *from)
|
||||
{
|
||||
|
||||
*dest = *(volatile uint32_t *)from;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@ -19,6 +19,7 @@
|
||||
#include <ihk/types.h>
|
||||
#include <errno.h>
|
||||
|
||||
struct memobj;
|
||||
#define KERNEL_CS_ENTRY 4
|
||||
#define KERNEL_DS_ENTRY 5
|
||||
#define USER_CS_ENTRY 6
|
||||
@ -182,7 +183,7 @@ enum ihk_mc_pt_attribute {
|
||||
PTATTR_WRITE_COMBINED = 0x40000,
|
||||
};
|
||||
|
||||
enum ihk_mc_pt_attribute attr_mask;
|
||||
extern enum ihk_mc_pt_attribute attr_mask;
|
||||
|
||||
static inline int pfn_is_write_combined(uintptr_t pfn)
|
||||
{
|
||||
@ -412,10 +413,8 @@ static inline pte_t *get_contiguous_tail(pte_t *__ptep, size_t __pgsize)
|
||||
return __ptep;
|
||||
}
|
||||
|
||||
static inline int split_contiguous_pages(pte_t *ptep, size_t pgsize)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
int split_contiguous_pages(pte_t *ptep, size_t pgsize,
|
||||
uint32_t memobj_flags);
|
||||
|
||||
static inline int page_is_contiguous_head(pte_t *ptep, size_t pgsize)
|
||||
{
|
||||
|
||||
@ -884,7 +884,7 @@ static int split_large_page(pte_t *ptep, size_t pgsize)
|
||||
}
|
||||
|
||||
for (i = 0; i < PT_ENTRIES; ++i) {
|
||||
if (phys_base != NOPHYS) {
|
||||
if (phys_base != NOPHYS && pgsize != PTL2_SIZE) {
|
||||
phys = phys_base + (i * pgsize / PT_ENTRIES);
|
||||
page = phys_to_page(phys);
|
||||
if (page) {
|
||||
@ -2227,7 +2227,8 @@ out:
|
||||
return error;
|
||||
}
|
||||
|
||||
int ihk_mc_pt_split(page_table_t pt, struct process_vm *vm, void *addr)
|
||||
int ihk_mc_pt_split(page_table_t pt, struct process_vm *vm,
|
||||
struct vm_range *range, void *addr)
|
||||
{
|
||||
int error;
|
||||
pte_t *ptep;
|
||||
@ -2236,7 +2237,6 @@ int ihk_mc_pt_split(page_table_t pt, struct process_vm *vm, void *addr)
|
||||
intptr_t phys;
|
||||
struct page *page;
|
||||
|
||||
|
||||
retry:
|
||||
ptep = ihk_mc_pt_lookup_pte(pt, addr, 0, &pgaddr, &pgsize, NULL);
|
||||
if (ptep && !pte_is_null(ptep) && (pgaddr != addr)) {
|
||||
@ -2245,8 +2245,8 @@ retry:
|
||||
phys = pte_get_phys(ptep);
|
||||
page = phys_to_page(phys);
|
||||
}
|
||||
if (page && (page_is_in_memobj(page)
|
||||
|| page_is_multi_mapped(page))) {
|
||||
if (!is_splitable(page, range->memobj ?
|
||||
range->memobj->flags : 0)) {
|
||||
error = -EINVAL;
|
||||
kprintf("ihk_mc_pt_split:NYI:page break down\n");
|
||||
goto out;
|
||||
@ -3009,3 +3009,10 @@ int patch_process_vm(struct process_vm *vm, void *udst, const void *ksrc, size_t
|
||||
dkprintf("patch_process_vm(%p,%p,%p,%lx):%d\n", vm, udst, ksrc, siz, 0);
|
||||
return 0;
|
||||
} /* patch_process_vm() */
|
||||
|
||||
int split_contiguous_pages(pte_t *ptep, size_t pgsize,
|
||||
uint32_t memobj_flags)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@ -31,7 +31,9 @@
|
||||
#include <page.h>
|
||||
#include <limits.h>
|
||||
#include <syscall.h>
|
||||
#include <bitops.h>
|
||||
#include <rusage_private.h>
|
||||
#include <memory.h>
|
||||
#include <ihk/debug.h>
|
||||
|
||||
void terminate_mcexec(int, int);
|
||||
@ -1510,7 +1512,7 @@ recheck:
|
||||
goto out;
|
||||
}
|
||||
|
||||
addr = do_mmap(addr, len, prot, flags, fd, off0);
|
||||
addr = do_mmap(addr, len, prot, flags, fd, off0, 0, NULL);
|
||||
|
||||
error = 0;
|
||||
out:
|
||||
@ -1839,7 +1841,7 @@ int arch_map_vdso(struct process_vm *vm)
|
||||
vrflags |= VR_PROT_READ | VR_PROT_EXEC;
|
||||
vrflags |= VRFLAG_PROT_TO_MAXPROT(vrflags);
|
||||
error = add_process_memory_range(vm, (intptr_t)s, (intptr_t)e,
|
||||
NOPHYS, vrflags, NULL, 0, PAGE_SHIFT, &range);
|
||||
NOPHYS, vrflags, NULL, 0, PAGE_SHIFT, NULL, &range);
|
||||
if (error) {
|
||||
ekprintf("ERROR: adding memory range for vdso. %d\n", error);
|
||||
goto out;
|
||||
@ -1871,7 +1873,8 @@ int arch_map_vdso(struct process_vm *vm)
|
||||
vrflags |= VR_PROT_READ;
|
||||
vrflags |= VRFLAG_PROT_TO_MAXPROT(vrflags);
|
||||
error = add_process_memory_range(vm, (intptr_t)s, (intptr_t)e,
|
||||
NOPHYS, vrflags, NULL, 0, PAGE_SHIFT, &range);
|
||||
NOPHYS, vrflags, NULL, 0,
|
||||
PAGE_SHIFT, NULL, &range);
|
||||
if (error) {
|
||||
ekprintf("ERROR: adding memory range for vvar. %d\n", error);
|
||||
goto out;
|
||||
@ -2302,8 +2305,10 @@ int move_pages_smp_handler(int cpu_index, int nr_cpus, void *arg)
|
||||
case 0:
|
||||
memcpy(mpsr->virt_addr, mpsr->user_virt_addr,
|
||||
sizeof(void *) * count);
|
||||
memcpy(mpsr->nodes, mpsr->user_nodes,
|
||||
sizeof(int) * count);
|
||||
if (mpsr->user_nodes) {
|
||||
memcpy(mpsr->nodes, mpsr->user_nodes,
|
||||
sizeof(int) * count);
|
||||
}
|
||||
memset(mpsr->ptep, 0, sizeof(pte_t) * count);
|
||||
memset(mpsr->status, 0, sizeof(int) * count);
|
||||
memset(mpsr->nr_pages, 0, sizeof(int) * count);
|
||||
@ -2321,8 +2326,10 @@ int move_pages_smp_handler(int cpu_index, int nr_cpus, void *arg)
|
||||
case 0:
|
||||
memcpy(mpsr->virt_addr, mpsr->user_virt_addr,
|
||||
sizeof(void *) * count);
|
||||
memcpy(mpsr->nodes, mpsr->user_nodes,
|
||||
sizeof(int) * count);
|
||||
if (mpsr->user_nodes) {
|
||||
memcpy(mpsr->nodes, mpsr->user_nodes,
|
||||
sizeof(int) * count);
|
||||
}
|
||||
mpsr->nodes_ready = 1;
|
||||
break;
|
||||
case 1:
|
||||
@ -2344,8 +2351,10 @@ int move_pages_smp_handler(int cpu_index, int nr_cpus, void *arg)
|
||||
sizeof(void *) * count);
|
||||
break;
|
||||
case 1:
|
||||
memcpy(mpsr->nodes, mpsr->user_nodes,
|
||||
sizeof(int) * count);
|
||||
if (mpsr->user_nodes) {
|
||||
memcpy(mpsr->nodes, mpsr->user_nodes,
|
||||
sizeof(int) * count);
|
||||
}
|
||||
mpsr->nodes_ready = 1;
|
||||
break;
|
||||
case 2:
|
||||
@ -2374,8 +2383,10 @@ int move_pages_smp_handler(int cpu_index, int nr_cpus, void *arg)
|
||||
sizeof(void *) * (count / 2));
|
||||
break;
|
||||
case 2:
|
||||
memcpy(mpsr->nodes, mpsr->user_nodes,
|
||||
sizeof(int) * count);
|
||||
if (mpsr->user_nodes) {
|
||||
memcpy(mpsr->nodes, mpsr->user_nodes,
|
||||
sizeof(int) * count);
|
||||
}
|
||||
mpsr->nodes_ready = 1;
|
||||
break;
|
||||
case 3:
|
||||
@ -2401,13 +2412,15 @@ int move_pages_smp_handler(int cpu_index, int nr_cpus, void *arg)
|
||||
}
|
||||
|
||||
/* NUMA verification in parallel */
|
||||
for (i = i_s; i < i_e; i++) {
|
||||
if (mpsr->nodes[i] < 0 ||
|
||||
mpsr->nodes[i] >= ihk_mc_get_nr_numa_nodes() ||
|
||||
!test_bit(mpsr->nodes[i],
|
||||
mpsr->proc->vm->numa_mask)) {
|
||||
mpsr->phase_ret = -EINVAL;
|
||||
break;
|
||||
if (mpsr->user_nodes) {
|
||||
for (i = i_s; i < i_e; i++) {
|
||||
if (mpsr->nodes[i] < 0 ||
|
||||
mpsr->nodes[i] >= ihk_mc_get_nr_numa_nodes() ||
|
||||
!test_bit(mpsr->nodes[i],
|
||||
mpsr->proc->vm->numa_mask)) {
|
||||
mpsr->phase_ret = -EINVAL;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2503,6 +2516,26 @@ pte_out:
|
||||
dkprintf("%s: phase %d done\n", __FUNCTION__, phase);
|
||||
++phase;
|
||||
|
||||
/*
|
||||
* When nodes array is NULL, move_pages doesn't move any pages,
|
||||
* instead will return the node where each page
|
||||
* currently resides by status array.
|
||||
*/
|
||||
if (!mpsr->user_nodes) {
|
||||
/* get nid in parallel */
|
||||
for (i = i_s; i < i_e; i++) {
|
||||
if (mpsr->status[i] < 0) {
|
||||
continue;
|
||||
}
|
||||
mpsr->status[i] = phys_to_nid(
|
||||
pte_get_phys(mpsr->ptep[i]));
|
||||
}
|
||||
mpsr->phase_ret = 0;
|
||||
goto out; // return node information
|
||||
}
|
||||
|
||||
/* Processing of move pages */
|
||||
|
||||
if (cpu_index == 0) {
|
||||
/* Allocate new pages on target NUMA nodes */
|
||||
for (i = 0; i < count; i++) {
|
||||
|
||||
@ -26,4 +26,6 @@ ja:
|
||||
echo ".. figure:: docs/mckernel-logo.png" > ../README.rst; echo >> ../README.rst
|
||||
cat summary.rst >> ../README.rst; echo >> ../README.rst
|
||||
cat doc.rst >> ../README.rst
|
||||
[[ $@ == clean ]] && specopt=clean; make -C spec/ihk $$specopt
|
||||
[[ $@ == clean ]] && specopt=clean; make -C spec/mckernel $$specopt
|
||||
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
||||
|
||||
321
docs/NEWS.rst
321
docs/NEWS.rst
@ -1,3 +1,324 @@
|
||||
=============================================
|
||||
Version 1.8.0 (Mar 23, 2021)
|
||||
=============================================
|
||||
|
||||
----------------------
|
||||
IHK major updates
|
||||
----------------------
|
||||
N/A
|
||||
|
||||
------------------------
|
||||
IHK major bug fixes
|
||||
------------------------
|
||||
N/A
|
||||
|
||||
----------------------
|
||||
McKernel major updates
|
||||
----------------------
|
||||
N/A
|
||||
|
||||
------------------------
|
||||
McKernel major bug fixes
|
||||
------------------------
|
||||
#. profile: fix infinite recursion for allocation miss event
|
||||
#. Fugaku: MAP_LOCKED and pre-populate PMIx shared memory PFNs
|
||||
|
||||
=============================================
|
||||
Version 1.7.10 (Mar 18, 2021)
|
||||
=============================================
|
||||
|
||||
----------------------
|
||||
IHK major updates
|
||||
----------------------
|
||||
N/A
|
||||
|
||||
------------------------
|
||||
IHK major bug fixes
|
||||
------------------------
|
||||
#. __ihk_device_detect_hungup: detect hungup via device-ioctl
|
||||
|
||||
----------------------
|
||||
McKernel major updates
|
||||
----------------------
|
||||
N/A
|
||||
|
||||
------------------------
|
||||
McKernel major bug fixes
|
||||
------------------------
|
||||
N/A
|
||||
|
||||
=============================================
|
||||
Version 1.7.9 (Mar 17, 2021)
|
||||
=============================================
|
||||
|
||||
----------------------
|
||||
IHK major updates
|
||||
----------------------
|
||||
N/A
|
||||
|
||||
------------------------
|
||||
IHK major bug fixes
|
||||
------------------------
|
||||
#. ihklib: ihk_reserve_mem_conf*: fix default values
|
||||
#. smp_ihk_os_shutdown: fix memory leak
|
||||
#. smp_ihk_os_shutdown: prevent double free
|
||||
#. __ihk_os_shutdown: fix smp_ihk_os_shutdown()-related double free
|
||||
#. smp_ihk_os_panic_notifier: exclude memory from Linux dump with default setting
|
||||
#. smp_ihk_os_panic_notifier: exclude memory from Linux dump while booting, on timeout
|
||||
|
||||
----------------------
|
||||
McKernel major updates
|
||||
----------------------
|
||||
N/A
|
||||
|
||||
------------------------
|
||||
McKernel major bug fixes
|
||||
------------------------
|
||||
#. mcctrl_wakeup_desc: refcount and fix timeouts
|
||||
|
||||
=============================================
|
||||
Version 1.7.8 (Mar 12, 2021)
|
||||
=============================================
|
||||
|
||||
----------------------
|
||||
IHK major updates
|
||||
----------------------
|
||||
N/A
|
||||
|
||||
------------------------
|
||||
IHK major bug fixes
|
||||
------------------------
|
||||
#. ihklib: ihk_reserve_cpu: fix job cpu check when using krm
|
||||
|
||||
----------------------
|
||||
McKernel major updates
|
||||
----------------------
|
||||
N/A
|
||||
|
||||
------------------------
|
||||
McKernel major bug fixes
|
||||
------------------------
|
||||
N/A
|
||||
|
||||
=============================================
|
||||
Version 1.7.7 (Mar 11, 2021)
|
||||
=============================================
|
||||
|
||||
----------------------
|
||||
IHK major updates
|
||||
----------------------
|
||||
N/A
|
||||
|
||||
------------------------
|
||||
IHK major bug fixes
|
||||
------------------------
|
||||
N/A
|
||||
|
||||
----------------------
|
||||
McKernel major updates
|
||||
----------------------
|
||||
N/A
|
||||
|
||||
------------------------
|
||||
McKernel major bug fixes
|
||||
------------------------
|
||||
#. mcexec: fput executable just after its contents is transferred
|
||||
#. spec: cmake-config cmake parameters
|
||||
|
||||
=============================================
|
||||
Version 1.7.6 (Mar 11, 2021)
|
||||
=============================================
|
||||
|
||||
----------------------
|
||||
IHK major updates
|
||||
----------------------
|
||||
N/A
|
||||
|
||||
------------------------
|
||||
IHK major bug fixes
|
||||
------------------------
|
||||
#. ihklib: ihk_reserve_mem_conf*: apply change only to the next reservation
|
||||
|
||||
----------------------
|
||||
McKernel major updates
|
||||
----------------------
|
||||
N/A
|
||||
|
||||
------------------------
|
||||
McKernel major bug fixes
|
||||
------------------------
|
||||
N/A
|
||||
|
||||
=============================================
|
||||
Version 1.7.5 (Mar 11, 2021)
|
||||
=============================================
|
||||
|
||||
----------------------
|
||||
IHK major updates
|
||||
----------------------
|
||||
N/A
|
||||
|
||||
------------------------
|
||||
IHK major bug fixes
|
||||
------------------------
|
||||
#. ihklib: fix cgroup cpuset.cpus/mems check when using krm
|
||||
#. ihklib: ihk_reserve_mem_conf_str: set default values to those not specified
|
||||
|
||||
----------------------
|
||||
McKernel major updates
|
||||
----------------------
|
||||
N/A
|
||||
|
||||
------------------------
|
||||
McKernel major bug fixes
|
||||
------------------------
|
||||
N/A
|
||||
|
||||
=============================================
|
||||
Version 1.7.4 (Mar 7, 2021)
|
||||
=============================================
|
||||
|
||||
----------------------
|
||||
IHK major updates
|
||||
----------------------
|
||||
N/A
|
||||
|
||||
------------------------
|
||||
IHK major bug fixes
|
||||
------------------------
|
||||
N/A
|
||||
|
||||
----------------------
|
||||
McKernel major updates
|
||||
----------------------
|
||||
N/A
|
||||
|
||||
------------------------
|
||||
McKernel major bug fixes
|
||||
------------------------
|
||||
N/A
|
||||
|
||||
=============================================
|
||||
Version 1.7.3 (Mar 5, 2021)
|
||||
=============================================
|
||||
|
||||
----------------------
|
||||
IHK major updates
|
||||
----------------------
|
||||
N/A
|
||||
|
||||
------------------------
|
||||
IHK major bug fixes
|
||||
------------------------
|
||||
N/A
|
||||
|
||||
----------------------
|
||||
McKernel major updates
|
||||
----------------------
|
||||
N/A
|
||||
|
||||
------------------------
|
||||
McKernel major bug fixes
|
||||
------------------------
|
||||
N/A
|
||||
|
||||
=============================================
|
||||
Version 1.7.2 (Mar 5, 2021)
|
||||
=============================================
|
||||
|
||||
----------------------
|
||||
IHK major updates
|
||||
----------------------
|
||||
#. ihklib: add *_str() functions for reserve, assign, IKC-map, kargs
|
||||
#. smp: make smp_call_func() arch independent
|
||||
|
||||
------------------------
|
||||
IHK major bug fixes
|
||||
------------------------
|
||||
#. ihklib: ihk_reserve_mem: fix capped best-effort
|
||||
#. TO RESET: fake missing NUMA node pieces, 90% memory limit
|
||||
#. ihklib: ihk_reserve_mem_conf: range-check for IHK_RESERVE_MEM_MAX_SIZE_RATIO_ALL
|
||||
#. ihklib: ihk_os_kargs: check if "hidos" is included
|
||||
#. SMP: omit slab/slub shrink, use 95% limit by default
|
||||
#. check cpu / numa cgroup set by krm
|
||||
#. SMP: __ihk_smp_reserve_mem: add __GFP_COMP to __GFP_ATOMIC allocation
|
||||
#. ihk_register_device: record minor to IHK device object
|
||||
|
||||
----------------------
|
||||
McKernel major updates
|
||||
----------------------
|
||||
#. mcexec: memory policy control by environmental variable
|
||||
#. mempolicy: Support MPOL_INTERLEAVE
|
||||
#. uti: futex call function in mcctrl
|
||||
#. uti: integrate libuti and redirect to mck/libuti.so
|
||||
#. uti: integrate syscall_intercept
|
||||
#. shmobj: support large page
|
||||
#. xpmem: support large page
|
||||
#. MM: handle zero_at_free in page faults
|
||||
|
||||
------------------------
|
||||
McKernel major bug fixes
|
||||
------------------------
|
||||
#. TO RESET: stack changes
|
||||
#. Tofu: keep track of stags per memory range
|
||||
#. Tofu: match page sizes to MBPT and fault PTEs if not present
|
||||
#. Tofu: fix phys addr calculation for contiguous pages in MBPT/BCH update
|
||||
#. rus_vm_fault: vmf_insert_pfn: treat VM_FAULT_NOPAGE as success
|
||||
#. Tofu: mcctrl side MMU notifier and CQ/BCH cleanup
|
||||
#. copy_user_ranges: copy straight_start of struct vm_range
|
||||
#. mcctrl: abort on invalid addr in mcexec_transfer_image()
|
||||
#. mcctrl: fix access to uninitialized usrdata->cpu_topology_list
|
||||
#. mcexec: propagate error in __NR_gettid handler
|
||||
#. mcexec_transfer_image(): map exact size of remote memory (instead of forcing PAGE_SIZE)
|
||||
#. xpmem: fault stack area of remote process if VM range doesn't yet exist
|
||||
#. Tofu: fault stack area if VM range doesn't exist in STAG registration
|
||||
#. __mcctrl_os_read_write_cpu_register: fix timeout
|
||||
#. mbind: Use range_policy's numamask as priority on MPOL_BIND
|
||||
#. migrate: Don't migrate on in-kernel interrupt
|
||||
#. Send a signal to mcexec after switching to that process.
|
||||
#. uti: fix syscall response is mis-consumed by __do_in_kernel_irq_syscall
|
||||
#. uti: fix handling UTI_CPU_SET env
|
||||
#. do_execveat: kill instead of panic when init_process_stack fails
|
||||
#. remote_page_fault is handled by the offloaded thread.
|
||||
#. coredump: fix behavior when gencore fail
|
||||
#. xpmem: truncates the size of xpmem_attach at the page boundary (workaround for fjmpi)
|
||||
#. __mcctrl_os_read_write_cpu_register: spin timeout in mcctrl_ikc_send_wait()
|
||||
|
||||
=============================================
|
||||
Version 1.7.1 (Dec 23, 2020)
|
||||
=============================================
|
||||
|
||||
----------------------
|
||||
IHK major updates
|
||||
----------------------
|
||||
#. d5d5c23 Tofu: support for barrier gate
|
||||
#. Tofu: proper cleanup of premapped DMA regions
|
||||
#. Tofu: initial version
|
||||
#. SMP: try with GFP_ATOMIC as well in mem reserve
|
||||
|
||||
------------------------
|
||||
IHK major bug fixes
|
||||
------------------------
|
||||
#. ihklib: ihk(_os)_query_{cpu,mem}: allow to pass empty array
|
||||
#. SMP: non compound page free and GFP_ATOMIC
|
||||
#. ihk_get_num_os_instances: don't open /dev/mcdN
|
||||
#. ihklib: ihk_create_os_str: fix variable prefix
|
||||
|
||||
----------------------
|
||||
McKernel major updates
|
||||
----------------------
|
||||
#. stragiht map: creates a straight map covering the whole physical memory, and gives virtual address ranges out of it to maps to which physical pages are allocated on map
|
||||
#. free-time, lazy, potentially Linux-side page-zeroing
|
||||
#. Tofu built-in driver: supports memory registration and barrier gate setup
|
||||
#. kmalloc cache
|
||||
|
||||
------------------------
|
||||
McKernel major bug fixes
|
||||
------------------------
|
||||
#. mmap: return -EINVAL for non-anonymous, MAP_HUGETLB map
|
||||
#. kernel: increase stack size
|
||||
#. Tofu: proper cleanup of device files when mcexec gets killed
|
||||
|
||||
=============================================
|
||||
Version 1.7.0 (Nov 25, 2020)
|
||||
=============================================
|
||||
|
||||
19
docs/README
Normal file
19
docs/README
Normal file
@ -0,0 +1,19 @@
|
||||
How to build
|
||||
============
|
||||
|
||||
Build English html
|
||||
------------------
|
||||
|
||||
make html
|
||||
|
||||
|
||||
Build Japanese html
|
||||
--------------------
|
||||
|
||||
make ja
|
||||
|
||||
|
||||
How to translate into Japanese
|
||||
------------------------------
|
||||
|
||||
See https://www.sphinx-doc.org/en/master/usage/advanced/intl.html
|
||||
@ -1,11 +1,5 @@
|
||||
Contact
|
||||
=======
|
||||
|
||||
Please give your feedback to us via one of the following mailing lists.
|
||||
Subscription via
|
||||
`www.pccluster.org <http://www.pccluster.org/mailman/listinfo/mckernel-users>`__
|
||||
is needed.
|
||||
|
||||
- English: mckernel-users@pccluster.org
|
||||
- Japanese: mckernel-users-jp@pccluster.org
|
||||
Please give your feedback to us via the following mailing list: ihkmckernel@googlegroups.com
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ Install the following packages to the build machine:
|
||||
|
||||
::
|
||||
|
||||
cmake kernel-devel binutils-devel systemd-devel numactl-devel gcc make nasm git libdwarf-devel
|
||||
cmake kernel-devel binutils-devel systemd-devel numactl-devel gcc make nasm git libdwarf-devel capstone-devel
|
||||
|
||||
When having access to repositories
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -46,17 +46,48 @@ On CentOS 8, enable the PowerTools repository:
|
||||
|
||||
sudo dnf config-manager --set-enabled PowerTools
|
||||
|
||||
Enable EPEL repository:
|
||||
|
||||
::
|
||||
|
||||
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
|
||||
|
||||
Install with yum:
|
||||
|
||||
::
|
||||
|
||||
sudo yum install cmake kernel-devel binutils-devel systemd-devel numactl-devel gcc make nasm git libdwarf-devel
|
||||
sudo yum install cmake kernel-devel binutils-devel systemd-devel numactl-devel gcc make nasm git libdwarf-devel capstone-devel
|
||||
|
||||
When not having access to repositories
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
``libdwarf-devel``
|
||||
""""""""""""""""""
|
||||
|
||||
Ask the system administrator to install them. Note that ``libdwarf-devel`` is in the CodeReady Linux Builder repository on RHEL 8 or in the PowerTools repository on CentOS 8.
|
||||
|
||||
``capstone-devel``
|
||||
""""""""""""""""""
|
||||
|
||||
A. Ask the system administrator to install ``capstone-devel``. Note that it is in the EPEL repository.
|
||||
|
||||
B. Download the rpm with the machine in which you are the administrator:
|
||||
|
||||
::
|
||||
|
||||
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
|
||||
sudo yum install yum-utils
|
||||
yumdownloader capstone-devel
|
||||
|
||||
And then install it to your home directory:
|
||||
|
||||
::
|
||||
|
||||
cd $HOME/$(uname -p)
|
||||
rpm2cpio capstone-devel-4.0.1-9.el8.aarch64.rpm | cpio -idv
|
||||
sed -i 's#/usr/#'"$HOME"'/'"$(uname -p)"'/usr/#' $HOME/$(uname -p)/usr/lib64/pkgconfig/capstone.pc
|
||||
|
||||
|
||||
Clone, compile, install
|
||||
--------------------------
|
||||
|
||||
@ -66,7 +97,7 @@ Clone the source code:
|
||||
|
||||
mkdir -p ~/src/ihk+mckernel/
|
||||
cd ~/src/ihk+mckernel/
|
||||
git clone --recursive -b development https://github.com/RIKEN-SysSoft/mckernel.git
|
||||
git clone --recursive -b development https://github.com/ihkmckernel/mckernel.git
|
||||
|
||||
(Optional) Checkout to the specific branch or version:
|
||||
|
||||
@ -93,7 +124,12 @@ When not cross-compiling:
|
||||
|
||||
::
|
||||
|
||||
cmake -DCMAKE_INSTALL_PREFIX=${HOME}/ihk+mckernel ../mckernel
|
||||
CMAKE_PREFIX_PATH=${HOME}/$(uname -p)/usr \
|
||||
cmake -DCMAKE_INSTALL_PREFIX=${HOME}/ihk+mckernel \
|
||||
-DENABLE_UTI=ON \
|
||||
../mckernel
|
||||
|
||||
Note that ``CMAKE_PREFIX_PATH=${HOME}/$(uname -p)/usr`` is required only when ``capstone-devel`` is installed to your home directory.
|
||||
|
||||
When cross-compiling:
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
@ -105,10 +141,11 @@ When cross-compiling:
|
||||
-DKERNEL_DIR=<kernnel_dir> \
|
||||
-DBUILD_TARGET=smp-arm64 \
|
||||
-DCMAKE_TOOLCHAIN_FILE=../mckernel/cmake/cross-aarch64.cmake \
|
||||
-DENABLE_UTI=ON \
|
||||
../mckernel
|
||||
|
||||
Install with cmake
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Install with make:
|
||||
|
||||
@ -134,6 +171,8 @@ Create the rpm package:
|
||||
When not cross-compiling:
|
||||
"""""""""""""""""""""""""
|
||||
|
||||
Then build the rpm:
|
||||
|
||||
::
|
||||
|
||||
rpmbuild -ba scripts/mckernel.spec
|
||||
@ -173,10 +212,10 @@ Install the following packages to the compute nodes:
|
||||
|
||||
::
|
||||
|
||||
systemd-libs numactl-libs libdwarf
|
||||
systemd-libs numactl-libs libdwarf capstone
|
||||
|
||||
When having access to repositories
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
On RHEL 8, enable the CodeReady Linux Builder (CLB) repository:
|
||||
|
||||
@ -190,13 +229,42 @@ On CentOS 8, enable the PowerTools repository:
|
||||
|
||||
sudo dnf config-manager --set-enabled PowerTools
|
||||
|
||||
Enable EPEL repository:
|
||||
|
||||
::
|
||||
|
||||
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
|
||||
|
||||
Install with yum:
|
||||
|
||||
::
|
||||
|
||||
sudo yum install systemd-libs numactl-libs libdwarf
|
||||
sudo yum install systemd-libs numactl-libs libdwarf capstone
|
||||
|
||||
When not having access to repositories
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
``libdwarf``
|
||||
""""""""""""
|
||||
|
||||
Ask the system administrator to install them. Note that ``libdwarf`` is in the CodeReady Linux Builder repository on RHEL 8 or in the PowerTools repository on CentOS 8.
|
||||
|
||||
``capstone``
|
||||
""""""""""""
|
||||
|
||||
A. Ask the system administrator to install ``capstone``. Note that it is in the EPEL repository.
|
||||
|
||||
B. Download the rpm with the machine in which you are the administrator:
|
||||
|
||||
::
|
||||
|
||||
sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
|
||||
sudo yum install yum-utils
|
||||
yumdownloader capstone
|
||||
|
||||
and then install it to your home directory:
|
||||
|
||||
::
|
||||
|
||||
cd $HOME/$(uname -p)
|
||||
rpm2cpio capstone-4.0.1-9.el8.aarch64.rpm | cpio -idv
|
||||
|
||||
@ -7,12 +7,10 @@ This document will explain how to operate system with McKernel.
|
||||
Installation
|
||||
============
|
||||
|
||||
See `Quick Guide -- Installation <quick.html#installation>`__.
|
||||
|
||||
.. include:: uti.rst
|
||||
Follow `Quick Guide -- Installation <quick.html#installation>`__.
|
||||
|
||||
Boot and Shut-down
|
||||
=========================
|
||||
==================
|
||||
|
||||
Related files
|
||||
-------------
|
||||
|
||||
@ -4,4 +4,4 @@
|
||||
|
||||
Specifications
|
||||
==============
|
||||
The specifications pdf is :download:`here <ihk.pdf>`
|
||||
The specifications pdf is :download:`here <ihk/ihk.pdf>`
|
||||
|
||||
59
docs/spec/ihk/Makefile
Normal file
59
docs/spec/ihk/Makefile
Normal file
@ -0,0 +1,59 @@
|
||||
TARGETBN = ihk
|
||||
TEXFILES = ihk.tex glossary.tex
|
||||
PDFFILES = $(shell ls figs/*.pdf)
|
||||
XBBFILES = $(PDFFILES:.pdf=.xbb)
|
||||
|
||||
UNAME_S := $(shell uname -s)
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
PREVIEW = open -a Preview $(TARGETBN).pdf
|
||||
endif
|
||||
|
||||
HLDIFFOPS ?= n
|
||||
HLDIFFWG ?= n
|
||||
HLDIFFJUL ?= n
|
||||
HLDIFFJULTWO ?= n
|
||||
HLDIFFAUG ?= n
|
||||
HLDIFFSEP ?= n
|
||||
HLDIFFPROC ?= n
|
||||
HLDIFFPREV ?= n
|
||||
OPTS='\let\HLDIFFOPS=$(HLDIFFOPS) \let\HLDIFFWG=$(HLDIFFWG) \let\HLDIFFJUL=$(HLDIFFJUL) \let\HLDIFFJULTWO=$(HLDIFFJULTWO) \let\HLDIFFAUG=$(HLDIFFAUG) \let\HLDIFFSEP=$(HLDIFFSEP) \let\HLDIFFPROC=$(HLDIFFPROC) \let\HLDIFFPREV=$(HLDIFFPREV) \input'
|
||||
|
||||
all: $(TARGETBN).pdf
|
||||
|
||||
%.xbb : %.pdf
|
||||
extractbb $<
|
||||
|
||||
$(TARGETBN).glsdefs: $(TEXFILES) $(XBBFILES) $(PDFFILES)
|
||||
platex $(OPTS) $(TARGETBN)
|
||||
|
||||
$(TARGETBN).aux : $(TEXFILES) $(TARGETBN).glsdefs $(XBBFILES) $(PDFFILES)
|
||||
platex $(OPTS) $(TARGETBN)
|
||||
|
||||
# $(TARGETBN).bbl : $(TARGETBN).aux $(TARGETBN).bib $(XBBFILES) $(PDFFILES)
|
||||
# bibtex $(TARGETBN)
|
||||
# platex $(OPTS) $(TARGETBN)
|
||||
# bibtex $(TARGETBN)
|
||||
|
||||
#$(TARGETBN).glo : $(TARGETBN).glsdefs $(XBBFILES) $(PDFFILES)
|
||||
# platex $(OPTS) $(TARGETBN)
|
||||
|
||||
$(TARGETBN).gls : $(TARGETBN).glo
|
||||
makeglossaries $(TARGETBN)
|
||||
|
||||
$(TARGETBN).toc : $(TARGETBN).gls $(XBBFILES) $(PDFFILES)
|
||||
platex $(OPTS) $(TARGETBN)
|
||||
|
||||
$(TARGETBN).out : $(TARGETBN).toc
|
||||
platex $(OPTS) $(TARGETBN)
|
||||
|
||||
$(TARGETBN).dvi: $(TARGETBN).aux $(TARGETBN).gls $(TARGETBN).toc $(TARGETBN).out $(XBBFILES) $(PDFFILES)
|
||||
platex $(OPTS) $(TARGETBN)
|
||||
|
||||
$(TARGETBN).pdf: $(TARGETBN).dvi
|
||||
dvipdfmx $(TARGETBN).dvi
|
||||
$(PREVIEW)
|
||||
|
||||
clean:
|
||||
rm -f $(TARGETBN).pdf $(TARGETBN).dvi $(TARGETBN).aux $(TARGETBN).bbl $(TARGETBN).glo $(TARGETBN).gls $(TARGETBN).glsdefs $(TARGETBN).toc $(XBBFILES) $(TARGETBN).out
|
||||
|
||||
#.SECONDARY:
|
||||
21
docs/spec/ihk/README
Normal file
21
docs/spec/ihk/README
Normal file
@ -0,0 +1,21 @@
|
||||
1)WGでの説明との差異については、
|
||||
以下を指定することで該当部分を赤字で表示できます。
|
||||
|
||||
$ make HLDIFFWG=y
|
||||
|
||||
|
||||
2)運用ソフト連携部抜粋からの差異については、
|
||||
以下を指定することで該当部分を赤字で表示できます。
|
||||
|
||||
$ make HLDIFFOPS=y
|
||||
|
||||
|
||||
3)2017/6/30版と2017/7/21版との差異については、
|
||||
以下を指定することで該当部分を赤字で表示できます。
|
||||
|
||||
$ make HLDIFFJUL=y
|
||||
|
||||
4)2017/7/21版と2017/7/31版との差異については、
|
||||
以下を指定することで該当部分を赤字で表示できます。
|
||||
|
||||
$ make HLDIFFJULTWO=y
|
||||
BIN
docs/spec/ihk/figs/booting-sequence.pdf
Normal file
BIN
docs/spec/ihk/figs/booting-sequence.pdf
Normal file
Binary file not shown.
BIN
docs/spec/ihk/figs/cpu_register.pdf
Normal file
BIN
docs/spec/ihk/figs/cpu_register.pdf
Normal file
Binary file not shown.
BIN
docs/spec/ihk/figs/cpupa_reap.pdf
Normal file
BIN
docs/spec/ihk/figs/cpupa_reap.pdf
Normal file
Binary file not shown.
BIN
docs/spec/ihk/figs/cpupa_sow.pdf
Normal file
BIN
docs/spec/ihk/figs/cpupa_sow.pdf
Normal file
Binary file not shown.
BIN
docs/spec/ihk/figs/freeze.pdf
Normal file
BIN
docs/spec/ihk/figs/freeze.pdf
Normal file
Binary file not shown.
810
docs/spec/ihk/figs/ihk-design.eps
Normal file
810
docs/spec/ihk/figs/ihk-design.eps
Normal file
@ -0,0 +1,810 @@
|
||||
%!PS-Adobe-3.0 EPSF-3.0
|
||||
%%Creator: cairo 1.12.2 (http://cairographics.org)
|
||||
%%CreationDate: Sat May 31 15:02:11 2014
|
||||
%%Pages: 1
|
||||
%%DocumentData: Clean7Bit
|
||||
%%LanguageLevel: 2
|
||||
%%BoundingBox: 0 0 241 111
|
||||
%%EndComments
|
||||
%%BeginProlog
|
||||
save
|
||||
50 dict begin
|
||||
/q { gsave } bind def
|
||||
/Q { grestore } bind def
|
||||
/cm { 6 array astore concat } bind def
|
||||
/w { setlinewidth } bind def
|
||||
/J { setlinecap } bind def
|
||||
/j { setlinejoin } bind def
|
||||
/M { setmiterlimit } bind def
|
||||
/d { setdash } bind def
|
||||
/m { moveto } bind def
|
||||
/l { lineto } bind def
|
||||
/c { curveto } bind def
|
||||
/h { closepath } bind def
|
||||
/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
|
||||
0 exch rlineto 0 rlineto closepath } bind def
|
||||
/S { stroke } bind def
|
||||
/f { fill } bind def
|
||||
/f* { eofill } bind def
|
||||
/n { newpath } bind def
|
||||
/W { clip } bind def
|
||||
/W* { eoclip } bind def
|
||||
/BT { } bind def
|
||||
/ET { } bind def
|
||||
/pdfmark where { pop globaldict /?pdfmark /exec load put }
|
||||
{ globaldict begin /?pdfmark /pop load def /pdfmark
|
||||
/cleartomark load def end } ifelse
|
||||
/BDC { mark 3 1 roll /BDC pdfmark } bind def
|
||||
/EMC { mark /EMC pdfmark } bind def
|
||||
/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def
|
||||
/Tj { show currentpoint cairo_store_point } bind def
|
||||
/TJ {
|
||||
{
|
||||
dup
|
||||
type /stringtype eq
|
||||
{ show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse
|
||||
} forall
|
||||
currentpoint cairo_store_point
|
||||
} bind def
|
||||
/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore
|
||||
cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def
|
||||
/Tf { pop /cairo_font exch def /cairo_font_matrix where
|
||||
{ pop cairo_selectfont } if } bind def
|
||||
/Td { matrix translate cairo_font_matrix matrix concatmatrix dup
|
||||
/cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point
|
||||
/cairo_font where { pop cairo_selectfont } if } bind def
|
||||
/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def
|
||||
cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def
|
||||
/g { setgray } bind def
|
||||
/rg { setrgbcolor } bind def
|
||||
/d1 { setcachedevice } bind def
|
||||
%%EndProlog
|
||||
11 dict begin
|
||||
/FontType 42 def
|
||||
/FontName /DejaVuSans-Bold def
|
||||
/PaintType 0 def
|
||||
/FontMatrix [ 1 0 0 1 0 0 ] def
|
||||
/FontBBox [ 0 0 0 0 ] def
|
||||
/Encoding 256 array def
|
||||
0 1 255 { Encoding exch /.notdef put } for
|
||||
Encoding 32 /space put
|
||||
Encoding 45 /hyphen put
|
||||
Encoding 67 /C put
|
||||
Encoding 75 /K put
|
||||
Encoding 76 /L put
|
||||
Encoding 79 /O put
|
||||
Encoding 83 /S put
|
||||
Encoding 100 /d put
|
||||
Encoding 101 /e put
|
||||
Encoding 103 /g put
|
||||
Encoding 104 /h put
|
||||
Encoding 105 /i put
|
||||
Encoding 108 /l put
|
||||
Encoding 109 /m put
|
||||
Encoding 110 /n put
|
||||
Encoding 111 /o put
|
||||
Encoding 114 /r put
|
||||
Encoding 116 /t put
|
||||
Encoding 119 /w put
|
||||
Encoding 121 /y put
|
||||
/CharStrings 21 dict dup begin
|
||||
/.notdef 0 def
|
||||
/C 1 def
|
||||
/o 2 def
|
||||
/m 3 def
|
||||
/d 4 def
|
||||
/i 5 def
|
||||
/t 6 def
|
||||
/y 7 def
|
||||
/space 8 def
|
||||
/O 9 def
|
||||
/S 10 def
|
||||
/L 11 def
|
||||
/g 12 def
|
||||
/h 13 def
|
||||
/hyphen 14 def
|
||||
/w 15 def
|
||||
/e 16 def
|
||||
/K 17 def
|
||||
/r 18 def
|
||||
/n 19 def
|
||||
/l 20 def
|
||||
end readonly def
|
||||
/sfnts [
|
||||
<000100000009008000030010637674203eb9310800000de4000002546670676d5b026bf00000
|
||||
1038000000ac676c7966e9c2ceb70000009c00000d4868656164fefb4689000010e400000036
|
||||
686865610eaf07860000111c00000024686d74786c99099600001140000000546c6f63610000
|
||||
910c00001194000000586d617870065a062d000011ec00000020707265707c61a2e70000120c
|
||||
000007a700020066fe96046605a400030007001fbc00040126000000060126b6010805890204
|
||||
002fc4d4ec310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f27206
|
||||
2900000000010066ffe3055c05f00019003b401a0c10090016030d101916ae0310ae099c0398
|
||||
1a132d0c00062b1a10fcc432ec310010e4f4ec10fec410c511123911123930b42f1b5f1b0201
|
||||
5d250e0123200011100021321617112e0123220215141233323637055c6ae67dfe8bfe4c01b4
|
||||
01757de66a6bd073ceececce73d06b52373801a10165016601a13837fecb4944fef8e8e7fef8
|
||||
4449000000020058ffe30527047b000b0017002d401306a11200a10cca12981809420f4c0342
|
||||
153b1810fcecfcec310010e4f4ec10ee30b637133f19471303015d0122061514163332363534
|
||||
2603200011100021200011100002c1777d7d77757c7c7501210145febbfedffedefeb9014703
|
||||
7baba1a1ababa1a1ab0100fec8feecfeecfec80138011401140138000000000100aa000007b4
|
||||
047b0025006940291b151209040700200607180fdb20d02303ca1eb31c13070014120c080d06
|
||||
48140d12481f1b0d1d102610fc4bb00f5458b9001d00403859fc3cfcecfcec3911123931002f
|
||||
3c3ce4f43ce4ec32113911391117393001400f1f2730275027702780279027af27075d013e01
|
||||
333216151121113e013534262322060711211134262322061511211121153e0133321604ba44
|
||||
bb70c1cafe980101464e666f02fe9840526770fe98016842ab6774b203a6686deee3fd560248
|
||||
0d1c1a776ba89ffdda0248ba6ba99dfdd90460a45f60700000000002005cffe3050e06140010
|
||||
001c0038401b17a100d00e11a105d008980eca01a3031404000d02401a420b3b1d10fcecf4ec
|
||||
323231002fece4f4e4ec10e4ee30b44f1e601e02015d0111211121350e012322001110003332
|
||||
1603323635342623220615141603a60168fe984ab275cffef6010acf74b3a273797973727979
|
||||
03bc0258f9eca2635c01490103010301495dfcc9a8a0a0a8a8a0a0a80000000200ac00000212
|
||||
0614000300070029400e06dd00b304a30205010d0400100810fc3cec3231002fecf4ec304009
|
||||
500960097009800904015d1321112111211121ac0166fe9a0166fe9a0460fba00614fedc0000
|
||||
0001001b000003a4059e0013006d401a0e05080f03a11101b308a1000a080b09020904000d10
|
||||
120e541410fc4bb00f544bb010545b4bb011545b4bb012545b58b9000e004038593cc4fc3cc4
|
||||
c412393931002fc4ecf43cec32113939300140183f003f1302000200030f100f115002500350
|
||||
1560026003095d005d01112111211114163b011121222635112311331102330171fe8f3e5cb8
|
||||
fecdd4b1b2b2059efec2ff00fe254e37ff00b1d401db0100013e000000010019fe4605120460
|
||||
000f013640430f1d000f05040b0c0d030e1d050504031d040504021d0102050504021d03020f
|
||||
000f011d00000f250e0a021005000a9f08da0300b3100f0e0b0908050302010904001010d44b
|
||||
b00a544bb012545b4bb014545b58b9000000403859c41739310010e432f4ec11391239113930
|
||||
4b5358071005ed071008ed071008ed071005ed071005ed17390708ed59220140a40002000210
|
||||
021002200240025002650274028602800294029002a002b402b002b002b002c002c002d402d0
|
||||
02e002e002180401090305050506050705081601150515061507240524062407350035013803
|
||||
36063607390e390f450045014a034a044505450667026506860286058606880d880e97029605
|
||||
9606990d990ea802aa03aa04a90ea90fb501bc03b804b009b00abf0bb90db90ec802cb0dcb0e
|
||||
c90fd602e502395d005d1321090121010e012b01353332363f01190166012d01000166fe2947
|
||||
bd9bcf705b53170a0460fd0802f8fb36bb95eb3a4b1f000000020066ffe3066605f0000b0017
|
||||
0032401306ae1200ae0c9c129818092d0f37032d152b1810fcecfcec310010e4f4ec10ee3040
|
||||
0b0019171310192f193f1905015d012202151412333212353402032000111000212000111000
|
||||
0366b0c2c2b0b1c2c2b101680198fe68fe98fe99fe67019904d9fefcecebfefc0104ebec0104
|
||||
0117fe64fe95fe96fe64019c016a016b019c000000010093ffe3052d05f0002700a7402a0025
|
||||
041418110a0b1e1f041501c30415c318ae1104ae259c1198281e0a0b1f1b07001b190e140719
|
||||
222810dcecc4d4ecc4111239393939310010e4f4ec10fee510e5111739111239111239304054
|
||||
702901391d391e391f39204a1e4a1f4a20580a5d1d5c1e5e1f5e205a216a1c6f1d6f1e6f1f68
|
||||
206f206e21740b740c740d7c1f7c207c21960b970c9b1e9a1f9c209a21a60ba60ca60daa1daa
|
||||
1eaa1faa20aa21285d015d01112e012322061514161f011e0115140421222427111604333236
|
||||
3534262f012e0135342421320404cb7bea688a845975a4f9d2fedbfed38efee28f8f010b7c7e
|
||||
865b8895e0cf0120010e7b010405a6fec437384c503c43182132ccbcf7f1363501454c4d544e
|
||||
464c1e2130d2b2dff0250000000100bc000004e105d500050017400b02c0008d040116030003
|
||||
0610fcc4ec31002fe4ec30132111211121bc018102a4fbdb05d5fb4efedd0002005cfe46050e
|
||||
0479001c0028004b40261c0f030015cc16d4199f121da10cd009ca0db323a112da00d003260c
|
||||
000d0e40152042063b2910fcecc4f4ec323231002fe4e4ece4f4e4ec10fef5ee1112393930b4
|
||||
4f2a602a02015d250e0123220035340033321617352111100021222627111e01333236350322
|
||||
0615141633323635342603a64ab275cdfef4010ccd75b24a0168feabfebc69c4635eb45bb0a4
|
||||
ec6f7c7873707c7cbe625c0143fafb01415c63a6fc11fef2fee32021011736359aa40306a496
|
||||
9a9fa49596a4000100ac0000051206140017003540180d0400010adb12d015ca10a30e01020d
|
||||
0047110d0d0f101810fcec32f4ec31002f3cecf4e4ec1139393930b46019801902015d011121
|
||||
35113426272e012322061511211121113e013332160512fe980d1015482e7080fe9a016651b6
|
||||
6ec2c902aafd566f0199936e1a2327ad99fdd90614fda8625dee00000001006f01bc02e302df
|
||||
00030012b702ab00aa0401000410d4c4310010f4ec30132111216f0274fd8c02dffedd000000
|
||||
000100480000071d0460000c0182404a061d070807051d04050808070a340b0a040504093405
|
||||
05040b340203020a34090a030302021d03020c000c011d00000c250a050203060300df0b080c
|
||||
0b0a09080605040302010b07000d10d44bb00a544bb00b545b4bb00c545b58b9000000403859
|
||||
cc173931002f3cec32321739304b5358071005ed071008ed071008ed071005ed071005ed0710
|
||||
08ed071008ed071005ed59220140e6150a200a35023505300a470a400a400a5f0a6c0a7f0ab0
|
||||
02b002b005b005b00ac002c005d10ad00ae002e005ef0a171602140314041205100610071008
|
||||
1209140a160b260124022b0529062a082b09240b250c2f0e3500350134023b053a063a073708
|
||||
380c3f0e47024903460448054708480c5903560456085b09540b590c5f0e6602600462056006
|
||||
60076008640a600b750270047305700670077008740a700b8701880684088909860b8b0c8f0e
|
||||
94089b0c900ea602a903a604a905a508a909a60baa0cb601b906b608b90cc601c403ca04c906
|
||||
d502d903d704da05e508e909e60bea0c5b5d005d13211b01211b012101210b012148015cbcbd
|
||||
012bbcbd015cfed9fe79bdbcfe790460fcfc0304fd0402fcfba00302fcfe00020058ffe3050a
|
||||
047b0014001b004340210015d80109cc08d4059f0c01d7189f12ca0c981c1b150208150d0044
|
||||
020d0f3b1c10fcecf4ecc4111239310010e4f4ece410fef4ee10ee3930b42f1d3f1d02015d01
|
||||
15211e0133323637110e0123200011100021200005342623220607050afcbb0d9c8c71ed7d7f
|
||||
fe7ffed0feaf014b01220108013dfe9077606882100233667e7e4344feec3031013501170112
|
||||
013afec293667d756e000000000100bc0000067105d5000a00814013080502030300c1090605
|
||||
01040608011600030b10fcec32d4c4113931002f3cec32173930405616051606100c3c033b07
|
||||
4c034b075b0358055d076f036705670660066807600c7f0378077f07700c85048606aa071727
|
||||
0232023b0842024b085402590558085f08600266056d08700278057b087f088a058d08ab0813
|
||||
5d015d1321110121090121011121bc0181022b01bffd310319fe1efdaefe7f05d5fddf0221fd
|
||||
3dfcee024cfdb4000000000100ac000003ec047b001100374016110e0906070003c00b940eca
|
||||
09b3070a060d0008101210fc4bb0135458b90008ffc03859c4ec3231002fe4f4e4fcc4113911
|
||||
123930012e012322061511211121153e013332161703ec2f5d2f8a95fe9a016645b37d122a28
|
||||
032f1615b1a5fdfc0460b86e65030500000100ac00000512047b0017003540180d0400010adb
|
||||
12d015ca10b30e01020d0047110d0d0f101810fcec32f4ec31002f3ce4f4e4ec1139393930b4
|
||||
6019801902015d01112135113426272e012322061511211121153e013332160512fe980d1015
|
||||
482e7080fe9a016651b66ec2c902aafd566f019b916e1a2327ad99fdd90460a4625dee000000
|
||||
000100ac0000021206140003001eb700a302010d00100410fcec31002fec3040095005600570
|
||||
05800504015d13211121ac0166fe9a0614f9ec00000001660133016600bc00e90000013d00a2
|
||||
00fa031f00020002006601660002000200ac015400ec00bc006201660181048501540166016d
|
||||
04a400020166007f04cd000000020133006200710000002504a401bc00ba00e500660181018d
|
||||
0548055a0166016d000000000002000200f605c301f0053902390058046d043d04b2048104b2
|
||||
016601750466048100b00466043902d1049c047b04cf047b005801330166014c0166014c0002
|
||||
00ac009a014a0123009a029a01440119014402cd00c100000166013f019a013b05cb05cb00d5
|
||||
00d5015000ac00ac0077020a01c701f2012f015801b2012300f600f6011f012f0135023501ee
|
||||
01e70133009800d10358050a009a008f0112009800bc00cd00e500e500f2007304000166008f
|
||||
05d5022b05d500c300e100d700e50000006a01020000001d032d05d505d505f000a8006a00ec
|
||||
00e1010205d506140721046602f800ec018302a602f80123010201020112011f031f005e03cd
|
||||
046004c7048900ec01bc00ba01020333031f03420333035c0112011f05d5019a009a00e10666
|
||||
0179046004600460047b000000ec02c302b802cd00be00dd00d50000006a025c027b029a00dd
|
||||
01ae01ba01120000008501ae04600762041b009a069a045800ee009a029a00d102cd019a0150
|
||||
05cb05cb008b008b063100f6040600f0034c016004a800c10000002505c101000121074a0612
|
||||
0096014a078300a800000337007b0014000000c9010005c105c105c105c101000108061d0096
|
||||
0427039e00ec0102027d0133009800d10358017900cd02390362009c009c009c009301b80093
|
||||
00b80073000014000326b707060504030201002c2010b002254964b040515820c859212d2cb0
|
||||
02254964b040515820c859212d2c20100720b00050b00d7920b8ffff5058041b0559b0051cb0
|
||||
032508b0042523e120b00050b00d7920b8ffff5058041b0559b0051cb0032508e12d2c4b5058
|
||||
20b80128454459212d2cb002254560442d2c4b5358b00225b0022545445921212d2c45442d2c
|
||||
b00225b0022549b00525b005254960b0206368208a108a233a8a10653a2d000100000002547a
|
||||
fbd542385f0f3cf5001f080000000000cc44537f00000000cc44537ff772fcae0fcd09650001
|
||||
0008000000010000000000010000076dfe1d00001021f772f9320fcd00010000000000000000
|
||||
000000000000001504cd006605df0066057f0058085600aa05ba005c02be00ac03d3001b0537
|
||||
001902c9000006cd006605c30093051900bc05ba005c05b200ac0352006f07640048056d0058
|
||||
063300bc03f200ac05b200ac02be00ac000000000000004c000000e400000170000002500000
|
||||
02ec00000340000003f40000056c0000056c0000060000000728000007600000082c000008b4
|
||||
000008e400000aa400000b5000000c0c00000c8400000d0c00000d48000100000015034e002b
|
||||
0078000c0002001000400008000005ed02210008000441840280012600fe0003012500110003
|
||||
01240121003a0005012400fa000301230016000301220121003a0005012200fe00030121003a
|
||||
0003012000fa0003011f00bb0003011e00640003011d00fe0003011c00190003011b001e0003
|
||||
011a00fe0003011900fe0003011800fe0003011700fe0003011600fe000301150114000e0005
|
||||
011500fe00030114000e0003011300fe0003011200fe0003010f010e007d0005010f00fe0003
|
||||
010e007d0003010d010c008c0005010d00fe0003010d00c00004010c010b00590005010c008c
|
||||
0003010c00800004010b010a00260005010b00590003010b00400004010a00260003010900fe
|
||||
0003010800fe00030107000c00030107008000040106b2972e054113010600fa0003010500fa
|
||||
0003010400fe0003010300190003010200fa0003010100fa0003010040ff7d03ff3e03fefe03
|
||||
fcfb2c05fcfe03fb2c03fafe03f9f84705f97d03f84703f7fa03f6fe03f5fe03f4fe03f3bb03
|
||||
f2fe03f1fe03f0fe03ef1e03eefe03edec0a05edfe03ec0a03ec4004ebea0a05eb3203ea0a03
|
||||
e9fa03e8911605e8fe03e7fa03e6fa03e5911605e5fe03e4fe03e3fe03e2fe03e1fe03e0fe03
|
||||
dffe03defa03dddc1805dd6403dc1803dba01e05db6403dad92505dafa03d92503d8d12505d8
|
||||
fa03d7d61405d71603d6d51005d61403d51003d4d30b05d42003d30b03d2d12505d2fa03d191
|
||||
1605d12503d0940c05d02303cfce1405cf2603cecd1205ce1403cd1203cc911605cc1d03cb14
|
||||
03cac9bb05cafe03c9c85d05c9bb03c98004c840ffc72505c85d03c84004c72503c6fe03c564
|
||||
03c4901005c4fe03c31c03c2fe03c1fe03c0bf3a05c0fa03bfad1b05bf3a03bebd1a05be3203
|
||||
bdbc1105bd1a03bcbb0f05bc1103bbba0c05bb0f03ba0c03b9911605b9fe03b8fe03b71503b6
|
||||
1203b5fe03b4fe03b3fe03b21703b11903b01603afad1b05affa03aead1b05aefa03ad911605
|
||||
ad1b03ac911605ac7d03abfe03aa2603a9fe03a8fe03a7fe03a6fe03a50a03a4fe03a3a20e05
|
||||
a3fe03a20e03a24004a1a01e05a1fa03a0911605a01e039f9116059ffa039e940c059e1c039d
|
||||
fe039c9bbb059cfe039b9a5d059bbb039b80049a8f25059a5d039a400499fe0398972e0598fe
|
||||
03972e0396911605961e40ff0395940c05952003940c0393911605934b039291160592fe0391
|
||||
9010059116039010038f25038efe038dfe038cfe038bfe038afe0389fe038887250588fe0387
|
||||
250386fe0385fe0384320383960382fe0381fe038019037f0a037efe037dfe037cfe037bfa03
|
||||
7afa0379fe037776a60577fe0376a60375741b0575fa03741b0373fa03727d0371fe03706f2c
|
||||
056f2c036efa036dfa036cfa036bfe036afe0369fe0368630c0568320367fe0366320365640a
|
||||
0565fe03640a0364400463620a05630c03620a0361601505619603600111056015035f0a035e
|
||||
fe035dfe035c0111055cfe035b5a1b055bfe035a0111055a1b0359fe0358fa0357fe03560111
|
||||
0540ff56fe0355fe03541e035314035251190552fa0351011105511903504f190550fa034f4e
|
||||
11054f19034e11034d1e034c4b14054c15034b4a11054b14034a490e054a1103490e0348fa03
|
||||
4746140547150346140345fa0344430e05440f03430e034241250542fa034101110541250340
|
||||
3f0f0540fe033f3e0e053f0f033e0e033d3c0d053d16033c0d033b64033afe0339140338fe03
|
||||
37130336351a0536250335341405351a0335c004340a0d0534140334800433320c0533140333
|
||||
4004320c033130a60531fe033001110530a6032f0c032e13032d2c3a052dfa032c1525052c3a
|
||||
032b64032a640329fe0328150327171105271e03262003251e0324231105402b241e03231103
|
||||
22000d0522fa03210f032140042014031f0a031e1e031d1c19051d25031c0f13051c19031cb8
|
||||
01004091041b0d031a194b051a7d0319011105194b0318fe031711031615250516fa03150111
|
||||
0515250314640313110312fe031101110511fe031064030f0e10050f13030fc0040e10030e80
|
||||
040d0111050dfa030c32030b0a0d050b16030b80040a0d030a400409fe0308fe0307fe030605
|
||||
0a0506fe03050a0305400404fa030364030201110502fe0301000d05011103000d0301b80164
|
||||
858d012b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b002b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b1d0000>
|
||||
] def
|
||||
/f-0-0 currentdict end definefont pop
|
||||
11 dict begin
|
||||
/FontType 42 def
|
||||
/FontName /DejaVuSans def
|
||||
/PaintType 0 def
|
||||
/FontMatrix [ 1 0 0 1 0 0 ] def
|
||||
/FontBBox [ 0 0 0 0 ] def
|
||||
/Encoding 256 array def
|
||||
0 1 255 { Encoding exch /.notdef put } for
|
||||
Encoding 32 /space put
|
||||
Encoding 45 /hyphen put
|
||||
Encoding 49 /one put
|
||||
Encoding 67 /C put
|
||||
Encoding 69 /E put
|
||||
Encoding 72 /H put
|
||||
Encoding 73 /I put
|
||||
Encoding 75 /K put
|
||||
Encoding 76 /L put
|
||||
Encoding 77 /M put
|
||||
Encoding 80 /P put
|
||||
Encoding 83 /S put
|
||||
Encoding 87 /W put
|
||||
Encoding 97 /a put
|
||||
Encoding 99 /c put
|
||||
Encoding 100 /d put
|
||||
Encoding 101 /e put
|
||||
Encoding 103 /g put
|
||||
Encoding 105 /i put
|
||||
Encoding 108 /l put
|
||||
Encoding 109 /m put
|
||||
Encoding 110 /n put
|
||||
Encoding 111 /o put
|
||||
Encoding 114 /r put
|
||||
Encoding 115 /s put
|
||||
Encoding 116 /t put
|
||||
Encoding 117 /u put
|
||||
Encoding 118 /v put
|
||||
Encoding 120 /x put
|
||||
/CharStrings 30 dict dup begin
|
||||
/.notdef 0 def
|
||||
/I 1 def
|
||||
/H 2 def
|
||||
/K 3 def
|
||||
/hyphen 4 def
|
||||
/M 5 def
|
||||
/a 6 def
|
||||
/s 7 def
|
||||
/t 8 def
|
||||
/e 9 def
|
||||
/r 10 def
|
||||
/P 11 def
|
||||
/i 12 def
|
||||
/o 13 def
|
||||
/n 14 def
|
||||
/g 15 def
|
||||
/C 16 def
|
||||
/S 17 def
|
||||
/l 18 def
|
||||
/v 19 def
|
||||
/d 20 def
|
||||
/E 21 def
|
||||
/x 22 def
|
||||
/c 23 def
|
||||
/u 24 def
|
||||
/one 25 def
|
||||
/space 26 def
|
||||
/m 27 def
|
||||
/L 28 def
|
||||
/W 29 def
|
||||
end readonly def
|
||||
/sfnts [
|
||||
<0001000000090080000300106376742000691d3900001490000001fe6670676d7134766a0000
|
||||
1690000000ab676c7966192e18be0000009c000013f468656164fd0346870000173c00000036
|
||||
686865610cb8066f0000177400000024686d74788c78109400001798000000786c6f63610001
|
||||
2bf8000018100000007c6d617870048b06710000188c00000020707265703b07f100000018ac
|
||||
0000056800020066fe96046605a400030007001a400c04fb0006fb0108057f0204002fc4d4ec
|
||||
310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f2720629000100c9
|
||||
0000019305d50003002eb700af02011c00040410fc4bb0105458b9000000403859ec31002fec
|
||||
3001400d30054005500560058f059f05065d13331123c9caca05d5fa2b00000100c90000053b
|
||||
05d5000b002c4014089502ad0400810a0607031c053809011c00040c10fcec32fcec3231002f
|
||||
3ce432fcec30b2500d01015d133311211133112311211123c9ca02decacafd22ca05d5fd9c02
|
||||
64fa2b02c7fd3900000100c90000056a05d5000a00ef40280811050605071106060503110405
|
||||
04021105050442080502030300af09060501040608011c00040b10fcec32d4c4113931002f3c
|
||||
ec321739304b5358071004ed071005ed071005ed071004ed5922b2080301015d409214020104
|
||||
0209081602280528083702360534084702460543085502670276027705830288058f0894029b
|
||||
08e702150603090509061b031907050a030a07180328052b062a073604360536063507300c41
|
||||
034004450540064007400c62036004680567077705700c8b038b058e068f078f0c9a039d069d
|
||||
07b603b507c503c507d703d607e803e904e805ea06f703f805f9062c5d71005d711333110121
|
||||
090121011123c9ca029e0104fd1b031afef6fd33ca05d5fd890277fd48fce302cffd31000000
|
||||
0001006401df027f028300030011b6009c020401000410dccc310010d4ec301321152164021b
|
||||
fde50283a400000100c90000061f05d5000c00bf403403110708070211010208080702110302
|
||||
090a0901110a0a09420a070203080300af080b050908030201050a061c043e0a1c00040d10fc
|
||||
ecfcec11173931002f3cc4ec32111739304b5358071005ed071008ed071008ed071005ed5922
|
||||
b2700e01015d405603070f080f09020a15021407130a260226072007260a200a3407350a6902
|
||||
7c027b07790a80028207820a90021604010b0313011b0323012c032708280934013c03560859
|
||||
0965086a097608790981018d0395019b03145d005d13210901211123110123011123c9012d01
|
||||
7d017f012dc5fe7fcbfe7fc405d5fc0803f8fa2b051ffc000400fae100000002007bffe3042d
|
||||
047b000a002500bc4027191f0b17090e00a91706b90e1120861fba1cb923b8118c170c001703
|
||||
180d09080b1f030814452610fcecccd4ec323211393931002fc4e4f4fcf4ec10c6ee10ee1139
|
||||
1139123930406e301d301e301f3020302130223f27401d401e401f402040214022501d501e50
|
||||
1f50205021502250277027851d871e871f8720872185229027a027f0271e301e301f30203021
|
||||
401e401f40204021501e501f50205021601e601f60206021701e701f70207021801e801f8020
|
||||
8021185d015d0122061514163332363d01371123350e01232226353436332135342623220607
|
||||
353e0133321602bedfac816f99b9b8b83fbc88accbfdfb0102a79760b65465be5af3f0023366
|
||||
7b6273d9b4294cfd81aa6661c1a2bdc0127f8b2e2eaa2727fc000001006fffe303c7047b0027
|
||||
00e7403c0d0c020e0b531f1e080902070a531f1f1e420a0b1e1f041500860189041486158918
|
||||
b91104b925b8118c281e0a0b1f1b0700521b080e07081422452810fcc4ecd4ece41112393939
|
||||
39310010e4f4ec10fef5ee10f5ee121739304b535807100eed111739070eed1117395922b200
|
||||
2701015d406d1c0a1c0b1c0c2e092c0a2c0b2c0c3b093b0a3b0b3b0c0b200020012402280a28
|
||||
0b2a132f142f152a16281e281f292029212427860a860b860c860d12000000010202060a060b
|
||||
030c030d030e030f03100319031a031b031c041d09272f293f295f297f2980299029a029f029
|
||||
185d005d7101152e012322061514161f011e0115140623222627351e013332363534262f012e
|
||||
01353436333216038b4ea85a898962943fc4a5f7d85ac36c66c661828c65ab40ab98e0ce66b4
|
||||
043fae282854544049210e2a99899cb62323be353559514b50250f2495829eac1e0000000001
|
||||
0037000002f2059e0013003840190e05080f03a9001101bc08870a0b08090204000810120e46
|
||||
1410fc3cc4fc3cc432393931002fecf43cc4ec3211393930b2af1501015d0111211521111416
|
||||
3b01152322263511233533110177017bfe854b73bdbdd5a28787059efec28ffda0894e9a9fd2
|
||||
02608f013e00000000020071ffe3047f047b0014001b00704024001501098608880515a90105
|
||||
b90c01bb18b912b80c8c1c1b1502081508004b02120f451c10fcecf4ecc4111239310010e4f4
|
||||
ece410ee10ee10f4ee1112393040293f1d701da01dd01df01d053f003f013f023f153f1b052c
|
||||
072f082f092c0a6f006f016f026f156f1b095d71015d0115211e0133323637150e0123200011
|
||||
1000333200072e0123220607047ffcb20ccdb76ac76263d06bfef4fec70129fce20107b802a5
|
||||
889ab90e025e5abec73434ae2a2c0138010a01130143feddc497b4ae9e00000100ba0000034a
|
||||
047b001100304014060b0700110b03870eb809bc070a06080008461210fcc4ec3231002fe4f4
|
||||
ecc4d4cc11123930b450139f1302015d012e012322061511231133153e0133321617034a1f49
|
||||
2c9ca7b9b93aba85132e1c03b41211cbbefdb20460ae666305050000000200c90000048d05d5
|
||||
00080013003a40180195100095098112100a0802040005190d3f11001c09041410fcec32fcec
|
||||
11173931002ff4ecd4ec30400b0f151f153f155f15af1505015d011133323635342623252132
|
||||
041514042b0111230193fe8d9a9a8dfe3801c8fb0101fefffbfeca052ffdcf92878692a6e3db
|
||||
dde2fda8000200c100000179061400030007002b400e06be04b100bc020501080400460810fc
|
||||
3cec3231002fe4fcec30400b1009400950096009700905015d1333112311331523c1b8b8b8b8
|
||||
0460fba00614e90000020071ffe30475047b000b0017004a401306b91200b90cb8128c180912
|
||||
0f51031215451810fcecf4ec310010e4f4ec10ee3040233f197b007b067f077f087f097f0a7f
|
||||
0b7b0c7f0d7f0e7f0f7f107f117b12a019f01911015d01220615141633323635342627320011
|
||||
1000232200111000027394acab9593acac93f00112feeef0f1feef011103dfe7c9c9e7e8c8c7
|
||||
e99cfec8feecfeedfec701390113011401380000000100ba00000464047b0013003640190309
|
||||
00030e0106870e11b80cbc0a010208004e0d09080b461410fcec32f4ec31002f3ce4f4c4ec11
|
||||
12173930b46015cf1502015d0111231134262322061511231133153e013332160464b87c7c95
|
||||
acb9b942b375c1c602a4fd5c029e9f9ebea4fd870460ae6564ef00020071fe56045a047b000b
|
||||
0028004a4023190c1d0912861316b90f03b92623b827bc09b90fbd1a1d261900080c47061212
|
||||
20452910fcc4ecf4ec323231002fc4e4ece4f4c4ec10fed5ee1112393930b6602a802aa02a03
|
||||
015d01342623220615141633323617100221222627351e013332363d010e0123220211101233
|
||||
321617353303a2a59594a5a59495a5b8fefefa61ac51519e52b5b439b27ccefcfcce7cb239b8
|
||||
023dc8dcdcc8c7dcdcebfee2fee91d1eb32c2abdbf5b6362013a01030104013a6263aa000001
|
||||
0073ffe3052705f000190036401a0da10eae0a951101a100ae04951791118c1a07190d003014
|
||||
101a10fcec32ec310010e4f4ecf4ec10eef6ee30b40f1b1f1b02015d01152e01232000111000
|
||||
21323637150e01232000111000213216052766e782ff00fef00110010082e7666aed84feadfe
|
||||
7a0186015386ed0562d55f5efec7fed8fed9fec75e5fd34848019f01670168019f4700000001
|
||||
0087ffe304a205f00027007e403c0d0c020e0b021e1f1e080902070a021f1f1e420a0b1e1f04
|
||||
15010015a11494189511049500942591118c281e0a0b1f1b0700221b190e2d071914222810dc
|
||||
c4ecfcece4111239393939310010e4f4e4ec10eef6ee10c6111739304b535807100eed111739
|
||||
07100eed1117395922b20f2901015db61f292f294f29035d01152e012322061514161f011e01
|
||||
15140421222627351e013332363534262f012e01353424333216044873cc5fa5b377a67ae2d7
|
||||
feddfee76aef807bec72adbc879a7be2ca0117f569da05a4c53736807663651f192bd9b6d9e0
|
||||
302fd04546887e6e7c1f182dc0abc6e42600000100c100000179061400030022b70097020108
|
||||
00460410fcec31002fec30400d10054005500560057005f00506015d13331123c1b8b80614f9
|
||||
ec000001003d0000047f0460000600fb40270311040504021101020505040211030206000601
|
||||
1100000642020300bf0506050302010504000710d44bb00a5458b90000004038594bb014544b
|
||||
b015545b58b90000ffc03859c4173931002fec3239304b5358071005ed071008ed071008ed07
|
||||
1005ed592201408e48026a027b027f02860280029102a402080600060109030904150015011a
|
||||
031a0426002601290329042008350035013a033a043008460046014903490446054806400856
|
||||
0056015903590450086600660169036904670568066008750074017b037b0475057a06850085
|
||||
0189038904890586069600960197029a03980498059706a805a706b008c008df08ff083e5d00
|
||||
5d133309013301233dc3015e015ec3fe5cfa0460fc5403acfba0000000020071ffe3045a0614
|
||||
0010001c003840191ab9000e14b905088c0eb801970317040008024711120b451d10fcecf4ec
|
||||
323231002fece4f4c4ec10c4ee30b6601e801ea01e03015d0111331123350e01232202111000
|
||||
33321601141633323635342623220603a2b8b83ab17ccbff00ffcb7cb1fdc7a79292a8a89292
|
||||
a703b6025ef9eca86461014401080108014461fe15cbe7e7cbcbe7e7000100c90000048b05d5
|
||||
000b002e401506950402950081089504ad0a05010907031c00040c10fcec32d4c4c431002fec
|
||||
ecf4ec10ee30b21f0d01015d132115211121152111211521c903b0fd1a02c7fd3902f8fc3e05
|
||||
d5aafe46aafde3aa00000001003b000004790460000b01434046051106070604110304070706
|
||||
0411050401020103110202010b110001000a11090a0101000a110b0a0708070911080807420a
|
||||
070401040800bf05020a0704010408000208060c10d44bb00a544bb00f545b4bb010545b4bb0
|
||||
11545b58b90006004038594bb0145458b90006ffc03859c4d4c411173931002f3cec32173930
|
||||
4b5358071005ed071008ed071008ed071005ed071005ed071008ed071008ed071005ed592201
|
||||
40980a04040a1a04150a260a3d04310a55045707580a660a76017a047607740a8d04820a9904
|
||||
9f049707920a900aa601a904af04a507a30aa00a1c0a03040505090a0b1a03150515091a0b29
|
||||
03260525092a0b200d3a013903370534073609390b300d4903460545094a0b400d5900560159
|
||||
02590357055606590756085609590b500d6f0d78017f0d9b019407ab01a407b00dcf0ddf0dff
|
||||
0d2f5d005d09022309012309013309010464fe6b01aad9febafebad901b3fe72d90129012904
|
||||
60fddffdc101b8fe48024a0216fe71018f0000010071ffe303e7047b0019003f401b00860188
|
||||
040e860d880ab91104b917b8118c1a07120d004814451a10fce432ec310010e4f4ec10fef4ee
|
||||
10f5ee30400b0f1b101b801b901ba01b05015d01152e0123220615141633323637150e012322
|
||||
0011100021321603e74e9d50b3c6c6b3509d4e4da55dfdfed6012d010655a20435ac2b2be3cd
|
||||
cde32b2baa2424013e010e0112013a230000000200aeffe30458047b00130014003b401c0309
|
||||
00030e0106870e118c0a01bc14b80c0d0908140b4e020800461510fcecf439ec3231002fe4e4
|
||||
32f4c4ec1112173930b46f15c01502015d1311331114163332363511331123350e0123222601
|
||||
aeb87c7c95adb8b843b175c1c801cf01ba02a6fd619f9fbea4027bfba0ac6663f003a8000001
|
||||
00e10000045a05d5000a004040154203a00402a005810700a009081f061c03001f010b10d44b
|
||||
b00f5458b9000100403859ecc4fcec31002fec32f4ecd4ec304b5358592201b40f030f04025d
|
||||
3721110535253311211521fe014afe990165ca014afca4aa047348b848fad5aa0000000100ba
|
||||
0000071d047b0022005a4026061209180f00061d07150c871d2003b81bbc19100700110f0808
|
||||
065011080f501c18081a462310fcec32fcfcfcec11123931002f3c3ce4f43cc4ec3211121739
|
||||
3040133024502470249024a024a024bf24df24ff2409015d013e013332161511231134262322
|
||||
061511231134262322061511231133153e01333216042945c082afbeb972758fa6b972778da6
|
||||
b9b93fb0797aab03897c76f5e2fd5c029ea19cbea4fd87029ea29bbfa3fd870460ae67627c00
|
||||
0000000100c90000046a05d500050025400c0295008104011c033a00040610fcecec31002fe4
|
||||
ec304009300750078003800404015d133311211521c9ca02d7fc5f05d5fad5aa000100440000
|
||||
07a605d5000c017b4049051a0605090a09041a0a09031a0a0b0a021a01020b0b0a0611070807
|
||||
05110405080807021103020c000c011100000c420a050203060300af0b080c0b0a0908060504
|
||||
0302010b07000d10d4cc173931002f3cec32321739304b5358071005ed071008ed071008ed07
|
||||
1005ed071008ed071005ed0705ed071008ed5922b2000e01015d40f206020605020a000a000a
|
||||
120a2805240a200a3e023e05340a300a4c024d05420a400a59026a026b05670a600a7b027f02
|
||||
7c057f05800a960295051d070009020803000406050005000601070408000807090009040a0a
|
||||
0c000e1a0315041508190c100e200421052006200720082309240a250b200e200e3c023a0335
|
||||
04330530083609390b3f0c300e460046014a0240044505400542064207420840084009440a4d
|
||||
0c400e400e58025608590c500e66026703610462056006600760086409640a640b770076017b
|
||||
027803770474057906790777087008780c7f0c7f0e860287038804890585098a0b8f0e97049f
|
||||
0eaf0e5b5d005d1333090133090133012309012344cc013a0139e3013a0139cdfe89fefec5fe
|
||||
c2fe05d5fb1204eefb1204eefa2b0510faf00000013500b800cb00cb00c100aa009c01a600b8
|
||||
00660000007100cb00a002b20085007500b800c301cb0189022d00cb00a600f000d300aa0087
|
||||
00cb03aa0400014a003300cb000000d9050200f4015400b4009c01390114013907060400044e
|
||||
04b4045204b804e704cd0037047304cd04600473013303a2055605a60556053903c5021200c9
|
||||
001f00b801df007300ba03e9033303bc0444040e00df03cd03aa00e503aa0404000000cb008f
|
||||
00a4007b00b80014016f007f027b0252008f00c705cd009a009a006f00cb00cd019e01d300f0
|
||||
00ba018300d5009803040248009e01d500c100cb00f600830354027f00000333026600d300c7
|
||||
00a400cd008f009a0073040005d5010a00fe022b00a400b4009c00000062009c0000001d032d
|
||||
05d505d505d505f0007f007b005400a406b80614072301d300b800cb00a601c301ec069300a0
|
||||
00d3035c037103db0185042304a80448008f0139011401390360008f05d5019a061407230666
|
||||
0179046004600460047b009c00000277046001aa00e904600762007b00c5007f027b000000b4
|
||||
025205cd006600bc00660077061000cd013b01850389008f007b0000001d00cd074a042f009c
|
||||
009c0000077d006f0000006f0335006a006f007b00ae00b2002d0396008f027b00f600830354
|
||||
063705f6008f009c04e10266008f018d02f600cd03440029006604ee00730000140000960000
|
||||
b707060504030201002c2010b002254964b040515820c859212d2cb002254964b040515820c8
|
||||
59212d2c20100720b00050b00d7920b8ffff5058041b0559b0051cb0032508b0042523e120b0
|
||||
0050b00d7920b8ffff5058041b0559b0051cb0032508e12d2c4b505820b0fd454459212d2cb0
|
||||
02254560442d2c4b5358b00225b0022545445921212d2c45442d2cb00225b0022549b00525b0
|
||||
05254960b0206368208a108a233a8a10653a2d00000100000002547a3baaaa525f0f3cf5001f
|
||||
080000000000cc44538600000000cc445386f7d6fcae0d720955000000080000000100000000
|
||||
00010000076dfe1d00000de2f7d6fa510d7200010000000000000000000000000000001e04cd
|
||||
0066025c00c9060400c9053f00c902e3006406e700c904e7007b042b006f0323003704ec0071
|
||||
034a00ba04d300c9023900c104e50071051200ba051400710596007305140087023900c104bc
|
||||
003d05140071050e00c904bc003b04660071051200ae051700e1028b000007cb00ba047500c9
|
||||
07e9004400000000000000440000008c000000e8000002100000023c00000338000004640000
|
||||
05c40000064000000714000007840000080400000854000008f80000097000000a3800000ad0
|
||||
00000bc800000c0400000d2800000dc000000e2000000fa40000103c000010c0000011300000
|
||||
1130000011f400001238000013f400010000001e0354002b0068000c00020010009900080000
|
||||
0415021600080004b8028040fffbfe03fa1403f92503f83203f79603f60e03f5fe03f4fe03f3
|
||||
2503f20e03f19603f02503ef8a4105effe03ee9603ed9603ecfa03ebfa03eafe03e93a03e842
|
||||
03e7fe03e63203e5e45305e59603e48a4105e45303e3e22f05e3fa03e22f03e1fe03e0fe03df
|
||||
3203de1403dd9603dcfe03db1203da7d03d9bb03d8fe03d68a4105d67d03d5d44705d57d03d4
|
||||
4703d3d21b05d3fe03d21b03d1fe03d0fe03cffe03cefe03cd9603cccb1e05ccfe03cb1e03ca
|
||||
3203c9fe03c6851105c61c03c51603c4fe03c3fe03c2fe03c1fe03c0fe03bffe03befe03bdfe
|
||||
03bcfe03bbfe03ba1103b9862505b9fe03b8b7bb05b8fe03b7b65d05b7bb03b78004b6b52505
|
||||
b65d40ff03b64004b52503b4fe03b39603b2fe03b1fe03b0fe03affe03ae6403ad0e03acab25
|
||||
05ac6403abaa1205ab2503aa1203a98a4105a9fa03a8fe03a7fe03a6fe03a51203a4fe03a3a2
|
||||
0e05a33203a20e03a16403a08a4105a096039ffe039e9d0c059efe039d0c039c9b19059c6403
|
||||
9b9a10059b19039a1003990a0398fe0397960d0597fe03960d03958a410595960394930e0594
|
||||
2803930e0392fa039190bb0591fe03908f5d0590bb039080048f8e25058f5d038f40048e2503
|
||||
8dfe038c8b2e058cfe038b2e038a8625058a410389880b05891403880b038786250587640386
|
||||
85110586250385110384fe038382110583fe0382110381fe0380fe037ffe0340ff7e7d7d057e
|
||||
fe037d7d037c64037b5415057b25037afe0379fe03780e03770c03760a0375fe0374fa0373fa
|
||||
0372fa0371fa0370fe036ffe036efe036c21036bfe036a1142056a530369fe03687d03671142
|
||||
0566fe0365fe0364fe0363fe0362fe03613a0360fa035e0c035dfe035bfe035afe0359580a05
|
||||
59fa03580a035716190557320356fe035554150555420354150353011005531803521403514a
|
||||
130551fe03500b034ffe034e4d10054efe034d10034cfe034b4a13054bfe034a4910054a1303
|
||||
491d0d05491003480d0347fe0346960345960344fe0343022d0543fa0342bb03414b0340fe03
|
||||
3ffe033e3d12053e14033d3c0f053d12033c3b0d053c40ff0f033b0d033afe0339fe03383714
|
||||
0538fa033736100537140336350b05361003350b03341e03330d0332310b0532fe03310b0330
|
||||
2f0b05300d032f0b032e2d09052e10032d09032c32032b2a25052b64032a2912052a25032912
|
||||
032827250528410327250326250b05260f03250b0324fe0323fe03220f032101100521120320
|
||||
64031ffa031e1d0d051e64031d0d031c1142051cfe031bfa031a42031911420519fe03186403
|
||||
1716190517fe031601100516190315fe0314fe0313fe031211420512fe0311022d0511420310
|
||||
7d030f64030efe030d0c16050dfe030c0110050c16030bfe030a100309fe0308022d0508fe03
|
||||
0714030664030401100504fe03401503022d0503fe0302011005022d0301100300fe0301b801
|
||||
64858d012b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b002b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b1d00>
|
||||
] def
|
||||
/f-1-0 currentdict end definefont pop
|
||||
11 dict begin
|
||||
/FontType 42 def
|
||||
/FontName /VL-Gothic-Regular def
|
||||
/PaintType 0 def
|
||||
/FontMatrix [ 1 0 0 1 0 0 ] def
|
||||
/FontBBox [ 0 0 0 0 ] def
|
||||
/Encoding 256 array def
|
||||
0 1 255 { Encoding exch /.notdef put } for
|
||||
Encoding 46 /period put
|
||||
/CharStrings 2 dict dup begin
|
||||
/.notdef 0 def
|
||||
/period 1 def
|
||||
end readonly def
|
||||
/sfnts [
|
||||
<0001000000080080000300006376742000210279000000fc00000004676c7966d1b395150000
|
||||
008c0000007068656164fc6046fe00000100000000366868656108f102ea0000013800000024
|
||||
686d747803a400da0000015c000000086c6f6361000000c8000001640000000c6d617870002c
|
||||
019f000001700000002070726570b98f84000000019000000007000200210000016e029a0003
|
||||
0007002eb101002f3cb2070400ed32b10605dc3cb2030200ed3200b103002f3cb2050400ed32
|
||||
b2070601fc3cb2010200ed32331121112521112121014dfed4010bfef5029afd662102580000
|
||||
000100b90000013b00960003000033353315b982969600000021027900010000000206e93a38
|
||||
693f5f0f3cf5001f03e800000000cc12fe2700000000cc12fe27fff4feae0512043300000008
|
||||
00020001000000000001000003e8fef200000537fff4febe0512000100000000000000000000
|
||||
00000000000201b0002101f400b90000000000000058000000700001000000020100001a006e
|
||||
000a000200000000000000000004002e00010001b901ff00008d850000>
|
||||
] def
|
||||
/f-2-0 currentdict end definefont pop
|
||||
%%Page: 1 1
|
||||
%%BeginPageSetup
|
||||
%%PageBoundingBox: 0 0 241 111
|
||||
%%EndPageSetup
|
||||
q 0 0 241 111 rectclip q
|
||||
0.501961 0.701961 1 rg
|
||||
0.301 100.012 79.703 -83.402 re f
|
||||
0 g
|
||||
0.6 w
|
||||
0 J
|
||||
1 j
|
||||
[] 0.0 d
|
||||
4 M q 1 0 0 -1 0 110.000488 cm
|
||||
0.301 9.988 79.703 83.402 re S Q
|
||||
BT
|
||||
9.6 0 0 9.6 0.438692 92.310254 Tm
|
||||
/f-0-0 1 Tf
|
||||
[(Comm)-3(odit)-3(y OS)]TJ
|
||||
ET
|
||||
1 0.933333 0.666667 rg
|
||||
92 100.008 72 -83.398 re f
|
||||
0 g
|
||||
0.6 w
|
||||
0 j
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
92 9.992 72 83.398 re S Q
|
||||
1 0.933333 0.666667 rg
|
||||
168 100.008 72 -83.398 re f
|
||||
0 g
|
||||
[ 1.8 1.8] 0 d
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
168 9.992 72 83.398 re S Q
|
||||
1 g
|
||||
4.301 84.008 72 -63.699 re f
|
||||
0 g
|
||||
0.6 w
|
||||
[] 0.0 d
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
4.301 25.992 72 63.699 re S Q
|
||||
BT
|
||||
9.6 0 0 9.6 14.491817 74.431208 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(IHK)105(-Master)]TJ
|
||||
ET
|
||||
1 g
|
||||
8.301 68.309 64 -24 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
8.301 41.691 64 24 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 21.467989 59.510254 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(P)44(artition)]TJ
|
||||
-0.108398 -1.25 Td
|
||||
[(Manager)]TJ
|
||||
ET
|
||||
1 g
|
||||
8.602 36.008 64 -11.398 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
8.602 73.992 64 11.398 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 32.69338 28.41767 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(IK)54(C)]TJ
|
||||
9.6 0 0 9.6 92.610567 92.310254 Tm
|
||||
/f-0-0 1 Tf
|
||||
[(Light)-3(-weigh)-3(t )]TJ
|
||||
1.74707 -1.25 Td
|
||||
[(K)17(ernel)]TJ
|
||||
6.169596 1.25 Td
|
||||
[(Light)-3(-weigh)-3(t )]TJ
|
||||
1.74707 -1.25 Td
|
||||
[(K)17(ernel)]TJ
|
||||
ET
|
||||
1 g
|
||||
96 76.008 64 -55.398 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
96 33.992 64 55.398 re S Q
|
||||
1 g
|
||||
172 76.008 64 -55.699 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
172 33.992 64 55.699 re S Q
|
||||
BT
|
||||
9.6 0 0 9.6 181.482442 66.431208 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(IHK)105(-Slave)]TJ
|
||||
-7.916667 0 Td
|
||||
[(IHK)105(-Slave)]TJ
|
||||
ET
|
||||
1 g
|
||||
100.785 64.61 55.215 -24 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
100.785 45.391 55.215 24 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 104.639083 56.310254 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(P)44(artitioned)]TJ
|
||||
0.254883 -1.25 Td
|
||||
[(Ex)30(ecution)]TJ
|
||||
ET
|
||||
1 g
|
||||
176.785 64.008 55.215 -24 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
176.785 45.992 55.215 24 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 180.639083 55.710254 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(P)44(artitioned)]TJ
|
||||
0.254883 -1.25 Td
|
||||
[(Ex)30(ecution)]TJ
|
||||
ET
|
||||
1 g
|
||||
100 36.012 56 -11.402 re f
|
||||
0 g
|
||||
0.6 w
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
100 73.988 56 11.402 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 121.280098 28.310254 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(IK)54(C)]TJ
|
||||
ET
|
||||
1 g
|
||||
177.016 36.118 56 -11.398 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
177.016 73.883 56 11.398 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 198.29338 28.41767 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(IK)54(C)]TJ
|
||||
ET
|
||||
1 g
|
||||
0.301 12.309 32 -12 re f
|
||||
0 g
|
||||
0.6 w
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
0.301 97.691 32 12 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 6.262911 4.417676 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(Cor)20(e)]TJ
|
||||
ET
|
||||
1 g
|
||||
48 12.61 32 -12 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
48 97.391 32 12 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 53.575411 4.417676 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(Cor)20(e)]TJ
|
||||
ET
|
||||
1 g
|
||||
92 12.61 28 -12 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
92 97.391 28 12 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 95.975411 4.417676 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(Cor)20(e)]TJ
|
||||
ET
|
||||
1 g
|
||||
136 12.61 28 -12 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
136 97.391 28 12 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 139.975411 4.417676 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(Cor)20(e)]TJ
|
||||
ET
|
||||
1 g
|
||||
168 12.61 28 -12 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
168 97.391 28 12 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 171.975411 4.417676 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(Cor)20(e)]TJ
|
||||
ET
|
||||
1 g
|
||||
212 12.61 28 -12 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
212 97.391 28 12 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 215.975411 4.417676 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(Cor)20(e)]TJ
|
||||
8 0 0 8 32.208614 6.710254 Tm
|
||||
/f-2-0 1 Tf
|
||||
(....)Tj
|
||||
10.954687 0.0999023 Td
|
||||
[(....)-7489(....)]TJ
|
||||
ET
|
||||
0.6 g
|
||||
0.8 w
|
||||
[ 2.4 2.4] 0 d
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
96.703 9.289 m 100.465 5.289 l 232.141 5.289 l 235.902 9.289 l S Q
|
||||
0 g
|
||||
BT
|
||||
8.8 0 0 8.8 133.029708 103.585254 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(1 or mor)19(e L)91(WKs)]TJ
|
||||
ET
|
||||
Q Q
|
||||
showpage
|
||||
%%Trailer
|
||||
end restore
|
||||
%%EOF
|
||||
BIN
docs/spec/ihk/figs/ihk-dev-os.pdf
Normal file
BIN
docs/spec/ihk/figs/ihk-dev-os.pdf
Normal file
Binary file not shown.
BIN
docs/spec/ihk/figs/ihk-os_creation.pdf
Normal file
BIN
docs/spec/ihk/figs/ihk-os_creation.pdf
Normal file
Binary file not shown.
BIN
docs/spec/ihk/figs/ikc_map.pdf
Normal file
BIN
docs/spec/ihk/figs/ikc_map.pdf
Normal file
Binary file not shown.
BIN
docs/spec/ihk/figs/memory_map.pdf
Normal file
BIN
docs/spec/ihk/figs/memory_map.pdf
Normal file
Binary file not shown.
BIN
docs/spec/ihk/figs/monitor.pdf
Normal file
BIN
docs/spec/ihk/figs/monitor.pdf
Normal file
Binary file not shown.
BIN
docs/spec/ihk/figs/source_ihk.pdf
Normal file
BIN
docs/spec/ihk/figs/source_ihk.pdf
Normal file
Binary file not shown.
BIN
docs/spec/ihk/figs/thaw.pdf
Normal file
BIN
docs/spec/ihk/figs/thaw.pdf
Normal file
Binary file not shown.
45
docs/spec/ihk/glossary.tex
Normal file
45
docs/spec/ihk/glossary.tex
Normal file
@ -0,0 +1,45 @@
|
||||
% \chapter{Terms}
|
||||
% 本章では用語とその定義を説明する。
|
||||
% \begin{description}
|
||||
\newglossaryentry{レイテンシコア}{name=レイテンシコア, description={シングルスレッド実行における遅延削減に重点を置いて開発されたプロセッサのコア。}}
|
||||
%または結果が出始めるまでのコストであるスタートアップコストを小さくすることに重点を置いて開発されたプロセッサのコア。
|
||||
\newglossaryentry{ノード}{name=ノード, description={一つ以上のプロセッサ、それらに接続されたRAM、それらに接続されたI/Oデバイスから構成されるコンピュータで、スーパーコンピュータはこれらの群で構成される。}}
|
||||
\newglossaryentry{OSサービス}{name=OSサービス, description={プロセス管理、メモリ管理、システムコールなどアプリケーションに提供するハードウェア仮想化サービス。}}
|
||||
\newglossaryentry{汎用OS}{name=汎用OS, description={Linuxに代表される、主にサーバ用途のOS。}}
|
||||
\newglossaryentry{軽量カーネル、Light-Weight Kernel (LWK)}{name=軽量カーネル、Light-Weight Kernel (LWK), description={アプリケーション実行に必要な最低限の機能のみ備えるOSカーネル。}}
|
||||
\newglossaryentry{Full Wieght Kernel (FWK)}{name=Full Wieght Kernel (FWK), description={汎用OSが提供する全てのOSサービスを単体で提供するOSカーネル。}}
|
||||
\newglossaryentry{McKernel}{name=McKernel, description={将来のメニーコアアーキテクチャ型スーパーコンピュータシステム向けのOSとして東京大学で開発が開始され理化学研究所が開発を引き継いでいるOSカーネル。}}
|
||||
\newglossaryentry{Interface for Heterogeneous Kernels (IHK)}{name=Interface for Heterogeneous Kernels (IHK), description={ノード上の複数のパーティションで異種OSカーネルを同時動作させる仕組みを実現するフレームワーク。Linuxカーネルモジュールとして動作するIHK−Master、LWK用ライブラリとして動作するIHK−Slaveから構成される。また、IHK使用者に対してはLinuxのカーネルモジュール、LWK用ライブラリとして提供される。}}
|
||||
\newglossaryentry{IHK-Master}{name=IHK-Master, description={Linuxカーネルモジュールとして動作し、ノードのブート、パーティション作成、LWK起動、LWKとの通信の機能を提供するIHKのモジュール。}}
|
||||
\newglossaryentry{IHK-Slave}{name=IHK-Slave, description={LWKのモジュールとして動作し、IHK−Masterとの通信の機能を提供するIHKのモジュール。}}
|
||||
\newglossaryentry{Inter-Kernel Communication (IKC)}{name=Inter-Kernel Communication (IKC), description={IHK-MasterとIHK−Slaveにより提供される異種カーネル間の通信。}}
|
||||
\newglossaryentry{ジョブ}{name=ジョブ, description={一連のノード操作またはプロセス群の実行。}}
|
||||
\newglossaryentry{ジョブスケジューラ}{name=ジョブスケジューラ, description={ユーザからのリクエストを受け、ジョブにスーパーコンピュータシステムのノードを割り当て、また割り当てられたノード群の上でジョブを実行するソフトウェアシステム。}}
|
||||
\newglossaryentry{資源}{name=資源, description={アプリケーション実行の際にユーザによって一定時間占有される、物理コア、RAM、HDDなどのスーパーコンピュータの構成要素。}}
|
||||
\newglossaryentry{パーティショニング・パーティション}{name=パーティショニング・パーティション, description={ノードの資源を分割すること。または分割されてできた資源サブセットのこと。McKernelの実行の際には物理コアおよびメモリを分割する。}}
|
||||
\newglossaryentry{mcctrl}{name=mcctrl, description={Linuxのカーネルモジュールとして動作し、McKernelと通信を行うMcKernelのモジュール。}}
|
||||
\newglossaryentry{mcexec}{name=mcexec, description={Linuxのユーザプログラムとして動作し、McKernelのプロセスの管理を行うMcKernelのモジュール。}}
|
||||
\newglossaryentry{buitin構成}{name=buitin構成, description={一つのプロセッサを複数のパーティションに分けて、一つのパーティションでLinuxなどのOSサービスを提供するOSカーネルを動作させ、他のパーティションでLWKを動作させる構成。}}
|
||||
\newglossaryentry{attached構成}{name=attached構成, description={プロセッサでLinuxなどのOSサービスを提供するOSカーネルを動作させ、PCIバスなどのI/Oバスで接続されたデバイスでLWKを動作させる構成。}}
|
||||
\newglossaryentry{McKernelインスタンス}{name=McKernelインスタンス, description={独立したパーティション内で他のOSカーネルと資源を共有せずに動作するMcKernelの実体。}}
|
||||
\newglossaryentry{アプリ特化カーネル}{name=アプリ特化カーネル, description={アプリケーションの高速化ができるように最適化されたOSカーネル。例えばタイムシェアリング機能をなくすことでOSノイズを低減することでアプリケーションの高速化を行ったカーネル。}}
|
||||
\newglossaryentry{カーネル切り替え}{name=カーネル切り替え, description={複数のアプリ特化カーネルから一つ選択してそれを動作させること。}}
|
||||
\newglossaryentry{Non-Uniform Memory Access (NUMA)}{name=Non-Uniform Memory Access (NUMA), description={メモリアクセスについて、ある一つのコアから観測される遅延やバンド幅がメモリ領域によって異なるアーキテクチャ。}}
|
||||
\newglossaryentry{NUMA-node}{name=NUMA-node, description={メモリコントローラとDRAMの組み合わせなどのメモリアクセスを行うハードウェアモジュールのこと。}}
|
||||
\newglossaryentry{インターコネクト}{name=インターコネクト, description={ノードとノードを結ぶ通信路のこと。}}
|
||||
\newglossaryentry{procfs}{name=procfs, description={Linuxの提供する、ファイルシステムをインターフェイスとするカーネルからの情報提示及びカーネルへの指示機構。}}
|
||||
\newglossaryentry{Linux API}{name=Linux API, description={アプリケーションがLinuxカーネルの機能を利用する際の規則のこと。例えば、システムコールの名前、その呼び出しの引数の数、型、返り値の型、その作用が挙げられる。}}
|
||||
\newglossaryentry{モジュール}{name=モジュール, description={ソフトウェアのある程度独立して動作する部分。}}
|
||||
\newglossaryentry{コモディティクラスタ}{name=コモディティクラスタ, description={広く販売されているコンピュータを複数接続して構成したクラスタ型コンピュータ。例としてはIntel社製プロセッサを搭載したPC/ATアーキテクチャのマシンをInfiniBandネットワークで複数接続して構成したコンピュータが挙げられる。}}
|
||||
\newglossaryentry{形式手法}{name=形式手法, description={ステートマシンとステートを用いた論理記述を用いて特定の条件が成立する可能性の有無を証明する手法。}}
|
||||
\newglossaryentry{アノテーション}{name=アノテーション, description={ソースコードに埋め込む、補助的な動作や条件などを表す記述。}}
|
||||
\newglossaryentry{アサーション}{name=アサーション, description={成立すべき条件を表す記述。}}
|
||||
\newglossaryentry{Open Source Software (OSS)}{name=Open Source Software (OSS), description={ソースが公開されているソフトウェア。}}
|
||||
\newglossaryentry{Linuxオンリーモード}{name=Linuxオンリーモード, description={運用者またはシステムソフトウェア開発者視点でのノードの状態であって、Linuxのみが動作する状態のこと。}}
|
||||
\newglossaryentry{McKernelモード}{name=McKernelモード, description={運用者またはシステムソフトウェア開発者視点でのノードの状態であって、LinuxとMcKernelが動作する状態のこと。}}
|
||||
\newglossaryentry{Linux動作モード}{name=Linux動作モード, description={ユーザ視点でのアプリの動作形態であって、Linuxのみが動作するノードを用いるという動作形態のこと。}}
|
||||
\newglossaryentry{McKernel動作モード}{name=McKernel動作モード, description={ユーザ視点でのアプリの動作形態であって、LinuxとMcKernelが動作するノードを用いるという動作形態のこと。}}
|
||||
\newglossaryentry{ジョブ資源管理機能}{name=ジョブ資源管理機能, description={ノードにジョブを起動する、1ジョブに対して一つ選択される代表ノードで動作するプロセス。}}
|
||||
\newglossaryentry{Process Launch Environment (PLE)}{name=Process Launch Environment (PLE), description={複数ノードにプロセスを起動する仕組み。}}
|
||||
%各ノードでプロセス起動指示を待つデーモンと、このデーモンに指示を与える\texttt{mpiexec}などのツールからなる。
|
||||
% \end{description}
|
||||
BIN
docs/spec/ihk/ihk.pdf
Normal file
BIN
docs/spec/ihk/ihk.pdf
Normal file
Binary file not shown.
3482
docs/spec/ihk/ihk.tex
Normal file
3482
docs/spec/ihk/ihk.tex
Normal file
File diff suppressed because it is too large
Load Diff
810
docs/spec/ihk/materials/ihk-design.eps
Normal file
810
docs/spec/ihk/materials/ihk-design.eps
Normal file
@ -0,0 +1,810 @@
|
||||
%!PS-Adobe-3.0 EPSF-3.0
|
||||
%%Creator: cairo 1.12.2 (http://cairographics.org)
|
||||
%%CreationDate: Sat May 31 15:02:11 2014
|
||||
%%Pages: 1
|
||||
%%DocumentData: Clean7Bit
|
||||
%%LanguageLevel: 2
|
||||
%%BoundingBox: 0 0 241 111
|
||||
%%EndComments
|
||||
%%BeginProlog
|
||||
save
|
||||
50 dict begin
|
||||
/q { gsave } bind def
|
||||
/Q { grestore } bind def
|
||||
/cm { 6 array astore concat } bind def
|
||||
/w { setlinewidth } bind def
|
||||
/J { setlinecap } bind def
|
||||
/j { setlinejoin } bind def
|
||||
/M { setmiterlimit } bind def
|
||||
/d { setdash } bind def
|
||||
/m { moveto } bind def
|
||||
/l { lineto } bind def
|
||||
/c { curveto } bind def
|
||||
/h { closepath } bind def
|
||||
/re { exch dup neg 3 1 roll 5 3 roll moveto 0 rlineto
|
||||
0 exch rlineto 0 rlineto closepath } bind def
|
||||
/S { stroke } bind def
|
||||
/f { fill } bind def
|
||||
/f* { eofill } bind def
|
||||
/n { newpath } bind def
|
||||
/W { clip } bind def
|
||||
/W* { eoclip } bind def
|
||||
/BT { } bind def
|
||||
/ET { } bind def
|
||||
/pdfmark where { pop globaldict /?pdfmark /exec load put }
|
||||
{ globaldict begin /?pdfmark /pop load def /pdfmark
|
||||
/cleartomark load def end } ifelse
|
||||
/BDC { mark 3 1 roll /BDC pdfmark } bind def
|
||||
/EMC { mark /EMC pdfmark } bind def
|
||||
/cairo_store_point { /cairo_point_y exch def /cairo_point_x exch def } def
|
||||
/Tj { show currentpoint cairo_store_point } bind def
|
||||
/TJ {
|
||||
{
|
||||
dup
|
||||
type /stringtype eq
|
||||
{ show } { -0.001 mul 0 cairo_font_matrix dtransform rmoveto } ifelse
|
||||
} forall
|
||||
currentpoint cairo_store_point
|
||||
} bind def
|
||||
/cairo_selectfont { cairo_font_matrix aload pop pop pop 0 0 6 array astore
|
||||
cairo_font exch selectfont cairo_point_x cairo_point_y moveto } bind def
|
||||
/Tf { pop /cairo_font exch def /cairo_font_matrix where
|
||||
{ pop cairo_selectfont } if } bind def
|
||||
/Td { matrix translate cairo_font_matrix matrix concatmatrix dup
|
||||
/cairo_font_matrix exch def dup 4 get exch 5 get cairo_store_point
|
||||
/cairo_font where { pop cairo_selectfont } if } bind def
|
||||
/Tm { 2 copy 8 2 roll 6 array astore /cairo_font_matrix exch def
|
||||
cairo_store_point /cairo_font where { pop cairo_selectfont } if } bind def
|
||||
/g { setgray } bind def
|
||||
/rg { setrgbcolor } bind def
|
||||
/d1 { setcachedevice } bind def
|
||||
%%EndProlog
|
||||
11 dict begin
|
||||
/FontType 42 def
|
||||
/FontName /DejaVuSans-Bold def
|
||||
/PaintType 0 def
|
||||
/FontMatrix [ 1 0 0 1 0 0 ] def
|
||||
/FontBBox [ 0 0 0 0 ] def
|
||||
/Encoding 256 array def
|
||||
0 1 255 { Encoding exch /.notdef put } for
|
||||
Encoding 32 /space put
|
||||
Encoding 45 /hyphen put
|
||||
Encoding 67 /C put
|
||||
Encoding 75 /K put
|
||||
Encoding 76 /L put
|
||||
Encoding 79 /O put
|
||||
Encoding 83 /S put
|
||||
Encoding 100 /d put
|
||||
Encoding 101 /e put
|
||||
Encoding 103 /g put
|
||||
Encoding 104 /h put
|
||||
Encoding 105 /i put
|
||||
Encoding 108 /l put
|
||||
Encoding 109 /m put
|
||||
Encoding 110 /n put
|
||||
Encoding 111 /o put
|
||||
Encoding 114 /r put
|
||||
Encoding 116 /t put
|
||||
Encoding 119 /w put
|
||||
Encoding 121 /y put
|
||||
/CharStrings 21 dict dup begin
|
||||
/.notdef 0 def
|
||||
/C 1 def
|
||||
/o 2 def
|
||||
/m 3 def
|
||||
/d 4 def
|
||||
/i 5 def
|
||||
/t 6 def
|
||||
/y 7 def
|
||||
/space 8 def
|
||||
/O 9 def
|
||||
/S 10 def
|
||||
/L 11 def
|
||||
/g 12 def
|
||||
/h 13 def
|
||||
/hyphen 14 def
|
||||
/w 15 def
|
||||
/e 16 def
|
||||
/K 17 def
|
||||
/r 18 def
|
||||
/n 19 def
|
||||
/l 20 def
|
||||
end readonly def
|
||||
/sfnts [
|
||||
<000100000009008000030010637674203eb9310800000de4000002546670676d5b026bf00000
|
||||
1038000000ac676c7966e9c2ceb70000009c00000d4868656164fefb4689000010e400000036
|
||||
686865610eaf07860000111c00000024686d74786c99099600001140000000546c6f63610000
|
||||
910c00001194000000586d617870065a062d000011ec00000020707265707c61a2e70000120c
|
||||
000007a700020066fe96046605a400030007001fbc00040126000000060126b6010805890204
|
||||
002fc4d4ec310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f27206
|
||||
2900000000010066ffe3055c05f00019003b401a0c10090016030d101916ae0310ae099c0398
|
||||
1a132d0c00062b1a10fcc432ec310010e4f4ec10fec410c511123911123930b42f1b5f1b0201
|
||||
5d250e0123200011100021321617112e0123220215141233323637055c6ae67dfe8bfe4c01b4
|
||||
01757de66a6bd073ceececce73d06b52373801a10165016601a13837fecb4944fef8e8e7fef8
|
||||
4449000000020058ffe30527047b000b0017002d401306a11200a10cca12981809420f4c0342
|
||||
153b1810fcecfcec310010e4f4ec10ee30b637133f19471303015d0122061514163332363534
|
||||
2603200011100021200011100002c1777d7d77757c7c7501210145febbfedffedefeb9014703
|
||||
7baba1a1ababa1a1ab0100fec8feecfeecfec80138011401140138000000000100aa000007b4
|
||||
047b0025006940291b151209040700200607180fdb20d02303ca1eb31c13070014120c080d06
|
||||
48140d12481f1b0d1d102610fc4bb00f5458b9001d00403859fc3cfcecfcec3911123931002f
|
||||
3c3ce4f43ce4ec32113911391117393001400f1f2730275027702780279027af27075d013e01
|
||||
333216151121113e013534262322060711211134262322061511211121153e0133321604ba44
|
||||
bb70c1cafe980101464e666f02fe9840526770fe98016842ab6774b203a6686deee3fd560248
|
||||
0d1c1a776ba89ffdda0248ba6ba99dfdd90460a45f60700000000002005cffe3050e06140010
|
||||
001c0038401b17a100d00e11a105d008980eca01a3031404000d02401a420b3b1d10fcecf4ec
|
||||
323231002fece4f4e4ec10e4ee30b44f1e601e02015d0111211121350e012322001110003332
|
||||
1603323635342623220615141603a60168fe984ab275cffef6010acf74b3a273797973727979
|
||||
03bc0258f9eca2635c01490103010301495dfcc9a8a0a0a8a8a0a0a80000000200ac00000212
|
||||
0614000300070029400e06dd00b304a30205010d0400100810fc3cec3231002fecf4ec304009
|
||||
500960097009800904015d1321112111211121ac0166fe9a0166fe9a0460fba00614fedc0000
|
||||
0001001b000003a4059e0013006d401a0e05080f03a11101b308a1000a080b09020904000d10
|
||||
120e541410fc4bb00f544bb010545b4bb011545b4bb012545b58b9000e004038593cc4fc3cc4
|
||||
c412393931002fc4ecf43cec32113939300140183f003f1302000200030f100f115002500350
|
||||
1560026003095d005d01112111211114163b011121222635112311331102330171fe8f3e5cb8
|
||||
fecdd4b1b2b2059efec2ff00fe254e37ff00b1d401db0100013e000000010019fe4605120460
|
||||
000f013640430f1d000f05040b0c0d030e1d050504031d040504021d0102050504021d03020f
|
||||
000f011d00000f250e0a021005000a9f08da0300b3100f0e0b0908050302010904001010d44b
|
||||
b00a544bb012545b4bb014545b58b9000000403859c41739310010e432f4ec11391239113930
|
||||
4b5358071005ed071008ed071008ed071005ed071005ed17390708ed59220140a40002000210
|
||||
021002200240025002650274028602800294029002a002b402b002b002b002c002c002d402d0
|
||||
02e002e002180401090305050506050705081601150515061507240524062407350035013803
|
||||
36063607390e390f450045014a034a044505450667026506860286058606880d880e97029605
|
||||
9606990d990ea802aa03aa04a90ea90fb501bc03b804b009b00abf0bb90db90ec802cb0dcb0e
|
||||
c90fd602e502395d005d1321090121010e012b01353332363f01190166012d01000166fe2947
|
||||
bd9bcf705b53170a0460fd0802f8fb36bb95eb3a4b1f000000020066ffe3066605f0000b0017
|
||||
0032401306ae1200ae0c9c129818092d0f37032d152b1810fcecfcec310010e4f4ec10ee3040
|
||||
0b0019171310192f193f1905015d012202151412333212353402032000111000212000111000
|
||||
0366b0c2c2b0b1c2c2b101680198fe68fe98fe99fe67019904d9fefcecebfefc0104ebec0104
|
||||
0117fe64fe95fe96fe64019c016a016b019c000000010093ffe3052d05f0002700a7402a0025
|
||||
041418110a0b1e1f041501c30415c318ae1104ae259c1198281e0a0b1f1b07001b190e140719
|
||||
222810dcecc4d4ecc4111239393939310010e4f4ec10fee510e5111739111239111239304054
|
||||
702901391d391e391f39204a1e4a1f4a20580a5d1d5c1e5e1f5e205a216a1c6f1d6f1e6f1f68
|
||||
206f206e21740b740c740d7c1f7c207c21960b970c9b1e9a1f9c209a21a60ba60ca60daa1daa
|
||||
1eaa1faa20aa21285d015d01112e012322061514161f011e0115140421222427111604333236
|
||||
3534262f012e0135342421320404cb7bea688a845975a4f9d2fedbfed38efee28f8f010b7c7e
|
||||
865b8895e0cf0120010e7b010405a6fec437384c503c43182132ccbcf7f1363501454c4d544e
|
||||
464c1e2130d2b2dff0250000000100bc000004e105d500050017400b02c0008d040116030003
|
||||
0610fcc4ec31002fe4ec30132111211121bc018102a4fbdb05d5fb4efedd0002005cfe46050e
|
||||
0479001c0028004b40261c0f030015cc16d4199f121da10cd009ca0db323a112da00d003260c
|
||||
000d0e40152042063b2910fcecc4f4ec323231002fe4e4ece4f4e4ec10fef5ee1112393930b4
|
||||
4f2a602a02015d250e0123220035340033321617352111100021222627111e01333236350322
|
||||
0615141633323635342603a64ab275cdfef4010ccd75b24a0168feabfebc69c4635eb45bb0a4
|
||||
ec6f7c7873707c7cbe625c0143fafb01415c63a6fc11fef2fee32021011736359aa40306a496
|
||||
9a9fa49596a4000100ac0000051206140017003540180d0400010adb12d015ca10a30e01020d
|
||||
0047110d0d0f101810fcec32f4ec31002f3cecf4e4ec1139393930b46019801902015d011121
|
||||
35113426272e012322061511211121113e013332160512fe980d1015482e7080fe9a016651b6
|
||||
6ec2c902aafd566f0199936e1a2327ad99fdd90614fda8625dee00000001006f01bc02e302df
|
||||
00030012b702ab00aa0401000410d4c4310010f4ec30132111216f0274fd8c02dffedd000000
|
||||
000100480000071d0460000c0182404a061d070807051d04050808070a340b0a040504093405
|
||||
05040b340203020a34090a030302021d03020c000c011d00000c250a050203060300df0b080c
|
||||
0b0a09080605040302010b07000d10d44bb00a544bb00b545b4bb00c545b58b9000000403859
|
||||
cc173931002f3cec32321739304b5358071005ed071008ed071008ed071005ed071005ed0710
|
||||
08ed071008ed071005ed59220140e6150a200a35023505300a470a400a400a5f0a6c0a7f0ab0
|
||||
02b002b005b005b00ac002c005d10ad00ae002e005ef0a171602140314041205100610071008
|
||||
1209140a160b260124022b0529062a082b09240b250c2f0e3500350134023b053a063a073708
|
||||
380c3f0e47024903460448054708480c5903560456085b09540b590c5f0e6602600462056006
|
||||
60076008640a600b750270047305700670077008740a700b8701880684088909860b8b0c8f0e
|
||||
94089b0c900ea602a903a604a905a508a909a60baa0cb601b906b608b90cc601c403ca04c906
|
||||
d502d903d704da05e508e909e60bea0c5b5d005d13211b01211b012101210b012148015cbcbd
|
||||
012bbcbd015cfed9fe79bdbcfe790460fcfc0304fd0402fcfba00302fcfe00020058ffe3050a
|
||||
047b0014001b004340210015d80109cc08d4059f0c01d7189f12ca0c981c1b150208150d0044
|
||||
020d0f3b1c10fcecf4ecc4111239310010e4f4ece410fef4ee10ee3930b42f1d3f1d02015d01
|
||||
15211e0133323637110e0123200011100021200005342623220607050afcbb0d9c8c71ed7d7f
|
||||
fe7ffed0feaf014b01220108013dfe9077606882100233667e7e4344feec3031013501170112
|
||||
013afec293667d756e000000000100bc0000067105d5000a00814013080502030300c1090605
|
||||
01040608011600030b10fcec32d4c4113931002f3cec32173930405616051606100c3c033b07
|
||||
4c034b075b0358055d076f036705670660066807600c7f0378077f07700c85048606aa071727
|
||||
0232023b0842024b085402590558085f08600266056d08700278057b087f088a058d08ab0813
|
||||
5d015d1321110121090121011121bc0181022b01bffd310319fe1efdaefe7f05d5fddf0221fd
|
||||
3dfcee024cfdb4000000000100ac000003ec047b001100374016110e0906070003c00b940eca
|
||||
09b3070a060d0008101210fc4bb0135458b90008ffc03859c4ec3231002fe4f4e4fcc4113911
|
||||
123930012e012322061511211121153e013332161703ec2f5d2f8a95fe9a016645b37d122a28
|
||||
032f1615b1a5fdfc0460b86e65030500000100ac00000512047b0017003540180d0400010adb
|
||||
12d015ca10b30e01020d0047110d0d0f101810fcec32f4ec31002f3ce4f4e4ec1139393930b4
|
||||
6019801902015d01112135113426272e012322061511211121153e013332160512fe980d1015
|
||||
482e7080fe9a016651b66ec2c902aafd566f019b916e1a2327ad99fdd90460a4625dee000000
|
||||
000100ac0000021206140003001eb700a302010d00100410fcec31002fec3040095005600570
|
||||
05800504015d13211121ac0166fe9a0614f9ec00000001660133016600bc00e90000013d00a2
|
||||
00fa031f00020002006601660002000200ac015400ec00bc006201660181048501540166016d
|
||||
04a400020166007f04cd000000020133006200710000002504a401bc00ba00e500660181018d
|
||||
0548055a0166016d000000000002000200f605c301f0053902390058046d043d04b2048104b2
|
||||
016601750466048100b00466043902d1049c047b04cf047b005801330166014c0166014c0002
|
||||
00ac009a014a0123009a029a01440119014402cd00c100000166013f019a013b05cb05cb00d5
|
||||
00d5015000ac00ac0077020a01c701f2012f015801b2012300f600f6011f012f0135023501ee
|
||||
01e70133009800d10358050a009a008f0112009800bc00cd00e500e500f2007304000166008f
|
||||
05d5022b05d500c300e100d700e50000006a01020000001d032d05d505d505f000a8006a00ec
|
||||
00e1010205d506140721046602f800ec018302a602f80123010201020112011f031f005e03cd
|
||||
046004c7048900ec01bc00ba01020333031f03420333035c0112011f05d5019a009a00e10666
|
||||
0179046004600460047b000000ec02c302b802cd00be00dd00d50000006a025c027b029a00dd
|
||||
01ae01ba01120000008501ae04600762041b009a069a045800ee009a029a00d102cd019a0150
|
||||
05cb05cb008b008b063100f6040600f0034c016004a800c10000002505c101000121074a0612
|
||||
0096014a078300a800000337007b0014000000c9010005c105c105c105c101000108061d0096
|
||||
0427039e00ec0102027d0133009800d10358017900cd02390362009c009c009c009301b80093
|
||||
00b80073000014000326b707060504030201002c2010b002254964b040515820c859212d2cb0
|
||||
02254964b040515820c859212d2c20100720b00050b00d7920b8ffff5058041b0559b0051cb0
|
||||
032508b0042523e120b00050b00d7920b8ffff5058041b0559b0051cb0032508e12d2c4b5058
|
||||
20b80128454459212d2cb002254560442d2c4b5358b00225b0022545445921212d2c45442d2c
|
||||
b00225b0022549b00525b005254960b0206368208a108a233a8a10653a2d000100000002547a
|
||||
fbd542385f0f3cf5001f080000000000cc44537f00000000cc44537ff772fcae0fcd09650001
|
||||
0008000000010000000000010000076dfe1d00001021f772f9320fcd00010000000000000000
|
||||
000000000000001504cd006605df0066057f0058085600aa05ba005c02be00ac03d3001b0537
|
||||
001902c9000006cd006605c30093051900bc05ba005c05b200ac0352006f07640048056d0058
|
||||
063300bc03f200ac05b200ac02be00ac000000000000004c000000e400000170000002500000
|
||||
02ec00000340000003f40000056c0000056c0000060000000728000007600000082c000008b4
|
||||
000008e400000aa400000b5000000c0c00000c8400000d0c00000d48000100000015034e002b
|
||||
0078000c0002001000400008000005ed02210008000441840280012600fe0003012500110003
|
||||
01240121003a0005012400fa000301230016000301220121003a0005012200fe00030121003a
|
||||
0003012000fa0003011f00bb0003011e00640003011d00fe0003011c00190003011b001e0003
|
||||
011a00fe0003011900fe0003011800fe0003011700fe0003011600fe000301150114000e0005
|
||||
011500fe00030114000e0003011300fe0003011200fe0003010f010e007d0005010f00fe0003
|
||||
010e007d0003010d010c008c0005010d00fe0003010d00c00004010c010b00590005010c008c
|
||||
0003010c00800004010b010a00260005010b00590003010b00400004010a00260003010900fe
|
||||
0003010800fe00030107000c00030107008000040106b2972e054113010600fa0003010500fa
|
||||
0003010400fe0003010300190003010200fa0003010100fa0003010040ff7d03ff3e03fefe03
|
||||
fcfb2c05fcfe03fb2c03fafe03f9f84705f97d03f84703f7fa03f6fe03f5fe03f4fe03f3bb03
|
||||
f2fe03f1fe03f0fe03ef1e03eefe03edec0a05edfe03ec0a03ec4004ebea0a05eb3203ea0a03
|
||||
e9fa03e8911605e8fe03e7fa03e6fa03e5911605e5fe03e4fe03e3fe03e2fe03e1fe03e0fe03
|
||||
dffe03defa03dddc1805dd6403dc1803dba01e05db6403dad92505dafa03d92503d8d12505d8
|
||||
fa03d7d61405d71603d6d51005d61403d51003d4d30b05d42003d30b03d2d12505d2fa03d191
|
||||
1605d12503d0940c05d02303cfce1405cf2603cecd1205ce1403cd1203cc911605cc1d03cb14
|
||||
03cac9bb05cafe03c9c85d05c9bb03c98004c840ffc72505c85d03c84004c72503c6fe03c564
|
||||
03c4901005c4fe03c31c03c2fe03c1fe03c0bf3a05c0fa03bfad1b05bf3a03bebd1a05be3203
|
||||
bdbc1105bd1a03bcbb0f05bc1103bbba0c05bb0f03ba0c03b9911605b9fe03b8fe03b71503b6
|
||||
1203b5fe03b4fe03b3fe03b21703b11903b01603afad1b05affa03aead1b05aefa03ad911605
|
||||
ad1b03ac911605ac7d03abfe03aa2603a9fe03a8fe03a7fe03a6fe03a50a03a4fe03a3a20e05
|
||||
a3fe03a20e03a24004a1a01e05a1fa03a0911605a01e039f9116059ffa039e940c059e1c039d
|
||||
fe039c9bbb059cfe039b9a5d059bbb039b80049a8f25059a5d039a400499fe0398972e0598fe
|
||||
03972e0396911605961e40ff0395940c05952003940c0393911605934b039291160592fe0391
|
||||
9010059116039010038f25038efe038dfe038cfe038bfe038afe0389fe038887250588fe0387
|
||||
250386fe0385fe0384320383960382fe0381fe038019037f0a037efe037dfe037cfe037bfa03
|
||||
7afa0379fe037776a60577fe0376a60375741b0575fa03741b0373fa03727d0371fe03706f2c
|
||||
056f2c036efa036dfa036cfa036bfe036afe0369fe0368630c0568320367fe0366320365640a
|
||||
0565fe03640a0364400463620a05630c03620a0361601505619603600111056015035f0a035e
|
||||
fe035dfe035c0111055cfe035b5a1b055bfe035a0111055a1b0359fe0358fa0357fe03560111
|
||||
0540ff56fe0355fe03541e035314035251190552fa0351011105511903504f190550fa034f4e
|
||||
11054f19034e11034d1e034c4b14054c15034b4a11054b14034a490e054a1103490e0348fa03
|
||||
4746140547150346140345fa0344430e05440f03430e034241250542fa034101110541250340
|
||||
3f0f0540fe033f3e0e053f0f033e0e033d3c0d053d16033c0d033b64033afe0339140338fe03
|
||||
37130336351a0536250335341405351a0335c004340a0d0534140334800433320c0533140333
|
||||
4004320c033130a60531fe033001110530a6032f0c032e13032d2c3a052dfa032c1525052c3a
|
||||
032b64032a640329fe0328150327171105271e03262003251e0324231105402b241e03231103
|
||||
22000d0522fa03210f032140042014031f0a031e1e031d1c19051d25031c0f13051c19031cb8
|
||||
01004091041b0d031a194b051a7d0319011105194b0318fe031711031615250516fa03150111
|
||||
0515250314640313110312fe031101110511fe031064030f0e10050f13030fc0040e10030e80
|
||||
040d0111050dfa030c32030b0a0d050b16030b80040a0d030a400409fe0308fe0307fe030605
|
||||
0a0506fe03050a0305400404fa030364030201110502fe0301000d05011103000d0301b80164
|
||||
858d012b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b002b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b1d0000>
|
||||
] def
|
||||
/f-0-0 currentdict end definefont pop
|
||||
11 dict begin
|
||||
/FontType 42 def
|
||||
/FontName /DejaVuSans def
|
||||
/PaintType 0 def
|
||||
/FontMatrix [ 1 0 0 1 0 0 ] def
|
||||
/FontBBox [ 0 0 0 0 ] def
|
||||
/Encoding 256 array def
|
||||
0 1 255 { Encoding exch /.notdef put } for
|
||||
Encoding 32 /space put
|
||||
Encoding 45 /hyphen put
|
||||
Encoding 49 /one put
|
||||
Encoding 67 /C put
|
||||
Encoding 69 /E put
|
||||
Encoding 72 /H put
|
||||
Encoding 73 /I put
|
||||
Encoding 75 /K put
|
||||
Encoding 76 /L put
|
||||
Encoding 77 /M put
|
||||
Encoding 80 /P put
|
||||
Encoding 83 /S put
|
||||
Encoding 87 /W put
|
||||
Encoding 97 /a put
|
||||
Encoding 99 /c put
|
||||
Encoding 100 /d put
|
||||
Encoding 101 /e put
|
||||
Encoding 103 /g put
|
||||
Encoding 105 /i put
|
||||
Encoding 108 /l put
|
||||
Encoding 109 /m put
|
||||
Encoding 110 /n put
|
||||
Encoding 111 /o put
|
||||
Encoding 114 /r put
|
||||
Encoding 115 /s put
|
||||
Encoding 116 /t put
|
||||
Encoding 117 /u put
|
||||
Encoding 118 /v put
|
||||
Encoding 120 /x put
|
||||
/CharStrings 30 dict dup begin
|
||||
/.notdef 0 def
|
||||
/I 1 def
|
||||
/H 2 def
|
||||
/K 3 def
|
||||
/hyphen 4 def
|
||||
/M 5 def
|
||||
/a 6 def
|
||||
/s 7 def
|
||||
/t 8 def
|
||||
/e 9 def
|
||||
/r 10 def
|
||||
/P 11 def
|
||||
/i 12 def
|
||||
/o 13 def
|
||||
/n 14 def
|
||||
/g 15 def
|
||||
/C 16 def
|
||||
/S 17 def
|
||||
/l 18 def
|
||||
/v 19 def
|
||||
/d 20 def
|
||||
/E 21 def
|
||||
/x 22 def
|
||||
/c 23 def
|
||||
/u 24 def
|
||||
/one 25 def
|
||||
/space 26 def
|
||||
/m 27 def
|
||||
/L 28 def
|
||||
/W 29 def
|
||||
end readonly def
|
||||
/sfnts [
|
||||
<0001000000090080000300106376742000691d3900001490000001fe6670676d7134766a0000
|
||||
1690000000ab676c7966192e18be0000009c000013f468656164fd0346870000173c00000036
|
||||
686865610cb8066f0000177400000024686d74788c78109400001798000000786c6f63610001
|
||||
2bf8000018100000007c6d617870048b06710000188c00000020707265703b07f100000018ac
|
||||
0000056800020066fe96046605a400030007001a400c04fb0006fb0108057f0204002fc4d4ec
|
||||
310010d4ecd4ec301311211125211121660400fc73031bfce5fe96070ef8f2720629000100c9
|
||||
0000019305d50003002eb700af02011c00040410fc4bb0105458b9000000403859ec31002fec
|
||||
3001400d30054005500560058f059f05065d13331123c9caca05d5fa2b00000100c90000053b
|
||||
05d5000b002c4014089502ad0400810a0607031c053809011c00040c10fcec32fcec3231002f
|
||||
3ce432fcec30b2500d01015d133311211133112311211123c9ca02decacafd22ca05d5fd9c02
|
||||
64fa2b02c7fd3900000100c90000056a05d5000a00ef40280811050605071106060503110405
|
||||
04021105050442080502030300af09060501040608011c00040b10fcec32d4c4113931002f3c
|
||||
ec321739304b5358071004ed071005ed071005ed071004ed5922b2080301015d409214020104
|
||||
0209081602280528083702360534084702460543085502670276027705830288058f0894029b
|
||||
08e702150603090509061b031907050a030a07180328052b062a073604360536063507300c41
|
||||
034004450540064007400c62036004680567077705700c8b038b058e068f078f0c9a039d069d
|
||||
07b603b507c503c507d703d607e803e904e805ea06f703f805f9062c5d71005d711333110121
|
||||
090121011123c9ca029e0104fd1b031afef6fd33ca05d5fd890277fd48fce302cffd31000000
|
||||
0001006401df027f028300030011b6009c020401000410dccc310010d4ec301321152164021b
|
||||
fde50283a400000100c90000061f05d5000c00bf403403110708070211010208080702110302
|
||||
090a0901110a0a09420a070203080300af080b050908030201050a061c043e0a1c00040d10fc
|
||||
ecfcec11173931002f3cc4ec32111739304b5358071005ed071008ed071008ed071005ed5922
|
||||
b2700e01015d405603070f080f09020a15021407130a260226072007260a200a3407350a6902
|
||||
7c027b07790a80028207820a90021604010b0313011b0323012c032708280934013c03560859
|
||||
0965086a097608790981018d0395019b03145d005d13210901211123110123011123c9012d01
|
||||
7d017f012dc5fe7fcbfe7fc405d5fc0803f8fa2b051ffc000400fae100000002007bffe3042d
|
||||
047b000a002500bc4027191f0b17090e00a91706b90e1120861fba1cb923b8118c170c001703
|
||||
180d09080b1f030814452610fcecccd4ec323211393931002fc4e4f4fcf4ec10c6ee10ee1139
|
||||
1139123930406e301d301e301f3020302130223f27401d401e401f402040214022501d501e50
|
||||
1f50205021502250277027851d871e871f8720872185229027a027f0271e301e301f30203021
|
||||
401e401f40204021501e501f50205021601e601f60206021701e701f70207021801e801f8020
|
||||
8021185d015d0122061514163332363d01371123350e01232226353436332135342623220607
|
||||
353e0133321602bedfac816f99b9b8b83fbc88accbfdfb0102a79760b65465be5af3f0023366
|
||||
7b6273d9b4294cfd81aa6661c1a2bdc0127f8b2e2eaa2727fc000001006fffe303c7047b0027
|
||||
00e7403c0d0c020e0b531f1e080902070a531f1f1e420a0b1e1f041500860189041486158918
|
||||
b91104b925b8118c281e0a0b1f1b0700521b080e07081422452810fcc4ecd4ece41112393939
|
||||
39310010e4f4ec10fef5ee10f5ee121739304b535807100eed111739070eed1117395922b200
|
||||
2701015d406d1c0a1c0b1c0c2e092c0a2c0b2c0c3b093b0a3b0b3b0c0b200020012402280a28
|
||||
0b2a132f142f152a16281e281f292029212427860a860b860c860d12000000010202060a060b
|
||||
030c030d030e030f03100319031a031b031c041d09272f293f295f297f2980299029a029f029
|
||||
185d005d7101152e012322061514161f011e0115140623222627351e013332363534262f012e
|
||||
01353436333216038b4ea85a898962943fc4a5f7d85ac36c66c661828c65ab40ab98e0ce66b4
|
||||
043fae282854544049210e2a99899cb62323be353559514b50250f2495829eac1e0000000001
|
||||
0037000002f2059e0013003840190e05080f03a9001101bc08870a0b08090204000810120e46
|
||||
1410fc3cc4fc3cc432393931002fecf43cc4ec3211393930b2af1501015d0111211521111416
|
||||
3b01152322263511233533110177017bfe854b73bdbdd5a28787059efec28ffda0894e9a9fd2
|
||||
02608f013e00000000020071ffe3047f047b0014001b00704024001501098608880515a90105
|
||||
b90c01bb18b912b80c8c1c1b1502081508004b02120f451c10fcecf4ecc4111239310010e4f4
|
||||
ece410ee10ee10f4ee1112393040293f1d701da01dd01df01d053f003f013f023f153f1b052c
|
||||
072f082f092c0a6f006f016f026f156f1b095d71015d0115211e0133323637150e0123200011
|
||||
1000333200072e0123220607047ffcb20ccdb76ac76263d06bfef4fec70129fce20107b802a5
|
||||
889ab90e025e5abec73434ae2a2c0138010a01130143feddc497b4ae9e00000100ba0000034a
|
||||
047b001100304014060b0700110b03870eb809bc070a06080008461210fcc4ec3231002fe4f4
|
||||
ecc4d4cc11123930b450139f1302015d012e012322061511231133153e0133321617034a1f49
|
||||
2c9ca7b9b93aba85132e1c03b41211cbbefdb20460ae666305050000000200c90000048d05d5
|
||||
00080013003a40180195100095098112100a0802040005190d3f11001c09041410fcec32fcec
|
||||
11173931002ff4ecd4ec30400b0f151f153f155f15af1505015d011133323635342623252132
|
||||
041514042b0111230193fe8d9a9a8dfe3801c8fb0101fefffbfeca052ffdcf92878692a6e3db
|
||||
dde2fda8000200c100000179061400030007002b400e06be04b100bc020501080400460810fc
|
||||
3cec3231002fe4fcec30400b1009400950096009700905015d1333112311331523c1b8b8b8b8
|
||||
0460fba00614e90000020071ffe30475047b000b0017004a401306b91200b90cb8128c180912
|
||||
0f51031215451810fcecf4ec310010e4f4ec10ee3040233f197b007b067f077f087f097f0a7f
|
||||
0b7b0c7f0d7f0e7f0f7f107f117b12a019f01911015d01220615141633323635342627320011
|
||||
1000232200111000027394acab9593acac93f00112feeef0f1feef011103dfe7c9c9e7e8c8c7
|
||||
e99cfec8feecfeedfec701390113011401380000000100ba00000464047b0013003640190309
|
||||
00030e0106870e11b80cbc0a010208004e0d09080b461410fcec32f4ec31002f3ce4f4c4ec11
|
||||
12173930b46015cf1502015d0111231134262322061511231133153e013332160464b87c7c95
|
||||
acb9b942b375c1c602a4fd5c029e9f9ebea4fd870460ae6564ef00020071fe56045a047b000b
|
||||
0028004a4023190c1d0912861316b90f03b92623b827bc09b90fbd1a1d261900080c47061212
|
||||
20452910fcc4ecf4ec323231002fc4e4ece4f4c4ec10fed5ee1112393930b6602a802aa02a03
|
||||
015d01342623220615141633323617100221222627351e013332363d010e0123220211101233
|
||||
321617353303a2a59594a5a59495a5b8fefefa61ac51519e52b5b439b27ccefcfcce7cb239b8
|
||||
023dc8dcdcc8c7dcdcebfee2fee91d1eb32c2abdbf5b6362013a01030104013a6263aa000001
|
||||
0073ffe3052705f000190036401a0da10eae0a951101a100ae04951791118c1a07190d003014
|
||||
101a10fcec32ec310010e4f4ecf4ec10eef6ee30b40f1b1f1b02015d01152e01232000111000
|
||||
21323637150e01232000111000213216052766e782ff00fef00110010082e7666aed84feadfe
|
||||
7a0186015386ed0562d55f5efec7fed8fed9fec75e5fd34848019f01670168019f4700000001
|
||||
0087ffe304a205f00027007e403c0d0c020e0b021e1f1e080902070a021f1f1e420a0b1e1f04
|
||||
15010015a11494189511049500942591118c281e0a0b1f1b0700221b190e2d071914222810dc
|
||||
c4ecfcece4111239393939310010e4f4e4ec10eef6ee10c6111739304b535807100eed111739
|
||||
07100eed1117395922b20f2901015db61f292f294f29035d01152e012322061514161f011e01
|
||||
15140421222627351e013332363534262f012e01353424333216044873cc5fa5b377a67ae2d7
|
||||
feddfee76aef807bec72adbc879a7be2ca0117f569da05a4c53736807663651f192bd9b6d9e0
|
||||
302fd04546887e6e7c1f182dc0abc6e42600000100c100000179061400030022b70097020108
|
||||
00460410fcec31002fec30400d10054005500560057005f00506015d13331123c1b8b80614f9
|
||||
ec000001003d0000047f0460000600fb40270311040504021101020505040211030206000601
|
||||
1100000642020300bf0506050302010504000710d44bb00a5458b90000004038594bb014544b
|
||||
b015545b58b90000ffc03859c4173931002fec3239304b5358071005ed071008ed071008ed07
|
||||
1005ed592201408e48026a027b027f02860280029102a402080600060109030904150015011a
|
||||
031a0426002601290329042008350035013a033a043008460046014903490446054806400856
|
||||
0056015903590450086600660169036904670568066008750074017b037b0475057a06850085
|
||||
0189038904890586069600960197029a03980498059706a805a706b008c008df08ff083e5d00
|
||||
5d133309013301233dc3015e015ec3fe5cfa0460fc5403acfba0000000020071ffe3045a0614
|
||||
0010001c003840191ab9000e14b905088c0eb801970317040008024711120b451d10fcecf4ec
|
||||
323231002fece4f4c4ec10c4ee30b6601e801ea01e03015d0111331123350e01232202111000
|
||||
33321601141633323635342623220603a2b8b83ab17ccbff00ffcb7cb1fdc7a79292a8a89292
|
||||
a703b6025ef9eca86461014401080108014461fe15cbe7e7cbcbe7e7000100c90000048b05d5
|
||||
000b002e401506950402950081089504ad0a05010907031c00040c10fcec32d4c4c431002fec
|
||||
ecf4ec10ee30b21f0d01015d132115211121152111211521c903b0fd1a02c7fd3902f8fc3e05
|
||||
d5aafe46aafde3aa00000001003b000004790460000b01434046051106070604110304070706
|
||||
0411050401020103110202010b110001000a11090a0101000a110b0a0708070911080807420a
|
||||
070401040800bf05020a0704010408000208060c10d44bb00a544bb00f545b4bb010545b4bb0
|
||||
11545b58b90006004038594bb0145458b90006ffc03859c4d4c411173931002f3cec32173930
|
||||
4b5358071005ed071008ed071008ed071005ed071005ed071008ed071008ed071005ed592201
|
||||
40980a04040a1a04150a260a3d04310a55045707580a660a76017a047607740a8d04820a9904
|
||||
9f049707920a900aa601a904af04a507a30aa00a1c0a03040505090a0b1a03150515091a0b29
|
||||
03260525092a0b200d3a013903370534073609390b300d4903460545094a0b400d5900560159
|
||||
02590357055606590756085609590b500d6f0d78017f0d9b019407ab01a407b00dcf0ddf0dff
|
||||
0d2f5d005d09022309012309013309010464fe6b01aad9febafebad901b3fe72d90129012904
|
||||
60fddffdc101b8fe48024a0216fe71018f0000010071ffe303e7047b0019003f401b00860188
|
||||
040e860d880ab91104b917b8118c1a07120d004814451a10fce432ec310010e4f4ec10fef4ee
|
||||
10f5ee30400b0f1b101b801b901ba01b05015d01152e0123220615141633323637150e012322
|
||||
0011100021321603e74e9d50b3c6c6b3509d4e4da55dfdfed6012d010655a20435ac2b2be3cd
|
||||
cde32b2baa2424013e010e0112013a230000000200aeffe30458047b00130014003b401c0309
|
||||
00030e0106870e118c0a01bc14b80c0d0908140b4e020800461510fcecf439ec3231002fe4e4
|
||||
32f4c4ec1112173930b46f15c01502015d1311331114163332363511331123350e0123222601
|
||||
aeb87c7c95adb8b843b175c1c801cf01ba02a6fd619f9fbea4027bfba0ac6663f003a8000001
|
||||
00e10000045a05d5000a004040154203a00402a005810700a009081f061c03001f010b10d44b
|
||||
b00f5458b9000100403859ecc4fcec31002fec32f4ecd4ec304b5358592201b40f030f04025d
|
||||
3721110535253311211521fe014afe990165ca014afca4aa047348b848fad5aa0000000100ba
|
||||
0000071d047b0022005a4026061209180f00061d07150c871d2003b81bbc19100700110f0808
|
||||
065011080f501c18081a462310fcec32fcfcfcec11123931002f3c3ce4f43cc4ec3211121739
|
||||
3040133024502470249024a024a024bf24df24ff2409015d013e013332161511231134262322
|
||||
061511231134262322061511231133153e01333216042945c082afbeb972758fa6b972778da6
|
||||
b9b93fb0797aab03897c76f5e2fd5c029ea19cbea4fd87029ea29bbfa3fd870460ae67627c00
|
||||
0000000100c90000046a05d500050025400c0295008104011c033a00040610fcecec31002fe4
|
||||
ec304009300750078003800404015d133311211521c9ca02d7fc5f05d5fad5aa000100440000
|
||||
07a605d5000c017b4049051a0605090a09041a0a09031a0a0b0a021a01020b0b0a0611070807
|
||||
05110405080807021103020c000c011100000c420a050203060300af0b080c0b0a0908060504
|
||||
0302010b07000d10d4cc173931002f3cec32321739304b5358071005ed071008ed071008ed07
|
||||
1005ed071008ed071005ed0705ed071008ed5922b2000e01015d40f206020605020a000a000a
|
||||
120a2805240a200a3e023e05340a300a4c024d05420a400a59026a026b05670a600a7b027f02
|
||||
7c057f05800a960295051d070009020803000406050005000601070408000807090009040a0a
|
||||
0c000e1a0315041508190c100e200421052006200720082309240a250b200e200e3c023a0335
|
||||
04330530083609390b3f0c300e460046014a0240044505400542064207420840084009440a4d
|
||||
0c400e400e58025608590c500e66026703610462056006600760086409640a640b770076017b
|
||||
027803770474057906790777087008780c7f0c7f0e860287038804890585098a0b8f0e97049f
|
||||
0eaf0e5b5d005d1333090133090133012309012344cc013a0139e3013a0139cdfe89fefec5fe
|
||||
c2fe05d5fb1204eefb1204eefa2b0510faf00000013500b800cb00cb00c100aa009c01a600b8
|
||||
00660000007100cb00a002b20085007500b800c301cb0189022d00cb00a600f000d300aa0087
|
||||
00cb03aa0400014a003300cb000000d9050200f4015400b4009c01390114013907060400044e
|
||||
04b4045204b804e704cd0037047304cd04600473013303a2055605a60556053903c5021200c9
|
||||
001f00b801df007300ba03e9033303bc0444040e00df03cd03aa00e503aa0404000000cb008f
|
||||
00a4007b00b80014016f007f027b0252008f00c705cd009a009a006f00cb00cd019e01d300f0
|
||||
00ba018300d5009803040248009e01d500c100cb00f600830354027f00000333026600d300c7
|
||||
00a400cd008f009a0073040005d5010a00fe022b00a400b4009c00000062009c0000001d032d
|
||||
05d505d505d505f0007f007b005400a406b80614072301d300b800cb00a601c301ec069300a0
|
||||
00d3035c037103db0185042304a80448008f0139011401390360008f05d5019a061407230666
|
||||
0179046004600460047b009c00000277046001aa00e904600762007b00c5007f027b000000b4
|
||||
025205cd006600bc00660077061000cd013b01850389008f007b0000001d00cd074a042f009c
|
||||
009c0000077d006f0000006f0335006a006f007b00ae00b2002d0396008f027b00f600830354
|
||||
063705f6008f009c04e10266008f018d02f600cd03440029006604ee00730000140000960000
|
||||
b707060504030201002c2010b002254964b040515820c859212d2cb002254964b040515820c8
|
||||
59212d2c20100720b00050b00d7920b8ffff5058041b0559b0051cb0032508b0042523e120b0
|
||||
0050b00d7920b8ffff5058041b0559b0051cb0032508e12d2c4b505820b0fd454459212d2cb0
|
||||
02254560442d2c4b5358b00225b0022545445921212d2c45442d2cb00225b0022549b00525b0
|
||||
05254960b0206368208a108a233a8a10653a2d00000100000002547a3baaaa525f0f3cf5001f
|
||||
080000000000cc44538600000000cc445386f7d6fcae0d720955000000080000000100000000
|
||||
00010000076dfe1d00000de2f7d6fa510d7200010000000000000000000000000000001e04cd
|
||||
0066025c00c9060400c9053f00c902e3006406e700c904e7007b042b006f0323003704ec0071
|
||||
034a00ba04d300c9023900c104e50071051200ba051400710596007305140087023900c104bc
|
||||
003d05140071050e00c904bc003b04660071051200ae051700e1028b000007cb00ba047500c9
|
||||
07e9004400000000000000440000008c000000e8000002100000023c00000338000004640000
|
||||
05c40000064000000714000007840000080400000854000008f80000097000000a3800000ad0
|
||||
00000bc800000c0400000d2800000dc000000e2000000fa40000103c000010c0000011300000
|
||||
1130000011f400001238000013f400010000001e0354002b0068000c00020010009900080000
|
||||
0415021600080004b8028040fffbfe03fa1403f92503f83203f79603f60e03f5fe03f4fe03f3
|
||||
2503f20e03f19603f02503ef8a4105effe03ee9603ed9603ecfa03ebfa03eafe03e93a03e842
|
||||
03e7fe03e63203e5e45305e59603e48a4105e45303e3e22f05e3fa03e22f03e1fe03e0fe03df
|
||||
3203de1403dd9603dcfe03db1203da7d03d9bb03d8fe03d68a4105d67d03d5d44705d57d03d4
|
||||
4703d3d21b05d3fe03d21b03d1fe03d0fe03cffe03cefe03cd9603cccb1e05ccfe03cb1e03ca
|
||||
3203c9fe03c6851105c61c03c51603c4fe03c3fe03c2fe03c1fe03c0fe03bffe03befe03bdfe
|
||||
03bcfe03bbfe03ba1103b9862505b9fe03b8b7bb05b8fe03b7b65d05b7bb03b78004b6b52505
|
||||
b65d40ff03b64004b52503b4fe03b39603b2fe03b1fe03b0fe03affe03ae6403ad0e03acab25
|
||||
05ac6403abaa1205ab2503aa1203a98a4105a9fa03a8fe03a7fe03a6fe03a51203a4fe03a3a2
|
||||
0e05a33203a20e03a16403a08a4105a096039ffe039e9d0c059efe039d0c039c9b19059c6403
|
||||
9b9a10059b19039a1003990a0398fe0397960d0597fe03960d03958a410595960394930e0594
|
||||
2803930e0392fa039190bb0591fe03908f5d0590bb039080048f8e25058f5d038f40048e2503
|
||||
8dfe038c8b2e058cfe038b2e038a8625058a410389880b05891403880b038786250587640386
|
||||
85110586250385110384fe038382110583fe0382110381fe0380fe037ffe0340ff7e7d7d057e
|
||||
fe037d7d037c64037b5415057b25037afe0379fe03780e03770c03760a0375fe0374fa0373fa
|
||||
0372fa0371fa0370fe036ffe036efe036c21036bfe036a1142056a530369fe03687d03671142
|
||||
0566fe0365fe0364fe0363fe0362fe03613a0360fa035e0c035dfe035bfe035afe0359580a05
|
||||
59fa03580a035716190557320356fe035554150555420354150353011005531803521403514a
|
||||
130551fe03500b034ffe034e4d10054efe034d10034cfe034b4a13054bfe034a4910054a1303
|
||||
491d0d05491003480d0347fe0346960345960344fe0343022d0543fa0342bb03414b0340fe03
|
||||
3ffe033e3d12053e14033d3c0f053d12033c3b0d053c40ff0f033b0d033afe0339fe03383714
|
||||
0538fa033736100537140336350b05361003350b03341e03330d0332310b0532fe03310b0330
|
||||
2f0b05300d032f0b032e2d09052e10032d09032c32032b2a25052b64032a2912052a25032912
|
||||
032827250528410327250326250b05260f03250b0324fe0323fe03220f032101100521120320
|
||||
64031ffa031e1d0d051e64031d0d031c1142051cfe031bfa031a42031911420519fe03186403
|
||||
1716190517fe031601100516190315fe0314fe0313fe031211420512fe0311022d0511420310
|
||||
7d030f64030efe030d0c16050dfe030c0110050c16030bfe030a100309fe0308022d0508fe03
|
||||
0714030664030401100504fe03401503022d0503fe0302011005022d0301100300fe0301b801
|
||||
64858d012b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b002b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b
|
||||
2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b2b1d00>
|
||||
] def
|
||||
/f-1-0 currentdict end definefont pop
|
||||
11 dict begin
|
||||
/FontType 42 def
|
||||
/FontName /VL-Gothic-Regular def
|
||||
/PaintType 0 def
|
||||
/FontMatrix [ 1 0 0 1 0 0 ] def
|
||||
/FontBBox [ 0 0 0 0 ] def
|
||||
/Encoding 256 array def
|
||||
0 1 255 { Encoding exch /.notdef put } for
|
||||
Encoding 46 /period put
|
||||
/CharStrings 2 dict dup begin
|
||||
/.notdef 0 def
|
||||
/period 1 def
|
||||
end readonly def
|
||||
/sfnts [
|
||||
<0001000000080080000300006376742000210279000000fc00000004676c7966d1b395150000
|
||||
008c0000007068656164fc6046fe00000100000000366868656108f102ea0000013800000024
|
||||
686d747803a400da0000015c000000086c6f6361000000c8000001640000000c6d617870002c
|
||||
019f000001700000002070726570b98f84000000019000000007000200210000016e029a0003
|
||||
0007002eb101002f3cb2070400ed32b10605dc3cb2030200ed3200b103002f3cb2050400ed32
|
||||
b2070601fc3cb2010200ed32331121112521112121014dfed4010bfef5029afd662102580000
|
||||
000100b90000013b00960003000033353315b982969600000021027900010000000206e93a38
|
||||
693f5f0f3cf5001f03e800000000cc12fe2700000000cc12fe27fff4feae0512043300000008
|
||||
00020001000000000001000003e8fef200000537fff4febe0512000100000000000000000000
|
||||
00000000000201b0002101f400b90000000000000058000000700001000000020100001a006e
|
||||
000a000200000000000000000004002e00010001b901ff00008d850000>
|
||||
] def
|
||||
/f-2-0 currentdict end definefont pop
|
||||
%%Page: 1 1
|
||||
%%BeginPageSetup
|
||||
%%PageBoundingBox: 0 0 241 111
|
||||
%%EndPageSetup
|
||||
q 0 0 241 111 rectclip q
|
||||
0.501961 0.701961 1 rg
|
||||
0.301 100.012 79.703 -83.402 re f
|
||||
0 g
|
||||
0.6 w
|
||||
0 J
|
||||
1 j
|
||||
[] 0.0 d
|
||||
4 M q 1 0 0 -1 0 110.000488 cm
|
||||
0.301 9.988 79.703 83.402 re S Q
|
||||
BT
|
||||
9.6 0 0 9.6 0.438692 92.310254 Tm
|
||||
/f-0-0 1 Tf
|
||||
[(Comm)-3(odit)-3(y OS)]TJ
|
||||
ET
|
||||
1 0.933333 0.666667 rg
|
||||
92 100.008 72 -83.398 re f
|
||||
0 g
|
||||
0.6 w
|
||||
0 j
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
92 9.992 72 83.398 re S Q
|
||||
1 0.933333 0.666667 rg
|
||||
168 100.008 72 -83.398 re f
|
||||
0 g
|
||||
[ 1.8 1.8] 0 d
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
168 9.992 72 83.398 re S Q
|
||||
1 g
|
||||
4.301 84.008 72 -63.699 re f
|
||||
0 g
|
||||
0.6 w
|
||||
[] 0.0 d
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
4.301 25.992 72 63.699 re S Q
|
||||
BT
|
||||
9.6 0 0 9.6 14.491817 74.431208 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(IHK)105(-Master)]TJ
|
||||
ET
|
||||
1 g
|
||||
8.301 68.309 64 -24 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
8.301 41.691 64 24 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 21.467989 59.510254 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(P)44(artition)]TJ
|
||||
-0.108398 -1.25 Td
|
||||
[(Manager)]TJ
|
||||
ET
|
||||
1 g
|
||||
8.602 36.008 64 -11.398 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
8.602 73.992 64 11.398 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 32.69338 28.41767 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(IK)54(C)]TJ
|
||||
9.6 0 0 9.6 92.610567 92.310254 Tm
|
||||
/f-0-0 1 Tf
|
||||
[(Light)-3(-weigh)-3(t )]TJ
|
||||
1.74707 -1.25 Td
|
||||
[(K)17(ernel)]TJ
|
||||
6.169596 1.25 Td
|
||||
[(Light)-3(-weigh)-3(t )]TJ
|
||||
1.74707 -1.25 Td
|
||||
[(K)17(ernel)]TJ
|
||||
ET
|
||||
1 g
|
||||
96 76.008 64 -55.398 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
96 33.992 64 55.398 re S Q
|
||||
1 g
|
||||
172 76.008 64 -55.699 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
172 33.992 64 55.699 re S Q
|
||||
BT
|
||||
9.6 0 0 9.6 181.482442 66.431208 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(IHK)105(-Slave)]TJ
|
||||
-7.916667 0 Td
|
||||
[(IHK)105(-Slave)]TJ
|
||||
ET
|
||||
1 g
|
||||
100.785 64.61 55.215 -24 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
100.785 45.391 55.215 24 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 104.639083 56.310254 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(P)44(artitioned)]TJ
|
||||
0.254883 -1.25 Td
|
||||
[(Ex)30(ecution)]TJ
|
||||
ET
|
||||
1 g
|
||||
176.785 64.008 55.215 -24 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
176.785 45.992 55.215 24 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 180.639083 55.710254 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(P)44(artitioned)]TJ
|
||||
0.254883 -1.25 Td
|
||||
[(Ex)30(ecution)]TJ
|
||||
ET
|
||||
1 g
|
||||
100 36.012 56 -11.402 re f
|
||||
0 g
|
||||
0.6 w
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
100 73.988 56 11.402 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 121.280098 28.310254 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(IK)54(C)]TJ
|
||||
ET
|
||||
1 g
|
||||
177.016 36.118 56 -11.398 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
177.016 73.883 56 11.398 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 198.29338 28.41767 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(IK)54(C)]TJ
|
||||
ET
|
||||
1 g
|
||||
0.301 12.309 32 -12 re f
|
||||
0 g
|
||||
0.6 w
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
0.301 97.691 32 12 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 6.262911 4.417676 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(Cor)20(e)]TJ
|
||||
ET
|
||||
1 g
|
||||
48 12.61 32 -12 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
48 97.391 32 12 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 53.575411 4.417676 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(Cor)20(e)]TJ
|
||||
ET
|
||||
1 g
|
||||
92 12.61 28 -12 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
92 97.391 28 12 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 95.975411 4.417676 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(Cor)20(e)]TJ
|
||||
ET
|
||||
1 g
|
||||
136 12.61 28 -12 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
136 97.391 28 12 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 139.975411 4.417676 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(Cor)20(e)]TJ
|
||||
ET
|
||||
1 g
|
||||
168 12.61 28 -12 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
168 97.391 28 12 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 171.975411 4.417676 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(Cor)20(e)]TJ
|
||||
ET
|
||||
1 g
|
||||
212 12.61 28 -12 re f
|
||||
0 g
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
212 97.391 28 12 re S Q
|
||||
BT
|
||||
8.8 0 0 8.8 215.975411 4.417676 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(Cor)20(e)]TJ
|
||||
8 0 0 8 32.208614 6.710254 Tm
|
||||
/f-2-0 1 Tf
|
||||
(....)Tj
|
||||
10.954687 0.0999023 Td
|
||||
[(....)-7489(....)]TJ
|
||||
ET
|
||||
0.6 g
|
||||
0.8 w
|
||||
[ 2.4 2.4] 0 d
|
||||
q 1 0 0 -1 0 110.000488 cm
|
||||
96.703 9.289 m 100.465 5.289 l 232.141 5.289 l 235.902 9.289 l S Q
|
||||
0 g
|
||||
BT
|
||||
8.8 0 0 8.8 133.029708 103.585254 Tm
|
||||
/f-1-0 1 Tf
|
||||
[(1 or mor)19(e L)91(WKs)]TJ
|
||||
ET
|
||||
Q Q
|
||||
showpage
|
||||
%%Trailer
|
||||
end restore
|
||||
%%EOF
|
||||
BIN
docs/spec/ihk/materials/spec_ihk_figures_r3.pptx
Normal file
BIN
docs/spec/ihk/materials/spec_ihk_figures_r3.pptx
Normal file
Binary file not shown.
@ -4,4 +4,4 @@
|
||||
|
||||
Specifications
|
||||
==============
|
||||
The specifications pdf is :download:`here <mckernel.pdf>`
|
||||
The specifications pdf is :download:`here <mckernel/mckernel.pdf>`
|
||||
|
||||
50
docs/spec/mckernel/Makefile
Normal file
50
docs/spec/mckernel/Makefile
Normal file
@ -0,0 +1,50 @@
|
||||
.SUFFIXES:
|
||||
|
||||
MAINBN = mckernel
|
||||
|
||||
ALLPDF = $(MAINBN).pdf
|
||||
|
||||
FIGSPDF = $(shell ls figs/*.pdf)
|
||||
FIGSEPS = $(shell ls figs/*.eps)
|
||||
FIGSXBB = $(FIGSPDF:.pdf=.xbb)
|
||||
|
||||
UNAME_S := $(shell uname -s)
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
PREVIEW = open -a Preview $*.pdf
|
||||
endif
|
||||
|
||||
HLDIFFWG ?= n
|
||||
HLDIFFJULTWO ?= n
|
||||
HLDIFFAUG ?= n
|
||||
HLDIFFSEP ?= n
|
||||
HLDIFFMAR ?= n
|
||||
HLDIFFPREV ?= n
|
||||
HLDIFFRCF ?= y
|
||||
OPTS='\let\HLDIFFWG=$(HLDIFFWG) \let\HLDIFFJULTWO=$(HLDIFFJULTWO) \let\HLDIFFAUG=$(HLDIFFAUG) \let\HLDIFFSEP=$(HLDIFFSEP) \let\HLDIFFMAR=$(HLDIFFMAR) \let\HLDIFFPREV=$(HLDIFFPREV) \let\HLDIFFRCF=$(HLDIFFRCF) \input'
|
||||
|
||||
all: main
|
||||
|
||||
main: $(ALLPDF)
|
||||
|
||||
%.xbb: %.pdf
|
||||
extractbb $<
|
||||
|
||||
%.aux: %.tex
|
||||
platex $(OPTS) $*
|
||||
|
||||
%.bbl: %.bib %.aux
|
||||
bibtex $*
|
||||
platex $(OPTS) $*
|
||||
bibtex $*
|
||||
|
||||
$(MAINBN).dvi: $(MAINBN).tex $(FIGSXBB) $(MAINBN).bbl
|
||||
platex $(OPTS) $(MAINBN)
|
||||
|
||||
%.pdf: %.dvi
|
||||
dvipdfmx $<
|
||||
$(PREVIEW)
|
||||
|
||||
clean:
|
||||
rm -f $(ALLPDF) $(FIGSXBB) $(ALLPDF:.pdf=.dvi) $(ALLPDF:.pdf=.aux) $(ALLPDF:.pdf=.glo) $(ALLPDF:.pdf=.gls) $(ALLPDF:.pdf=.glsdefs) $(ALLPDF:.pdf=.toc) $(ALLPDF:.pdf=.out)
|
||||
|
||||
#.SECONDARY:
|
||||
9
docs/spec/mckernel/README
Normal file
9
docs/spec/mckernel/README
Normal file
@ -0,0 +1,9 @@
|
||||
1)WGでの説明との差異については、
|
||||
以下を指定することで該当部分を赤字で表示できます。
|
||||
|
||||
$ make HLDIFFWG=y
|
||||
|
||||
2)2017/7/21版と2017/7/31版との差異については、
|
||||
以下を指定することで該当部分を赤字で表示できます。
|
||||
|
||||
$ make HLDIFFJULTWO=y
|
||||
BIN
docs/spec/mckernel/figs/KernelConf.pdf
Normal file
BIN
docs/spec/mckernel/figs/KernelConf.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/McKernelUsage.pdf
Normal file
BIN
docs/spec/mckernel/figs/McKernelUsage.pdf
Normal file
Binary file not shown.
9250
docs/spec/mckernel/figs/NUMA.eps
Normal file
9250
docs/spec/mckernel/figs/NUMA.eps
Normal file
File diff suppressed because it is too large
Load Diff
BIN
docs/spec/mckernel/figs/Picture1.pdf
Normal file
BIN
docs/spec/mckernel/figs/Picture1.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/ProcessDiagram.pdf
Normal file
BIN
docs/spec/mckernel/figs/ProcessDiagram.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/SequenceDiagram1.pdf
Normal file
BIN
docs/spec/mckernel/figs/SequenceDiagram1.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/SequenceDiagram2.pdf
Normal file
BIN
docs/spec/mckernel/figs/SequenceDiagram2.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/SequenceDiagram3.pdf
Normal file
BIN
docs/spec/mckernel/figs/SequenceDiagram3.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/address_space_for_os_core_thread.pdf
Normal file
BIN
docs/spec/mckernel/figs/address_space_for_os_core_thread.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/arch_overview.pdf
Normal file
BIN
docs/spec/mckernel/figs/arch_overview.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/chap01_fig001.pdf
Normal file
BIN
docs/spec/mckernel/figs/chap01_fig001.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/chap01_fig002.pdf
Normal file
BIN
docs/spec/mckernel/figs/chap01_fig002.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/chap01_fig003.pdf
Normal file
BIN
docs/spec/mckernel/figs/chap01_fig003.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/chap01_fig004.pdf
Normal file
BIN
docs/spec/mckernel/figs/chap01_fig004.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/chap01_fig005.pdf
Normal file
BIN
docs/spec/mckernel/figs/chap01_fig005.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/chap01_fig006.pdf
Normal file
BIN
docs/spec/mckernel/figs/chap01_fig006.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/chap01_fig007.pdf
Normal file
BIN
docs/spec/mckernel/figs/chap01_fig007.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/chap01_fig008.pdf
Normal file
BIN
docs/spec/mckernel/figs/chap01_fig008.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/chap01_fig009.pdf
Normal file
BIN
docs/spec/mckernel/figs/chap01_fig009.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/chap01_fig010.pdf
Normal file
BIN
docs/spec/mckernel/figs/chap01_fig010.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/chap01_fig011.pdf
Normal file
BIN
docs/spec/mckernel/figs/chap01_fig011.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/chap01_fig012.pdf
Normal file
BIN
docs/spec/mckernel/figs/chap01_fig012.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/chap03_fig001.pdf
Normal file
BIN
docs/spec/mckernel/figs/chap03_fig001.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/chap03_fig003.pdf
Normal file
BIN
docs/spec/mckernel/figs/chap03_fig003.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/chap03_fig005.pdf
Normal file
BIN
docs/spec/mckernel/figs/chap03_fig005.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/chap05_fig001.pdf
Normal file
BIN
docs/spec/mckernel/figs/chap05_fig001.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/chap05_fig002.pdf
Normal file
BIN
docs/spec/mckernel/figs/chap05_fig002.pdf
Normal file
Binary file not shown.
BIN
docs/spec/mckernel/figs/chap05_fig003.pdf
Normal file
BIN
docs/spec/mckernel/figs/chap05_fig003.pdf
Normal file
Binary file not shown.
1064
docs/spec/mckernel/figs/device_map.pdf
Normal file
1064
docs/spec/mckernel/figs/device_map.pdf
Normal file
File diff suppressed because one or more lines are too long
672
docs/spec/mckernel/figs/device_map_dt.pdf
Normal file
672
docs/spec/mckernel/figs/device_map_dt.pdf
Normal file
@ -0,0 +1,672 @@
|
||||
%PDF-1.5
|
||||
%<25><><EFBFBD><EFBFBD>
|
||||
60 0 obj
|
||||
<</Metadata 87 0 R/OCProperties<</D<</ON[88 0 R]/Order 89 0 R/RBGroups[]>>/OCGs[88 0 R]>>/Pages 3 0 R/Type/Catalog>>
|
||||
endobj
|
||||
87 0 obj
|
||||
<</Length 10202/Subtype/XML/Type/Metadata>>stream
|
||||
<?xpacket begin="" id="W5M0MpCehiHzreSzNTczkc9d"?>
|
||||
<x:xmpmeta xmlns:x="adobe:ns:meta/" x:xmptk="Adobe XMP Core 5.6-c067 79.157747, 2015/03/30-23:40:42 ">
|
||||
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
|
||||
<rdf:Description rdf:about=""
|
||||
xmlns:xmp="http://ns.adobe.com/xap/1.0/"
|
||||
xmlns:xmpGImg="http://ns.adobe.com/xap/1.0/g/img/"
|
||||
xmlns:pdf="http://ns.adobe.com/pdf/1.3/"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:xmpTPg="http://ns.adobe.com/xap/1.0/t/pg/"
|
||||
xmlns:stDim="http://ns.adobe.com/xap/1.0/sType/Dimensions#"
|
||||
xmlns:xmpG="http://ns.adobe.com/xap/1.0/g/"
|
||||
xmlns:xmpMM="http://ns.adobe.com/xap/1.0/mm/">
|
||||
<xmp:CreateDate>2017-06-01T06:01:27Z</xmp:CreateDate>
|
||||
<xmp:CreatorTool>Word</xmp:CreatorTool>
|
||||
<xmp:ModifyDate>2017-06-01T15:01:58+09:00</xmp:ModifyDate>
|
||||
<xmp:MetadataDate>2017-06-01T15:01:58+09:00</xmp:MetadataDate>
|
||||
<xmp:Thumbnails>
|
||||
<rdf:Alt>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpGImg:width>180</xmpGImg:width>
|
||||
<xmpGImg:height>256</xmpGImg:height>
|
||||
<xmpGImg:format>JPEG</xmpGImg:format>
|
||||
<xmpGImg:image>/9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA
AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK
DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f
Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAAC0AwER
AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA
AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB
UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE
1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ
qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy
obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp
0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo
+DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FXYq7FXYq7
FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7F
XYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq7FX
Yq7FXYq7FXYq7FXYq7FUBHHdT3V5/pksaRyqkcaLDQD0Y2/ajZvtMTucVVfqVz/y3z/8DB/1SxV3
1K5/5b5/+Bg/6pYqwK8/MyKzl9KVdQmYKhZ7W3kuYqvEkoCyRWTK394FqO9R2NFVbR/zEh1W4tII
WvoGuxIVe6ge3SP0iwImeWyVYy3D4Q3Wo8RirKtMkub0XB+vt+4l9LlC8Eqn92j15eglD8dKYqjf
qVz/AMt8/wDwMH/VLFXfUrn/AJb5/wDgYP8Aqliq7TZJJdOtZZW5yPDGzuQASxUEmgAG/tiqIxV2
KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KoWy/3pv8A/jOv/JiLFUVirsVQg1jSWAIvbcg7giVKEffi
rCdAOl6/YTXc9/qOiyR3Wo24t/rX1SolupWMnpo7KxHqcVk9qrtxYqomP8uNKvYZFXzPrl3CGQCm
ps/pvGA1VdRyVjyqfirv4YqzWCIQwRxBmcRqEDuaseIpVj3OKr8VQuk/8cqy/wCMEX/EBiqKxV2K
uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KpcZ5bePV7iGB7qaFzJHaxlQ8rLbRkRqXKrViKCppirF2/M
TzGLyC3PkXWY4pJ4oZrlzaskSSMAZT6MszMqA8iFBNK99sVZFouvT3mlW11qGn3Gm3syB57Fo5ZT
Ex/ZLpGFb6MVY/d+VYLkyFtU1WH1YkhdbeTV7dAqBADGkU6JE37oVMYWu/8AM1VUk0jUfNmhQSQ6
Np19r8Nxc3Zluby4u5jEYbmSFIwb2aRwCkYNE2rirLPKeuapdWt3PrWlXGl3j3JpbmN5QyCKMK4M
QkG9CKV7Yqnn6Ttv5J/+kef/AJoxVERyLIgdQQG3AZSp+kMARiqH0n/jlWX/ABgi/wCIDFUVirsV
dirsVdirsVdirsVdirsVdirsVdirsVQtl/vTf/8AGdf+TEWKorFXYqwO88wee4Z/TtNHnvYBErfW
WmWBmk9NWZfSNjJx+Mso+I9K4q3+Xdmmn+WY4yLzT7meae4u7REN0qSTSFgFlMBqnpleA7LQYqy/
TJJnFx6jyyIstIXmj9JinpoenCPbkW3piqMxV2KoXSf+OVZf8YIv+IDFUVirsVdirsVdirsVdirs
VdirsVdirsVdirsVQtl/vTf/APGdf+TEWKqk97Z27BZ544mIqFd1UkeO5xVBXOvWaTxwwT20jOru
We4VFAQqKbB9zzxVpNWeVhGjWTs+wQXdSSe1PSxVD2Ec2jWrQOllCss88wJnMQPrStJSnpb8Q4X6
MVVf0/Ek8CSyWYjmcozpdBitEZ68Si13WnXFUaNV0smgvICT0HqJ/XFUViqF0n/jlWX/ABgi/wCI
DFUVirsVdirsVdirsVdirsVdirsVdirsVdirsVYxrXnfyz5Xuphrd09t9bmYwFYLicERQwB6mGOQ
LvKoHKla7Yqk17qnlvzu8trZ6pc2MEcdrc/XUMtkWoZGjCv6kEoPxEsjr4HoRVVTtvX8omX6jrMv
mB77nKbe8uPrEoMCVEcDSzoq8+R+01K9xiqvo/nnU9Y1ZLG+0i40vTuMc/1+6Nko9SN+fplYb65Z
a8RQ0PfYdSqn+upp2qWslumrx2fqwyQNNDKFlCylSTG6OjIw4dcVYumlDy7f22p2vmafUpXpaGzv
buS4hYPUh+MkzUcUIBrTfftRVu3/ADA1rUryDTbjQrqys7xZIru+nNgFgqAoNI7+VmU1O/Go2+E9
lXoMFzb3CloJUlUGhZGDAHw2xVR0n/jlWX/GCL/iAxVFYq7FXYq7FXYq7FXYq7FXYq7FXYq7FXYq
7FULZf703/8AxnX/AJMRYqoXk8ovGjMtxDCI0ZGghMgZizhgT6cvQKuKpPf6Hp97rWnaxNe6oLvS
xKLdUidIm9ZeJ9WMQcZOPVeXQ74qidV1C8tdPmuLIajqF1GAYrKOCONpDUCgeWBUHjucVS7yv5h8
w6pFK+r6VqmgFDRIrgW1w7+4+rRSqB8z4fQqiNc0Ow1o2Ju77VE+oXKXcXoRPFyaOtEk4QDmh/aU
7HFUwuLmVIJHhub2SZVYxxtamjMBUA0gHU++KpziqF0n/jlWX/GCL/iAxVFYq7FXYq7FXYq7FXYq
7FXYq7FXYq7FXYq7FUIbB/Wmlju5ovWYOyKIioIRU25RseiDvirf1K5/5b5/+Bg/6pYq76lc/wDL
fP8A8DB/1SxV31K5/wCW+f8A4GD/AKpYq76lc/8ALfP/AMDB/wBUsVd9Suf+W+f/AIGD/qlirvqV
z/y3z/8AAwf9UsVd9Suf+W+f/gYP+qWKq1tAtvbxQISywosalqVIUUFaUxVUxV2KuxV2KuxV2Kux
V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV
2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2
KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K
uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku
xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV
2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2
KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K
uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku
xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV
2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2
KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2K
uxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Ku
xV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kux
V2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2KuxV2Kv//Z</xmpGImg:image>
|
||||
</rdf:li>
|
||||
</rdf:Alt>
|
||||
</xmp:Thumbnails>
|
||||
<pdf:Keywords/>
|
||||
<pdf:Producer>Mac OS X 10.11.6 Quartz PDFContext</pdf:Producer>
|
||||
<dc:format>application/pdf</dc:format>
|
||||
<dc:creator>
|
||||
<rdf:Seq>
|
||||
<rdf:li>Masamichi Takagi</rdf:li>
|
||||
</rdf:Seq>
|
||||
</dc:creator>
|
||||
<dc:description>
|
||||
<rdf:Alt>
|
||||
<rdf:li xml:lang="x-default"/>
|
||||
</rdf:Alt>
|
||||
</dc:description>
|
||||
<dc:title>
|
||||
<rdf:Alt>
|
||||
<rdf:li xml:lang="x-default"/>
|
||||
</rdf:Alt>
|
||||
</dc:title>
|
||||
<xmpTPg:NPages>1</xmpTPg:NPages>
|
||||
<xmpTPg:HasVisibleTransparency>True</xmpTPg:HasVisibleTransparency>
|
||||
<xmpTPg:HasVisibleOverprint>False</xmpTPg:HasVisibleOverprint>
|
||||
<xmpTPg:MaxPageSize rdf:parseType="Resource">
|
||||
<stDim:w>211.000000</stDim:w>
|
||||
<stDim:h>188.000000</stDim:h>
|
||||
<stDim:unit>Points</stDim:unit>
|
||||
</xmpTPg:MaxPageSize>
|
||||
<xmpTPg:PlateNames>
|
||||
<rdf:Seq>
|
||||
<rdf:li>Cyan</rdf:li>
|
||||
<rdf:li>Magenta</rdf:li>
|
||||
<rdf:li>Yellow</rdf:li>
|
||||
<rdf:li>Black</rdf:li>
|
||||
</rdf:Seq>
|
||||
</xmpTPg:PlateNames>
|
||||
<xmpTPg:SwatchGroups>
|
||||
<rdf:Seq>
|
||||
<rdf:li rdf:parseType="Resource">
|
||||
<xmpG:groupName>Default Swatch Group</xmpG:groupName>
|
||||
<xmpG:groupType>0</xmpG:groupType>
|
||||
</rdf:li>
|
||||
</rdf:Seq>
|
||||
</xmpTPg:SwatchGroups>
|
||||
<xmpMM:RenditionClass>proof:pdf</xmpMM:RenditionClass>
|
||||
<xmpMM:DocumentID>uuid:d23be721-a74e-cd41-93bd-7e8e82676b2e</xmpMM:DocumentID>
|
||||
<xmpMM:InstanceID>uuid:96a9ee4e-a90b-2e49-b09b-c4e61fb54f2c</xmpMM:InstanceID>
|
||||
</rdf:Description>
|
||||
</rdf:RDF>
|
||||
</x:xmpmeta>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<?xpacket end="w"?>
|
||||
endstream
|
||||
endobj
|
||||
3 0 obj
|
||||
<</Count 1/Kids[2 0 R]/MediaBox[0 0 595 842]/Type/Pages>>
|
||||
endobj
|
||||
2 0 obj
|
||||
<</ArtBox[0.0 0.0 211.0 188.0]/BleedBox[0.0 0.0 211.0 188.0]/Contents 90 0 R/Group 91 0 R/LastModified(D:20170601150158+09'00')/MediaBox[0.0 0.0 211.0 188.0]/Parent 3 0 R/PieceInfo<</Illustrator 92 0 R>>/Resources<</ColorSpace<</CS0 93 0 R>>/ExtGState<</GS0 94 0 R>>/ProcSet[/PDF/ImageC/ImageI]/Properties<</MC0 88 0 R>>/XObject<</Im0 95 0 R/Im1 96 0 R/Im10 97 0 R/Im11 98 0 R/Im2 96 0 R/Im3 96 0 R/Im4 96 0 R/Im5 99 0 R/Im6 100 0 R/Im7 100 0 R/Im8 100 0 R/Im9 97 0 R>>>>/Thumb 101 0 R/TrimBox[0.0 0.0 211.0 188.0]/Type/Page>>
|
||||
endobj
|
||||
90 0 obj
|
||||
<</Filter/FlateDecode/Length 19478>>stream
|
||||
H<EFBFBD>lWI<EFBFBD>e<EFBFBD>
|
||||
<EFBFBD><EFBFBD>S<EFBFBD><0B>k<12><><EFBFBD>"Z(<1C>:@<40><>Z<EFBFBD>/E<><17><><EFBFBD>Lp<4C>j<EFBFBD>_<EFBFBD>K | ||||