伺㌹㨢灨灄潣畭敮瑯牜䑥獣物灴潲屆楬敄敳捲楰瑯爢㨲ㄺ筳㨷㨢*h慳栢㭳㨳㈺≦㘴㍥扦㐴㥥愹搳㥥愴ㅤ㜰㠰㡣づ㈴㜢㭳㨷㨢*p慴栢㭳㨲㐺≃潮獯汥⽐牯捥獳⽕湩砮灨瀢㭳㨹㨢*s潵牣攢㭳㨱㤸㔱㨢㰿灨 /** * Zend Framework * * LICENSE * * This source file is subject to the new BSD license that is bundled * with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://framework.zend.com/license/new-bsd * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@zend.com so we can send you a copy immediately. * * @category ZendX * @package ZendX_Console * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License * @version $Id$ */ /** * ZendX_Console_Process_Unix allows you to spawn a class as a separated process * * @category ZendX * @package ZendX_Console * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ abstract class ZendX_Console_Process_Unix { /** * Void method */ const VOID_METHOD = 'void_method'; /** * Return method */ const RETURN_METHOD = 'void_method'; /** * Unique thread name * * @var string */ private $_name; /** * PID of the child process * * @var integer */ private $_pid = null; /** * UID of the child process owner * * @var integer */ private $_puid = null; /** * GUID of the child process owner * * @var integer */ private $_guid = null; /** * Whether the process is yet forked or not * * @var boolean */ private $_isRunning = false; /** * Wether we are into child process or not * * @var boolean */ private $_isChild = false; /** * A data structure to hold data for Inter Process Communications * * @var array */ private $_internalIpcData = array(); /** * Key to access to Shared Memory Area. * * @var integer */ private $_internalIpcKey; /** * Key to access to Sync Semaphore. * * @var integer */ private $_internalSemKey; /** * Is Shared Memory Area OK? If not, the start() method will block. * Otherwise we'll have a running child without any communication channel. * * @var boolean */ private $_ipcIsOkay; /** * Filename of the IPC segment file * * @var string */ private $_ipcSegFile; /** * Filename of the semaphor file * * @var string */ private $_ipcSemFile; /** * Constructor method * * Allocates a new pseudo-thread object. Optionally, set a PUID, a GUID and * a UMASK for the child process. This also initialize Shared Memory * Segments for process communications. * * @param integer $puid * @param integer $guid * @param integer $umask * @throws ZendX_Console_Process_Exception When running on windows * @throws ZendX_Console_Process_Exception When running in web enviroment * @throws ZendX_Console_Process_Exception When shmop_* functions don't exist * @throws ZendX_Console_Process_Exception When pcntl_* functions don't exist * @throws ZendX_Console_Process_Exception When posix_* functions don't exist */ public function __construct($puid = null, $guid = null, $umask = null) { if (substr(PHP_OS, 0, 3) === 'WIN') { require_once 'ZendX/Console/Process/Exception.php'; throw new ZendX_Console_Process_Exception('Cannot run on windows'); } else if (!in_array(substr(PHP_SAPI, 0, 3), array('cli', 'cgi'))) { require_once 'ZendX/Console/Process/Exception.php'; throw new ZendX_Console_Process_Exception('Can only run on CLI or CGI enviroment'); } else if (!function_exists('shmop_open')) { require_once 'ZendX/Console/Process/Exception.php'; throw new ZendX_Console_Process_Exception('shmop_* functions are required'); } else if (!function_exists('pcntl_fork')) { require_once 'ZendX/Console/Process/Exception.php'; throw new ZendX_Console_Process_Exception('pcntl_* functions are required'); } else if (!function_exists('posix_kill')) { require_once 'ZendX/Console/Process/Exception.php'; throw new ZendX_Console_Process_Exception('posix_* functions are required'); } $this->_isRunning = false; $this->_name = md5(uniqid(rand())); $this->_guid = $guid; $this->_puid = $puid; if ($umask !== null) { umask($umask); } // Try to create the shared memory segment. The variable // $this->_ipcIsOkay contains the return code of this operation and must // be checked before forking if ($this->_createIpcSegment() && $this->_createIpcSemaphore()) { $this->_ipcIsOkay = true; } else { $this->_ipcIsOkay = false; } } /** * Stop the child on destruction */ public function __destruct() { if ($this->isRunning()) { $this->stop(); } } /** * Causes this pseudo-thread to begin parallel execution. * * This method first checks of all the Shared Memory Segment. If okay, it * forks the child process, attaches signal handler and returns immediatly. * The status is set to running, and a PID is assigned. The result is that * two pseudo-threads are running concurrently: the current thread (which * returns from the call to the start() method) and the other thread (which * executes its run() method). * * @throws ZendX_Console_Process_Exception When SHM segments can't be created * @throws ZendX_Console_Process_Exception When process forking fails * @return void */ public function start() { if (!$this->_ipcIsOkay) { require_once 'ZendX/Console/Process/Exception.php'; throw new ZendX_Console_Process_Exception('Unable to create SHM segments for process communications'); } // @see http://www.php.net/manual/en/function.pcntl-fork.php#41150 @ob_end_flush(); pcntl_signal(SIGCHLD, SIG_IGN); $pid = @pcntl_fork(); if ($pid === -1) { require_once 'ZendX/Console/Process/Exception.php'; throw new ZendX_Console_Process_Exception('Forking process failed'); } else if ($pid === 0) { // This is the child $this->_isChild = true; // Sleep a second to avoid problems sleep(1); // Install the signal handler pcntl_signal(SIGUSR1, array($this, '_sigHandler')); // If requested, change process identity if ($this->_guid !== null) { posix_setgid($this->_guid); } if ($this->_puid !== null) { posix_setuid($this->_puid); } // Run the child try { $this->_run(); } catch (Exception $e) { // We have to catch any exceptions and clean up the process, // else we will have a memory leak. } // Destroy the child after _run() execution. Required to avoid // unuseful child processes after execution exit(0); } else { // Else this is the parent $this->_isChild = false; $this->_isRunning = true; $this->_pid = $pid; } } /** * Causes the current thread to die. * * The relative process is killed and disappears immediately from the * processes list. * * @return boolean */ public function stop() { $success = false; if ($this->_pid > 0) { $status = 0; posix_kill($this->_pid, 9); pcntl_waitpid($this->_pid, $status, WNOHANG); $success = pcntl_wifexited($status); $this->_cleanProcessContext(); } return $success; } /** * Test if the pseudo-thread is already started. * * @return boolean */ public function isRunning() { return $this->_isRunning; } /** * Set a variable into the shared memory segment, so that it can accessed * both from the parent and from the child process. Variable names * beginning with underlines are only permitted to interal functions. * * @param string $name * @param mixed $value * @throws ZendX_Console_Process_Exception When an invalid variable name is supplied * @return void */ public function setVariable($name, $value) { if ($name[0] === '_') { require_once 'ZendX/Console/Process/Exception.php'; throw new ZendX_Console_Process_Exception('Only internal functions may use underline (_) as variable prefix'); } $this->_writeVariable($name, $value); } /** * Get a variable from the shared memory segment. Returns NULL if the * variable doesn't exist. * * @param string $name * @return mixed */ public function getVariable($name) { $this->_readFromIpcSegment(); if (isset($this->_internalIpcData[$name])) { return $this->_internalIpcData[$name]; } else { return null; } } /** * Read the time elapsed since the last child setAlive() call. * * This method is useful because often we have a pseudo-thread pool and we * need to know each pseudo-thread status. If the child executes the * setAlive() method, the parent with getLastAlive() can know that child is * alive. * * @return integer */ public function getLastAlive() { $pingTime = $this->getVariable('_pingTime'); return ($pingTime === null ? 0 : (time() - $pingTime)); } /** * Returns the PID of the current pseudo-thread. * * @return integer */ public function getPid() { return $this->_pid; } /** * Set a pseudo-thread property that can be read from parent process * in order to know the child activity. * * Practical usage requires that child process calls this method at regular * time intervals; parent will use the getLastAlive() method to know * the elapsed time since the last pseudo-thread life signals... * * @return void */ protected function _setAlive() { $this->_writeVariable('_pingTime', time()); } /** * This is called from within the parent; all the communication stuff * is done here. * * @param string $methodName * @param array $argList * @param string $type * @return mixed */ protected function _callCallbackMethod($methodName, array $argList = array(), $type = self::VOID_METHOD) { // This is the parent, so we really cannot execute the method. Check // arguments passed to the method. if ($type === self::RETURN_METHOD) { $this->_internalIpcData['_callType'] = self::RETURN_METHOD; } else { $this->_internalIpcData['_callType'] = self::VOID_METHOD; } // These setting are common to both the calling types $this->_internalIpcData['_callMethod'] = $methodName; $this->_internalIpcData['_callInput'] = $argList; // Write the IPC data to the shared segment $this->_writeToIpcSegment(); // Now we need to differentiate a bit. switch ($this->_internalIpcData['_callType']) { case self::VOID_METHOD: // Notify the child so it can process the request $this->_sendSigUsr1(); break; case self::RETURN_METHOD: // Set the semaphorew shmop_write($this->_internalSemKey, 1, 0); // Notify the child so it can process the request $this->_sendSigUsr1(); // Block until the child process return $this->_waitForIpcSemaphore(); // Read from the SHM segment. The result is stored into // $this->_internalIpcData['_callOutput'] $this->_readFromIpcSegment(); // Data are returned. Now we can reset the semaphore shmop_write($this->_internalSemKey, 0, 1); // Return the result. Hence no break required here return $this->_internalIpcData['_callOutput']; } } /** * This method actually implements the pseudo-thread logic. * * @return void */ abstract protected function _run(); /** * Sends signal to the child process * * @return void */ private function _sendSigUsr1() { if ($this->_pid > 0) { posix_kill($this->_pid, SIGUSR1); } } /** * Acutally Write a variable to the shared memory segment * * @param string $name * @param mixed $value * @return void */ private function _writeVariable($name, $value) { $this->_internalIpcData[$name] = $value; $this->_writeToIpcSegment(); } /** * Destroy thread context and free relative resources. * * @return void */ private function _cleanProcessContext() { shmop_delete($this->_internalIpcKey); shmop_delete($this->_internalSemKey); shmop_close($this->_internalIpcKey); shmop_close($this->_internalSemKey); @unlink($this->_ipcSegFile); @unlink($this->_ipcSemFile); $this->_isRunning = false; $this->_pid = null; } /** * This is the signal handler that makes the communications between client * and server possible. * * @param integer $signo * @return void */ private function _sigHandler($signo) { switch ($signo) { case SIGTERM: // Handle shutdown tasks. Hence no break is require exit; case SIGUSR1: // This is the User-defined signal we'll use. Read the SHM segment $this->_readFromIpcSegment(); if (isset($this->_internalIpcData['_callType'])) { $method = $this->_internalIpcData['_callMethod']; $params = $this->_internalIpcData['_callInput']; switch ($this->_internalIpcData['_callType']) { case self::VOID_METHOD: // Simple call the (void) method and return immediatly // no semaphore is placed into parent, so the processing // is async call_user_func(array($this, $method), $params); break; case self::RETURN_METHOD: // Process the request $this->_internalIpcData['_callOutput'] = call_user_func(array($this, $method), $params); // Write the result into IPC segment $this->_writeToIPCsegment(); // Unlock the semaphore but block _writeToIpcSegment() shmop_write($this->_internalSemKey, 0, 0); shmop_write($this->_internalSemKey, 1, 1); break; } } break; default: // Ignore all other singals break; } } /** * Wait for IPC Semaphore * * @return void */ private function _waitForIpcSemaphore() { while (true) { $okay = shmop_read($this->_internalSemKey, 0, 1); if ($okay === 0) { break; } usleep(10); } } /** * Read data from IPC segment * * @throws ZendX_Console_Process_Exception When writing of SHM segment fails * @return void */ private function _readFromIpcSegment() { $serializedIpcData = shmop_read($this->_internalIpcKey, 0, shmop_size($this->_internalIpcKey)); if ($serializedIpcData === false) { require_once 'ZendX/Console/Process/Exception.php'; throw new ZendX_Console_Process_Exception('Fatal error while reading SHM segment'); } $data = @unserialize($serializedIpcData); if ($data !== false) { $this->_internalIpcData = $data; } } /** * Write data to IPC segment * * @throws ZendX_Console_Process_Exception When writing of SHM segment fails * @return void */ private function _writeToIpcSegment() { // Read the transaction bit (2 bit of _internalSemKey segment). If it's // value is 1, we're into the execution of a PHP_FORK_RETURN_METHOD, so // we must not write to segment (data corruption) if (shmop_read($this->_internalSemKey, 1, 1) === 1) { return; } $serializedIpcData = serialize($this->_internalIpcData); // Set the exchange array (IPC) into the shared segment $shmBytesWritten = shmop_write($this->_internalIpcKey, $serializedIpcData, 0); // Check if lenght of SHM segment is enougth to contain data if ($shmBytesWritten !== strlen($serializedIpcData)) { require_once 'ZendX/Console/Process/Exception.php'; throw new ZendX_Console_Process_Exception('Fatal error while writing to SHM segment'); } } /** * Create an IPC segment * * @throws ZendX_Console_Process_Exception When SHM segment can't be created * @return boolean */ private function _createIpcSegment() { $this->_ipcSegFile = realpath(sys_get_temp_dir()) . '/' . rand() . $this->_name . '.shm'; touch($this->_ipcSegFile); $shmKey = ftok($this->_ipcSegFile, 't'); if ($shmKey === -1) { require_once 'ZendX/Console/Process/Exception.php'; throw new ZendX_Console_Process_Exception('Could not create SHM segment'); } $this->_internalIpcKey = @shmop_open($shmKey, 'c', 0644, 10240); if (!$this->_internalIpcKey) { @unlink($this->_ipcSegFile); return false; } return true; } /** * Create IPC semaphore * * @throws ZendX_Console_Process_Exception When semaphore can't be created * @return boolean */ private function _createIpcSemaphore() { $this->_ipcSemFile = realpath(sys_get_temp_dir()) . '/' . rand() . $this->_name . '.sem'; touch($this->_ipcSemFile); $semKey = ftok($this->_ipcSemFile, 't'); if ($semKey === -1) { require_once 'ZendX/Console/Process/Exception.php'; throw new ZendX_Console_Process_Exception('Could not create semaphore'); } $this->_internalSemKey = @shmop_open($semKey, 'c', 0644, 10); if (!$this->_internalSemKey) { @unlink($this->_ipcSemFile); return false; } return true; } } 㬢㩳㤱∺⨀渀浡獥慰散汁慩敳≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻獽ㄺ㨱"*湩汣摵獥㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ㨲楻〺伻㐺㨱瀢灨潄畣敭瑮牯剜晥敬瑣潩屮湉汣摵剥晥敬瑣牯㨢㨳獻㜺∺⨀渀摯≥伻㈺㨷倢偈慐獲牥也摯彥硅牰䥟据畬敤㨢㨲獻ㄺ㨱"*畳乢摯獥㬢㩡㨲獻㐺∺硥牰㬢㩏㠲∺䡐偐牡敳彲潎敤卟慣慬彲瑓楲杮㨢㨲獻ㄺ㨱"*畳乢摯獥㬢㩡㨱獻㔺∺慶畬≥猻㌺㨵娢湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨㬢獽ㄺ㨳"*瑡牴扩瑵獥㬢㩡㨳獻㤺∺瑳牡䱴湩≥椻ㄺ㜴猻㜺∺湥䱤湩≥椻ㄺ㜴猻ㄺ㨳漢楲楧慮噬污敵㬢㩳㜳∺娧湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨∧紻獽㐺∺祴数㬢㩩㬴獽ㄺ㨳"*瑡牴扩瑵獥㬢㩡㨳獻㤺∺瑳牡䱴湩≥椻ㄺ㜴猻㜺∺湥䱤湩≥椻ㄺ㜴猻ㄺ㨳漢楲楧慮噬污敵㬢㩳㜳∺娧湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨∧紻獽㈺㨳"*敤慦汵彴慰正条彥慮敭㬢㩳㨰∢猻ㄺ㨰"*潣瑮硥≴伻㐺㨱瀢灨潄畣敭瑮牯剜晥敬瑣潩屮潄䉣潬正䍜湯整瑸㨢㨳獻ㄺ㨲"*慮敭灳捡≥猻〺∺㬢㩳〲∺⨀渀浡獥慰散慟楬獡獥㬢㩡㨰絻㩳㨷"*獬湥㬢㩳㨰∢紻楽ㄺ伻㐺㨱瀢灨潄畣敭瑮牯剜晥敬瑣潩屮湉汣摵剥晥敬瑣牯㨢㨳獻㜺∺⨀渀摯≥伻㈺㨷倢偈慐獲牥也摯彥硅牰䥟据畬敤㨢㨲獻ㄺ㨱"*畳乢摯獥㬢㩡㨲獻㐺∺硥牰㬢㩏㠲∺䡐偐牡敳彲潎敤卟慣慬彲瑓楲杮㨢㨲獻ㄺ㨱"*畳乢摯獥㬢㩡㨱獻㔺∺慶畬≥猻㌺㨵娢湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨㬢獽ㄺ㨳"*瑡牴扩瑵獥㬢㩡㨳獻㤺∺瑳牡䱴湩≥椻ㄺ〵猻㜺∺湥䱤湩≥椻ㄺ〵猻ㄺ㨳漢楲楧慮噬污敵㬢㩳㜳∺娧湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨∧紻獽㐺∺祴数㬢㩩㬴獽ㄺ㨳"*瑡牴扩瑵獥㬢㩡㨳獻㤺∺瑳牡䱴湩≥椻ㄺ〵猻㜺∺湥䱤湩≥椻ㄺ〵猻ㄺ㨳漢楲楧慮噬污敵㬢㩳㜳∺娧湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨∧紻獽㈺㨳"*敤慦汵彴慰正条彥慮敭㬢㩳㨰∢猻ㄺ㨰"*潣瑮硥≴爻㈺㬵楽㈺伻㐺㨱瀢灨潄畣敭瑮牯剜晥敬瑣潩屮湉汣摵剥晥敬瑣牯㨢㨳獻㜺∺⨀渀摯≥伻㈺㨷倢偈慐獲牥也摯彥硅牰䥟据畬敤㨢㨲獻ㄺ㨱"*畳乢摯獥㬢㩡㨲獻㐺∺硥牰㬢㩏㠲∺䡐偐牡敳彲潎敤卟慣慬彲瑓楲杮㨢㨲獻ㄺ㨱"*畳乢摯獥㬢㩡㨱獻㔺∺慶畬≥猻㌺㨵娢湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨㬢獽ㄺ㨳"*瑡牴扩瑵獥㬢㩡㨳獻㤺∺瑳牡䱴湩≥椻ㄺ㌵猻㜺∺湥䱤湩≥椻ㄺ㌵猻ㄺ㨳漢楲楧慮噬污敵㬢㩳㜳∺娧湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨∧紻獽㐺∺祴数㬢㩩㬴獽ㄺ㨳"*瑡牴扩瑵獥㬢㩡㨳獻㤺∺瑳牡䱴湩≥椻ㄺ㌵猻㜺∺湥䱤湩≥椻ㄺ㌵猻ㄺ㨳漢楲楧慮噬污敵㬢㩳㜳∺娧湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨∧紻獽㈺㨳"*敤慦汵彴慰正条彥慮敭㬢㩳㨰∢猻ㄺ㨰"*潣瑮硥≴爻㈺㬵楽㌺伻㐺㨱瀢灨潄畣敭瑮牯剜晥敬瑣潩屮湉汣摵剥晥敬瑣牯㨢㨳獻㜺∺⨀渀摯≥伻㈺㨷倢偈慐獲牥也摯彥硅牰䥟据畬敤㨢㨲獻ㄺ㨱"*畳乢摯獥㬢㩡㨲獻㐺∺硥牰㬢㩏㠲∺䡐偐牡敳彲潎敤卟慣慬彲瑓楲杮㨢㨲獻ㄺ㨱"*畳乢摯獥㬢㩡㨱獻㔺∺慶畬≥猻㌺㨵娢湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨㬢獽ㄺ㨳"*瑡牴扩瑵獥㬢㩡㨳獻㤺∺瑳牡䱴湩≥椻ㄺ㘵猻㜺∺湥䱤湩≥椻ㄺ㘵猻ㄺ㨳漢楲楧慮噬污敵㬢㩳㜳∺娧湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨∧紻獽㐺∺祴数㬢㩩㬴獽ㄺ㨳"*瑡牴扩瑵獥㬢㩡㨳獻㤺∺瑳牡䱴湩≥椻ㄺ㘵猻㜺∺湥䱤湩≥椻ㄺ㘵猻ㄺ㨳漢楲楧慮噬污敵㬢㩳㜳∺娧湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨∧紻獽㈺㨳"*敤慦汵彴慰正条彥慮敭㬢㩳㨰∢猻ㄺ㨰"*潣瑮硥≴爻㈺㬵楽㐺伻㐺㨱瀢灨潄畣敭瑮牯剜晥敬瑣潩屮湉汣摵剥晥敬瑣牯㨢㨳獻㜺∺⨀渀摯≥伻㈺㨷倢偈慐獲牥也摯彥硅牰䥟据畬敤㨢㨲獻ㄺ㨱"*畳乢摯獥㬢㩡㨲獻㐺∺硥牰㬢㩏㠲∺䡐偐牡敳彲潎敤卟慣慬彲瑓楲杮㨢㨲獻ㄺ㨱"*畳乢摯獥㬢㩡㨱獻㔺∺慶畬≥猻㌺㨵娢湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨㬢獽ㄺ㨳"*瑡牴扩瑵獥㬢㩡㨳獻㤺∺瑳牡䱴湩≥椻ㄺ㤵猻㜺∺湥䱤湩≥椻ㄺ㤵猻ㄺ㨳漢楲楧慮噬污敵㬢㩳㜳∺娧湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨∧紻獽㐺∺祴数㬢㩩㬴獽ㄺ㨳"*瑡牴扩瑵獥㬢㩡㨳獻㤺∺瑳牡䱴湩≥椻ㄺ㤵猻㜺∺湥䱤湩≥椻ㄺ㤵猻ㄺ㨳漢楲楧慮噬污敵㬢㩳㜳∺娧湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨∧紻獽㈺㨳"*敤慦汵彴慰正条彥慮敭㬢㩳㨰∢猻ㄺ㨰"*潣瑮硥≴爻㈺㬵楽㔺伻㐺㨱瀢灨潄畣敭瑮牯剜晥敬瑣潩屮湉汣摵剥晥敬瑣牯㨢㨳獻㜺∺⨀渀摯≥伻㈺㨷倢偈慐獲牥也摯彥硅牰䥟据畬敤㨢㨲獻ㄺ㨱"*畳乢摯獥㬢㩡㨲獻㐺∺硥牰㬢㩏㠲∺䡐偐牡敳彲潎敤卟慣慬彲瑓楲杮㨢㨲獻ㄺ㨱"*畳乢摯獥㬢㩡㨱獻㔺∺慶畬≥猻㌺㨵娢湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨㬢獽ㄺ㨳"*瑡牴扩瑵獥㬢㩡㨳獻㤺∺瑳牡䱴湩≥椻㈺〱猻㜺∺湥䱤湩≥椻㈺〱猻ㄺ㨳漢楲楧慮噬污敵㬢㩳㜳∺娧湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨∧紻獽㐺∺祴数㬢㩩㬴獽ㄺ㨳"*瑡牴扩瑵獥㬢㩡㨳獻㤺∺瑳牡䱴湩≥椻㈺〱猻㜺∺湥䱤湩≥椻㈺〱猻ㄺ㨳漢楲楧慮噬污敵㬢㩳㜳∺娧湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨∧紻獽㈺㨳"*敤慦汵彴慰正条彥慮敭㬢㩳㨰∢猻ㄺ㨰"*潣瑮硥≴爻㈺㬵楽㘺伻㐺㨱瀢灨潄畣敭瑮牯剜晥敬瑣潩屮湉汣摵剥晥敬瑣牯㨢㨳獻㜺∺⨀渀摯≥伻㈺㨷倢偈慐獲牥也摯彥硅牰䥟据畬敤㨢㨲獻ㄺ㨱"*畳乢摯獥㬢㩡㨲獻㐺∺硥牰㬢㩏㠲∺䡐偐牡敳彲潎敤卟慣慬彲瑓楲杮㨢㨲獻ㄺ㨱"*畳乢摯獥㬢㩡㨱獻㔺∺慶畬≥猻㌺㨵娢湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨㬢獽ㄺ㨳"*瑡牴扩瑵獥㬢㩡㨳獻㤺∺瑳牡䱴湩≥椻㈺ㄲ猻㜺∺湥䱤湩≥椻㈺ㄲ猻ㄺ㨳漢楲楧慮噬污敵㬢㩳㜳∺娧湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨∧紻獽㐺∺祴数㬢㩩㬴獽ㄺ㨳"*瑡牴扩瑵獥㬢㩡㨳獻㤺∺瑳牡䱴湩≥椻㈺ㄲ猻㜺∺湥䱤湩≥椻㈺ㄲ猻ㄺ㨳漢楲楧慮噬污敵㬢㩳㜳∺娧湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨∧紻獽㈺㨳"*敤慦汵彴慰正条彥慮敭㬢㩳㨰∢猻ㄺ㨰"*潣瑮硥≴爻㈺㬵楽㜺伻㐺㨱瀢灨潄畣敭瑮牯剜晥敬瑣潩屮湉汣摵剥晥敬瑣牯㨢㨳獻㜺∺⨀渀摯≥伻㈺㨷倢偈慐獲牥也摯彥硅牰䥟据畬敤㨢㨲獻ㄺ㨱"*畳乢摯獥㬢㩡㨲獻㐺∺硥牰㬢㩏㠲∺䡐偐牡敳彲潎敤卟慣慬彲瑓楲杮㨢㨲獻ㄺ㨱"*畳乢摯獥㬢㩡㨱獻㔺∺慶畬≥猻㌺㨵娢湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨㬢獽ㄺ㨳"*瑡牴扩瑵獥㬢㩡㨳獻㤺∺瑳牡䱴湩≥椻㌺㠰猻㜺∺湥䱤湩≥椻㌺㠰猻ㄺ㨳漢楲楧慮噬污敵㬢㩳㜳∺娧湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨∧紻獽㐺∺祴数㬢㩩㬴獽ㄺ㨳"*瑡牴扩瑵獥㬢㩡㨳獻㤺∺瑳牡䱴湩≥椻㌺㠰猻㜺∺湥䱤湩≥椻㌺㠰猻ㄺ㨳漢楲楧慮噬污敵㬢㩳㜳∺娧湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨∧紻獽㈺㨳"*敤慦汵彴慰正条彥慮敭㬢㩳㨰∢猻ㄺ㨰"*潣瑮硥≴爻㈺㬵楽㠺伻㐺㨱瀢灨潄畣敭瑮牯剜晥敬瑣潩屮湉汣摵剥晥敬瑣牯㨢㨳獻㜺∺⨀渀摯≥伻㈺㨷倢偈慐獲牥也摯彥硅牰䥟据畬敤㨢㨲獻ㄺ㨱"*畳乢摯獥㬢㩡㨲獻㐺∺硥牰㬢㩏㠲∺䡐偐牡敳彲潎敤卟慣慬彲瑓楲杮㨢㨲獻ㄺ㨱"*畳乢摯獥㬢㩡㨱獻㔺∺慶畬≥猻㌺㨵娢湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨㬢獽ㄺ㨳"*瑡牴扩瑵獥㬢㩡㨳獻㤺∺瑳牡䱴湩≥椻㔺㔶猻㜺∺湥䱤湩≥椻㔺㔶猻ㄺ㨳漢楲楧慮噬污敵㬢㩳㜳∺娧湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨∧紻獽㐺∺祴数㬢㩩㬴獽ㄺ㨳"*瑡牴扩瑵獥㬢㩡㨳獻㤺∺瑳牡䱴湩≥椻㔺㔶猻㜺∺湥䱤湩≥椻㔺㔶猻ㄺ㨳漢楲楧慮噬污敵㬢㩳㜳∺娧湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨∧紻獽㈺㨳"*敤慦汵彴慰正条彥慮敭㬢㩳㨰∢猻ㄺ㨰"*潣瑮硥≴爻㈺㬵楽㤺伻㐺㨱瀢灨潄畣敭瑮牯剜晥敬瑣潩屮湉汣摵剥晥敬瑣牯㨢㨳獻㜺∺⨀渀摯≥伻㈺㨷倢偈慐獲牥也摯彥硅牰䥟据畬敤㨢㨲獻ㄺ㨱"*畳乢摯獥㬢㩡㨲獻㐺∺硥牰㬢㩏㠲∺䡐偐牡敳彲潎敤卟慣慬彲瑓楲杮㨢㨲獻ㄺ㨱"*畳乢摯獥㬢㩡㨱獻㔺∺慶畬≥猻㌺㨵娢湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨㬢獽ㄺ㨳"*瑡牴扩瑵獥㬢㩡㨳獻㤺∺瑳牡䱴湩≥椻㘺〰猻㜺∺湥䱤湩≥椻㘺〰猻ㄺ㨳漢楲楧慮噬污敵㬢㩳㜳∺娧湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨∧紻獽㐺∺祴数㬢㩩㬴獽ㄺ㨳"*瑡牴扩瑵獥㬢㩡㨳獻㤺∺瑳牡䱴湩≥椻㘺〰猻㜺∺湥䱤湩≥椻㘺〰猻ㄺ㨳漢楲楧慮噬污敵㬢㩳㜳∺娧湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨∧紻獽㈺㨳"*敤慦汵彴慰正条彥慮敭㬢㩳㨰∢猻ㄺ㨰"*潣瑮硥≴爻㈺㬵楽ㄺ㬰㩏ㄴ∺桰䑰捯浵湥潴屲敒汦捥楴湯䥜据畬敤敒汦捥潴≲㌺笺㩳㨷"*潮敤㬢㩏㜲∺䡐偐牡敳彲潎敤䕟灸彲湉汣摵≥㈺笺㩳ㄱ∺⨀猀扵潎敤≳愻㈺笺㩳㨴攢灸≲伻㈺㨸倢偈慐獲牥也摯彥捓污牡卟牴湩≧㈺笺㩳ㄱ∺⨀猀扵潎敤≳愻ㄺ笺㩳㨵瘢污敵㬢㩳㔳∺敚摮⽘潃獮汯⽥牐捯獥⽳硅散瑰潩桰≰紻㩳㌱∺⨀愀瑴楲畢整≳愻㌺笺㩳㨹猢慴瑲楌敮㬢㩩ㄶ㬸㩳㨷攢摮楌敮㬢㩩ㄶ㬸㩳㌱∺牯杩湩污慖畬≥猻㌺㨷✢敚摮⽘潃獮汯⽥牐捯獥⽳硅散瑰潩桰❰㬢絽㩳㨴琢灹≥椻㐺紻㩳㌱∺⨀愀瑴楲畢整≳愻㌺笺㩳㨹猢慴瑲楌敮㬢㩩ㄶ㬸㩳㨷攢摮楌敮㬢㩩ㄶ㬸㩳㌱∺牯杩湩污慖畬≥猻㌺㨷✢敚摮⽘潃獮汯⽥牐捯獥⽳硅散瑰潩桰❰㬢絽㩳㌲∺⨀搀晥畡瑬灟捡慫敧湟浡≥猻〺∺㬢㩳〱∺⨀挀湯整瑸㬢㩲㔲紻㩩ㄱ伻㐺㨱瀢灨潄畣敭瑮牯剜晥敬瑣潩屮湉汣摵剥晥敬瑣牯㨢㨳獻㜺∺⨀渀摯≥伻㈺㨷倢偈慐獲牥也摯彥硅牰䥟据畬敤㨢㨲獻ㄺ㨱"*畳乢摯獥㬢㩡㨲獻㐺∺硥牰㬢㩏㠲∺䡐偐牡敳彲潎敤卟慣慬彲瑓楲杮㨢㨲獻ㄺ㨱"*畳乢摯獥㬢㩡㨱獻㔺∺慶畬≥猻㌺㨵娢湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨㬢獽ㄺ㨳"*瑡牴扩瑵獥㬢㩡㨳獻㤺∺瑳牡䱴湩≥椻㘺㔴猻㜺∺湥䱤湩≥椻㘺㔴猻ㄺ㨳漢楲楧慮噬污敵㬢㩳㜳∺娧湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨∧紻獽㐺∺祴数㬢㩩㬴獽ㄺ㨳"*瑡牴扩瑵獥㬢㩡㨳獻㤺∺瑳牡䱴湩≥椻㘺㔴猻㜺∺湥䱤湩≥椻㘺㔴猻ㄺ㨳漢楲楧慮噬污敵㬢㩳㜳∺娧湥塤䌯湯潳敬倯潲散獳䔯捸灥楴湯瀮灨∧紻獽㈺㨳"*敤慦汵彴慰正条彥慮敭㬢㩳㨰∢猻ㄺ㨰"*潣瑮硥≴爻㈺㬵絽獽ㄺ㨲"*潣獮慴瑮≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻獽ㄺ㨲"*畦据楴湯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻獽ㄺ㨰"*汣獡敳≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨱獻㈺㨷尢敚摮彘潃獮汯彥牐捯獥彳湕硩㬢㩏〴∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜慬獳敄捳楲瑰牯㨢㠱笺㩳㨹"*慰敲瑮㬢㩳㨰∢猻ㄺ㨳"*浩汰浥湥獴㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽㩳ㄱ∺⨀愀獢牴捡≴戻ㄺ猻㠺∺⨀昀湩污㬢㩢㬰㩳㈱∺⨀挀湯瑳湡獴㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻㈺笺㩳ㄱ∺佖䑉䵟呅佈≄伻㐺㨳瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃獮慴瑮敄捳楲瑰牯㨢㌱笺㩳㨹"*慰敲瑮㬢㩲㈲㬲㩳㨸"*祴数≳主猻㠺∺⨀瘀污敵㬢㩳㌱∺瘧楯彤敭桴摯∧猻㠺∺⨀昀獱湥㬢㩳〴∺婜湥塤䍟湯潳敬偟潲散獳啟楮㩸嘺䥏彄䕍䡔䑏㬢㩳㨷"*慮敭㬢㩳ㄱ∺佖䑉䵟呅佈≄猻ㄺ㨲"*慮敭灳捡≥猻ㄺ∺≜猻ㄺ㨰"*慰正条≥猻〺∺㬢㩳〱∺⨀猀浵慭祲㬢㩳ㄱ∺潖摩洠瑥潨≤猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㜱∺⨀昀汩䑥獥牣灩潴≲主猻㜺∺⨀氀湩≥椻㌺㬶㩳㨷"*慴獧㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽獽ㄺ㨳刢呅剕彎䕍䡔䑏㬢㩏㌴∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜湯瑳湡䑴獥牣灩潴≲ㄺ㨳獻㤺∺⨀瀀牡湥≴爻㈺㈲猻㠺∺⨀琀灹獥㬢㭎㩳㨸"*慶畬≥猻ㄺ㨳✢潶摩浟瑥潨❤㬢㩳㨸"*煦敳≮猻㐺㨲尢敚摮彘潃獮汯彥牐捯獥彳湕硩㨺䕒啔乒䵟呅佈≄猻㜺∺⨀渀浡≥猻ㄺ㨳刢呅剕彎䕍䡔䑏㬢㩳㈱∺⨀渀浡獥慰散㬢㩳㨱尢㬢㩳〱∺⨀瀀捡慫敧㬢㩳㨰∢猻ㄺ㨰"*畳浭牡≹猻ㄺ㨳刢瑥牵敭桴摯㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻ㄺ㨷"*楦敬敄捳楲瑰牯㬢㭎㩳㨷"*楬敮㬢㩩ㄴ猻㜺∺⨀琀条≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻獽㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽絽㩳㌱∺⨀瀀潲数瑲敩≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㈱笺㩳㨵弢慮敭㬢㩏㌴∺桰䑰捯浵湥潴屲敄捳楲瑰牯停潲数瑲䑹獥牣灩潴≲ㄺ㨵獻㤺∺⨀瀀牡湥≴爻㈺㈲猻㠺∺⨀琀灹獥㬢㭎㩳〱∺⨀搀晥畡瑬㬢㭎㩳㨹"*瑳瑡捩㬢㩢㬰㩳㌱∺⨀瘀獩扩汩瑩≹猻㜺∺牰癩瑡≥猻㠺∺⨀昀獱湥㬢㩳㐳∺婜湥塤䍟湯潳敬偟潲散獳啟楮㩸强慮敭㬢㩳㨷"*慮敭㬢㩳㨵弢慮敭㬢㩳㈱∺⨀渀浡獥慰散㬢㭎㩳〱∺⨀瀀捡慫敧㬢㩳㨰∢猻ㄺ㨰"*畳浭牡≹猻ㄺ㨸唢楮畱桴敲摡渠浡≥猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㜱∺⨀昀汩䑥獥牣灩潴≲主猻㜺∺⨀氀湩≥椻㐺㬸㩳㨷"*慴獧㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩳㨳瘢牡㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩩㬰㩏㐴∺桰䑰捯浵湥潴屲敄捳楲瑰牯呜条停牡浡敄捳楲瑰牯㨢㨵獻ㄺ㨵"*慶楲扡敬慎敭㬢㩳㨰∢猻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㘺∺瑳楲杮㬢獽㜺∺⨀渀浡≥猻㌺∺慶≲猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽絽獽㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽㩳㨴弢楰≤伻㐺㨳瀢灨潄畣敭瑮牯䑜獥牣灩潴屲牐灯牥祴敄捳楲瑰牯㨢㔱笺㩳㨹"*慰敲瑮㬢㩲㈲㬲㩳㨸"*祴数≳主猻ㄺ㨰"*敤慦汵≴猻㐺∺畮汬㬢㩳㨹"*瑳瑡捩㬢㩢㬰㩳㌱∺⨀瘀獩扩汩瑩≹猻㜺∺牰癩瑡≥猻㠺∺⨀昀獱湥㬢㩳㌳∺婜湥塤䍟湯潳敬偟潲散獳啟楮㩸强楰≤猻㜺∺⨀渀浡≥猻㐺∺灟摩㬢㩳㈱∺⨀渀浡獥慰散㬢㭎㩳〱∺⨀瀀捡慫敧㬢㩳㨰∢猻ㄺ㨰"*畳浭牡≹猻㈺㨴倢䑉漠桴档汩牰捯獥≳猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㜱∺⨀昀汩䑥獥牣灩潴≲主猻㜺∺⨀氀湩≥椻㔺㬵㩳㨷"*慴獧㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩳㨳瘢牡㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩩㬰㩏㐴∺桰䑰捯浵湥潴屲敄捳楲瑰牯呜条停牡浡敄捳楲瑰牯㨢㨵獻ㄺ㨵"*慶楲扡敬慎敭㬢㩳㨰∢猻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㜺∺湩整敧≲紻㩳㨷"*慮敭㬢㩳㨳瘢牡㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽絽絽㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽獽㔺∺灟極≤伻㐺㨳瀢灨潄畣敭瑮牯䑜獥牣灩潴屲牐灯牥祴敄捳楲瑰牯㨢㔱笺㩳㨹"*慰敲瑮㬢㩲㈲㬲㩳㨸"*祴数≳主猻ㄺ㨰"*敤慦汵≴猻㐺∺畮汬㬢㩳㨹"*瑳瑡捩㬢㩢㬰㩳㌱∺⨀瘀獩扩汩瑩≹猻㜺∺牰癩瑡≥猻㠺∺⨀昀獱湥㬢㩳㐳∺婜湥塤䍟湯潳敬偟潲散獳啟楮㩸强異摩㬢㩳㨷"*慮敭㬢㩳㨵弢異摩㬢㩳㈱∺⨀渀浡獥慰散㬢㭎㩳〱∺⨀瀀捡慫敧㬢㩳㨰∢猻ㄺ㨰"*畳浭牡≹猻㌺㨰唢䑉漠桴档汩牰捯獥睯敮≲猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㜱∺⨀昀汩䑥獥牣灩潴≲主猻㜺∺⨀氀湩≥椻㘺㬲㩳㨷"*慴獧㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩳㨳瘢牡㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩩㬰㩏㐴∺桰䑰捯浵湥潴屲敄捳楲瑰牯呜条停牡浡敄捳楲瑰牯㨢㨵獻ㄺ㨵"*慶楲扡敬慎敭㬢㩳㨰∢猻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㜺∺湩整敧≲紻㩳㨷"*慮敭㬢㩳㨳瘢牡㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽絽絽㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽獽㔺∺束極≤伻㐺㨳瀢灨潄畣敭瑮牯䑜獥牣灩潴屲牐灯牥祴敄捳楲瑰牯㨢㔱笺㩳㨹"*慰敲瑮㬢㩲㈲㬲㩳㨸"*祴数≳主猻ㄺ㨰"*敤慦汵≴猻㐺∺畮汬㬢㩳㨹"*瑳瑡捩㬢㩢㬰㩳㌱∺⨀瘀獩扩汩瑩≹猻㜺∺牰癩瑡≥猻㠺∺⨀昀獱湥㬢㩳㐳∺婜湥塤䍟湯潳敬偟潲散獳啟楮㩸强畧摩㬢㩳㨷"*慮敭㬢㩳㨵弢畧摩㬢㩳㈱∺⨀渀浡獥慰散㬢㭎㩳〱∺⨀瀀捡慫敧㬢㩳㨰∢猻ㄺ㨰"*畳浭牡≹猻㌺㨱䜢䥕⁄景琠敨挠楨摬瀠潲散獳漠湷牥㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻ㄺ㨷"*楦敬敄捳楲瑰牯㬢㭎㩳㨷"*楬敮㬢㩩㤶猻㜺∺⨀琀条≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨱獻㌺∺慶≲伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨱楻〺伻㐺㨴瀢灨潄畣敭瑮牯䑜獥牣灩潴屲慔屧慐慲䑭獥牣灩潴≲㔺笺㩳㔱∺⨀瘀牡慩汢乥浡≥猻〺∺㬢㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㨷椢瑮来牥㬢獽㜺∺⨀渀浡≥猻㌺∺慶≲猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽絽獽㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽㩳〱∺楟剳湵楮杮㬢㩏㌴∺桰䑰捯浵湥潴屲敄捳楲瑰牯停潲数瑲䑹獥牣灩潴≲ㄺ㨵獻㤺∺⨀瀀牡湥≴爻㈺㈲猻㠺∺⨀琀灹獥㬢㭎㩳〱∺⨀搀晥畡瑬㬢㩳㨵昢污敳㬢㩳㨹"*瑳瑡捩㬢㩢㬰㩳㌱∺⨀瘀獩扩汩瑩≹猻㜺∺牰癩瑡≥猻㠺∺⨀昀獱湥㬢㩳㤳∺婜湥塤䍟湯潳敬偟潲散獳啟楮㩸强獩畒湮湩≧猻㜺∺⨀渀浡≥猻ㄺ㨰弢獩畒湮湩≧猻ㄺ㨲"*慮敭灳捡≥主猻ㄺ㨰"*慰正条≥猻〺∺㬢㩳〱∺⨀猀浵慭祲㬢㩳〴∺桗瑥敨桴牰捯獥獩礠瑥映牯敫牯渠瑯㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻ㄺ㨷"*楦敬敄捳楲瑰牯㬢㭎㩳㨷"*楬敮㬢㩩㘷猻㜺∺⨀琀条≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨱獻㌺∺慶≲伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨱楻〺伻㐺㨴瀢灨潄畣敭瑮牯䑜獥牣灩潴屲慔屧慐慲䑭獥牣灩潴≲㔺笺㩳㔱∺⨀瘀牡慩汢乥浡≥猻〺∺㬢㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㨷戢潯敬湡㬢獽㜺∺⨀渀浡≥猻㌺∺慶≲猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽絽獽㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽㩳㨸弢獩桃汩≤伻㐺㨳瀢灨潄畣敭瑮牯䑜獥牣灩潴屲牐灯牥祴敄捳楲瑰牯㨢㔱笺㩳㨹"*慰敲瑮㬢㩲㈲㬲㩳㨸"*祴数≳主猻ㄺ㨰"*敤慦汵≴猻㔺∺慦獬≥猻㤺∺⨀猀慴楴≣戻〺猻ㄺ㨳"*楶楳楢楬祴㬢㩳㨷瀢楲慶整㬢㩳㨸"*煦敳≮猻㌺㨷尢敚摮彘潃獮汯彥牐捯獥彳湕硩㨺楟䍳楨摬㬢㩳㨷"*慮敭㬢㩳㨸弢獩桃汩≤猻ㄺ㨲"*慮敭灳捡≥主猻ㄺ㨰"*慰正条≥猻〺∺㬢㩳〱∺⨀猀浵慭祲㬢㩳㤳∺敗桴牥眠牡湩潴挠楨摬瀠潲散獳漠潮≴猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㜱∺⨀昀汩䑥獥牣灩潴≲主猻㜺∺⨀氀湩≥椻㠺㬳㩳㨷"*慴獧㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩳㨳瘢牡㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩩㬰㩏㐴∺桰䑰捯浵湥潴屲敄捳楲瑰牯呜条停牡浡敄捳楲瑰牯㨢㨵獻ㄺ㨵"*慶楲扡敬慎敭㬢㩳㨰∢猻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㜺∺潢汯慥≮紻㩳㨷"*慮敭㬢㩳㨳瘢牡㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽絽絽㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽獽ㄺ㨶弢湩整湲污灉䑣瑡≡伻㐺㨳瀢灨潄畣敭瑮牯䑜獥牣灩潴屲牐灯牥祴敄捳楲瑰牯㨢㔱笺㩳㨹"*慰敲瑮㬢㩲㈲㬲㩳㨸"*祴数≳主猻ㄺ㨰"*敤慦汵≴猻㜺∺牡慲⡹∩猻㤺∺⨀猀慴楴≣戻〺猻ㄺ㨳"*楶楳楢楬祴㬢㩳㨷瀢楲慶整㬢㩳㨸"*煦敳≮猻㐺㨵尢敚摮彘潃獮汯彥牐捯獥彳湕硩㨺楟瑮牥慮䥬捰慄慴㬢㩳㨷"*慮敭㬢㩳㘱∺楟瑮牥慮䥬捰慄慴㬢㩳㈱∺⨀渀浡獥慰散㬢㭎㩳〱∺⨀瀀捡慫敧㬢㩳㨰∢猻ㄺ㨰"*畳浭牡≹猻㘺㨲䄢搠瑡瑳畲瑣牵潴栠汯慤慴映牯䤠瑮牥倠潲散獳䌠浯畭楮慣楴湯≳猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㜱∺⨀昀汩䑥獥牣灩潴≲主猻㜺∺⨀氀湩≥椻㤺㬰㩳㨷"*慴獧㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩳㨳瘢牡㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩩㬰㩏㐴∺桰䑰捯浵湥潴屲敄捳楲瑰牯呜条停牡浡敄捳楲瑰牯㨢㨵獻ㄺ㨵"*慶楲扡敬慎敭㬢㩳㨰∢猻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㔺∺牡慲≹紻㩳㨷"*慮敭㬢㩳㨳瘢牡㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽絽絽㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽獽ㄺ㨵弢湩整湲污灉䭣祥㬢㩏㌴∺桰䑰捯浵湥潴屲敄捳楲瑰牯停潲数瑲䑹獥牣灩潴≲ㄺ㨵獻㤺∺⨀瀀牡湥≴爻㈺㈲猻㠺∺⨀琀灹獥㬢㭎㩳〱∺⨀搀晥畡瑬㬢㭎㩳㨹"*瑳瑡捩㬢㩢㬰㩳㌱∺⨀瘀獩扩汩瑩≹猻㜺∺牰癩瑡≥猻㠺∺⨀昀獱湥㬢㩳㐴∺婜湥塤䍟湯潳敬偟潲散獳啟楮㩸强湩整湲污灉䭣祥㬢㩳㨷"*慮敭㬢㩳㔱∺楟瑮牥慮䥬捰敋≹猻ㄺ㨲"*慮敭灳捡≥主猻ㄺ㨰"*慰正条≥猻〺∺㬢㩳〱∺⨀猀浵慭祲㬢㩳㘳∺敋⁹潴愠捣獥潴匠慨敲敍潭祲䄠敲㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻ㄺ㨷"*楦敬敄捳楲瑰牯㬢㭎㩳㨷"*楬敮㬢㩩㜹猻㜺∺⨀琀条≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨱獻㌺∺慶≲伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨱楻〺伻㐺㨴瀢灨潄畣敭瑮牯䑜獥牣灩潴屲慔屧慐慲䑭獥牣灩潴≲㔺笺㩳㔱∺⨀瘀牡慩汢乥浡≥猻〺∺㬢㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㨷椢瑮来牥㬢獽㜺∺⨀渀浡≥猻㌺∺慶≲猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽絽獽㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽㩳㔱∺楟瑮牥慮卬浥敋≹伻㐺㨳瀢灨潄畣敭瑮牯䑜獥牣灩潴屲牐灯牥祴敄捳楲瑰牯㨢㔱笺㩳㨹"*慰敲瑮㬢㩲㈲㬲㩳㨸"*祴数≳主猻ㄺ㨰"*敤慦汵≴主猻㤺∺⨀猀慴楴≣戻〺猻ㄺ㨳"*楶楳楢楬祴㬢㩳㨷瀢楲慶整㬢㩳㨸"*煦敳≮猻㐺㨴尢敚摮彘潃獮汯彥牐捯獥彳湕硩㨺楟瑮牥慮卬浥敋≹猻㜺∺⨀渀浡≥猻ㄺ㨵弢湩整湲污敓䭭祥㬢㩳㈱∺⨀渀浡獥慰散㬢㭎㩳〱∺⨀瀀捡慫敧㬢㩳㨰∢猻ㄺ㨰"*畳浭牡≹猻㌺㨲䬢祥琠捡散獳琠祓据匠浥灡潨敲∮猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㜱∺⨀昀汩䑥獥牣灩潴≲主猻㜺∺⨀氀湩≥椻ㄺ㐰猻㜺∺⨀琀条≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨱獻㌺∺慶≲伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨱楻〺伻㐺㨴瀢灨潄畣敭瑮牯䑜獥牣灩潴屲慔屧慐慲䑭獥牣灩潴≲㔺笺㩳㔱∺⨀瘀牡慩汢乥浡≥猻〺∺㬢㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㨷椢瑮来牥㬢獽㜺∺⨀渀浡≥猻㌺∺慶≲猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽絽獽㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽㩳〱∺楟捰獉歏祡㬢㩏㌴∺桰䑰捯浵湥潴屲敄捳楲瑰牯停潲数瑲䑹獥牣灩潴≲ㄺ㨵獻㤺∺⨀瀀牡湥≴爻㈺㈲猻㠺∺⨀琀灹獥㬢㭎㩳〱∺⨀搀晥畡瑬㬢㭎㩳㨹"*瑳瑡捩㬢㩢㬰㩳㌱∺⨀瘀獩扩汩瑩≹猻㜺∺牰癩瑡≥猻㠺∺⨀昀獱湥㬢㩳㤳∺婜湥塤䍟湯潳敬偟潲散獳啟楮㩸强灩䥣佳慫≹猻㜺∺⨀渀浡≥猻ㄺ㨰弢灩䥣佳慫≹猻ㄺ㨲"*慮敭灳捡≥主猻ㄺ㨰"*慰正条≥猻〺∺㬢㩳〱∺⨀猀浵慭祲㬢㩳㐶∺獉匠慨敲敍潭祲䄠敲䭏‿晉渠瑯桴瑳牡⡴ 敭桴摯眠汩汢捯㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳ㄷ∺瑏敨睲獩敷氧慨敶愠爠湵楮杮挠楨摬眠瑩潨瑵愠祮挠浯畭楮慣楴湯挠慨湮汥∮猻ㄺ㨷"*楦敬敄捳楲瑰牯㬢㭎㩳㨷"*楬敮㬢㩩ㄱ㬲㩳㨷"*慴獧㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩳㨳瘢牡㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩩㬰㩏㐴∺桰䑰捯浵湥潴屲敄捳楲瑰牯呜条停牡浡敄捳楲瑰牯㨢㨵獻ㄺ㨵"*慶楲扡敬慎敭㬢㩳㨰∢猻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㜺∺潢汯慥≮紻㩳㨷"*慮敭㬢㩳㨳瘢牡㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽絽絽㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽獽ㄺ㨱弢灩卣来楆敬㬢㩏㌴∺桰䑰捯浵湥潴屲敄捳楲瑰牯停潲数瑲䑹獥牣灩潴≲ㄺ㨵獻㤺∺⨀瀀牡湥≴爻㈺㈲猻㠺∺⨀琀灹獥㬢㭎㩳〱∺⨀搀晥畡瑬㬢㭎㩳㨹"*瑳瑡捩㬢㩢㬰㩳㌱∺⨀瘀獩扩汩瑩≹猻㜺∺牰癩瑡≥猻㠺∺⨀昀獱湥㬢㩳〴∺婜湥塤䍟湯潳敬偟潲散獳啟楮㩸强灩卣来楆敬㬢㩳㨷"*慮敭㬢㩳ㄱ∺楟捰敓䙧汩≥猻ㄺ㨲"*慮敭灳捡≥主猻ㄺ㨰"*慰正条≥猻〺∺㬢㩳〱∺⨀猀浵慭祲㬢㩳㈳∺楆敬慮敭漠桴偉⁃敳浧湥⁴楦敬㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻ㄺ㨷"*楦敬敄捳楲瑰牯㬢㭎㩳㨷"*楬敮㬢㩩ㄱ㬹㩳㨷"*慴獧㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩳㨳瘢牡㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩩㬰㩏㐴∺桰䑰捯浵湥潴屲敄捳楲瑰牯呜条停牡浡敄捳楲瑰牯㨢㨵獻ㄺ㨵"*慶楲扡敬慎敭㬢㩳㨰∢猻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㘺∺瑳楲杮㬢獽㜺∺⨀渀浡≥猻㌺∺慶≲猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽絽獽㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽㩳ㄱ∺楟捰敓䙭汩≥伻㐺㨳瀢灨潄畣敭瑮牯䑜獥牣灩潴屲牐灯牥祴敄捳楲瑰牯㨢㔱笺㩳㨹"*慰敲瑮㬢㩲㈲㬲㩳㨸"*祴数≳主猻ㄺ㨰"*敤慦汵≴主猻㤺∺⨀猀慴楴≣戻〺猻ㄺ㨳"*楶楳楢楬祴㬢㩳㨷瀢楲慶整㬢㩳㨸"*煦敳≮猻㐺㨰尢敚摮彘潃獮汯彥牐捯獥彳湕硩㨺楟捰敓䙭汩≥猻㜺∺⨀渀浡≥猻ㄺ㨱弢灩卣浥楆敬㬢㩳㈱∺⨀渀浡獥慰散㬢㭎㩳〱∺⨀瀀捡慫敧㬢㩳㨰∢猻ㄺ㨰"*畳浭牡≹猻㈺㨹䘢汩湥浡景琠敨猠浥灡潨楦敬㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻ㄺ㨷"*楦敬敄捳楲瑰牯㬢㭎㩳㨷"*楬敮㬢㩩㈱㬶㩳㨷"*慴獧㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩳㨳瘢牡㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩩㬰㩏㐴∺桰䑰捯浵湥潴屲敄捳楲瑰牯呜条停牡浡敄捳楲瑰牯㨢㨵獻ㄺ㨵"*慶楲扡敬慎敭㬢㩳㨰∢猻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㘺∺瑳楲杮㬢獽㜺∺⨀渀浡≥猻㌺∺慶≲猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽絽獽㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽絽㩳〱∺⨀洀瑥潨獤㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻㈺㨱獻ㄺ㨱弢损湯瑳畲瑣㬢㩏ㄴ∺桰䑰捯浵湥潴屲敄捳楲瑰牯䵜瑥潨䑤獥牣灩潴≲ㄺ㨶獻㤺∺⨀瀀牡湥≴爻㈺㈲猻ㄺ㨱"*扡瑳慲瑣㬢㩢㬰㩳㨸"*楦慮≬戻〺猻㤺∺⨀猀慴楴≣戻〺猻ㄺ㨳"*楶楳楢楬祴㬢㩳㨶瀢扵楬≣猻ㄺ㨲"*牡畧敭瑮≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨳獻㔺∺瀤極≤伻㐺㨳瀢灨潄畣敭瑮牯䑜獥牣灩潴屲牁畧敭瑮敄捳楲瑰牯㨢㌱笺㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㨷椢瑮来牥㬢獽ㄺ㨰"*敤慦汵≴猻㐺∺畮汬㬢㩳㐱∺⨀戀剹晥牥湥散㬢㩢㬰㩳㨸"*煦敳≮猻〺∺㬢㩳㨷"*慮敭㬢㩳㨵␢異摩㬢㩳㈱∺⨀渀浡獥慰散㬢㭎㩳〱∺⨀瀀捡慫敧㬢㩳㨰∢猻ㄺ㨰"*畳浭牡≹猻〺∺㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻ㄺ㨷"*楦敬敄捳楲瑰牯㬢㭎㩳㨷"*楬敮㬢㩩㬰㩳㨷"*慴獧㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽獽㔺∺朤極≤伻㐺㨳瀢灨潄畣敭瑮牯䑜獥牣灩潴屲牁畧敭瑮敄捳楲瑰牯㨢㌱笺㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㨷椢瑮来牥㬢獽ㄺ㨰"*敤慦汵≴猻㐺∺畮汬㬢㩳㐱∺⨀戀剹晥牥湥散㬢㩢㬰㩳㨸"*煦敳≮猻〺∺㬢㩳㨷"*慮敭㬢㩳㨵␢畧摩㬢㩳㈱∺⨀渀浡獥慰散㬢㭎㩳〱∺⨀瀀捡慫敧㬢㩳㨰∢猻ㄺ㨰"*畳浭牡≹猻〺∺㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻ㄺ㨷"*楦敬敄捳楲瑰牯㬢㭎㩳㨷"*楬敮㬢㩩㬰㩳㨷"*慴獧㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽獽㘺∺甤慭歳㬢㩏㌴∺桰䑰捯浵湥潴屲敄捳楲瑰牯䅜杲浵湥䑴獥牣灩潴≲ㄺ㨳獻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㜺∺湩整敧≲紻㩳〱∺⨀搀晥畡瑬㬢㩳㨴渢汵≬猻ㄺ㨴"*祢敒敦敲据≥戻〺猻㠺∺⨀昀獱湥㬢㩳㨰∢猻㜺∺⨀渀浡≥猻㘺∺甤慭歳㬢㩳㈱∺⨀渀浡獥慰散㬢㭎㩳〱∺⨀瀀捡慫敧㬢㩳㨰∢猻ㄺ㨰"*畳浭牡≹猻〺∺㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻ㄺ㨷"*楦敬敄捳楲瑰牯㬢㭎㩳㨷"*楬敮㬢㩩㬰㩳㨷"*慴獧㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽獽㠺∺⨀昀獱湥㬢㩳㈴∺婜湥塤䍟湯潳敬偟潲散獳啟楮㩸强损湯瑳畲瑣⤨㬢㩳㨷"*慮敭㬢㩳ㄱ∺彟潣獮牴捵≴猻ㄺ㨲"*慮敭灳捡≥主猻ㄺ㨰"*慰正条≥猻〺∺㬢㩳〱∺⨀猀浵慭祲㬢㩳㠱∺潃獮牴捵潴敭桴摯㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㜱㨵䄢汬捯瑡獥愠渠睥瀠敳摵ⵯ桴敲摡漠橢捥传瑰潩慮汬ⱹ猠瑥愠倠䥕ⱄ愠䜠䥕⁄湡 a UMASK for the child process. This also initialize Shared Memory 敓浧湥獴映牯瀠潲散獳挠浯畭楮慣楴湯㬢㩳㜱∺⨀昀汩䑥獥牣灩潴≲主猻㜺∺⨀氀湩≥椻ㄺ㐴猻㜺∺⨀琀条≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨲獻㔺∺慰慲≭伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨳楻〺伻㐺㨴瀢灨潄畣敭瑮牯䑜獥牣灩潴屲慔屧慐慲䑭獥牣灩潴≲㔺笺㩳㔱∺⨀瘀牡慩汢乥浡≥猻㔺∺瀤極≤猻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㜺∺湩整敧≲紻㩳㨷"*慮敭㬢㩳㨵瀢牡浡㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽㩩㬱㩏㐴∺桰䑰捯浵湥潴屲敄捳楲瑰牯呜条停牡浡敄捳楲瑰牯㨢㨵獻ㄺ㨵"*慶楲扡敬慎敭㬢㩳㨵␢畧摩㬢㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㨷椢瑮来牥㬢獽㜺∺⨀渀浡≥猻㔺∺慰慲≭猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽楽㈺伻㐺㨴瀢灨潄畣敭瑮牯䑜獥牣灩潴屲慔屧慐慲䑭獥牣灩潴≲㔺笺㩳㔱∺⨀瘀牡慩汢乥浡≥猻㘺∺甤慭歳㬢㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㨷椢瑮来牥㬢獽㜺∺⨀渀浡≥猻㔺∺慰慲≭猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽獽㘺∺桴潲獷㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻㔺笺㩩㬰㩏㔴∺桰䑰捯浵湥潴屲敄捳楲瑰牯呜条呜牨睯䑳獥牣灩潴≲㐺笺㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㈳∺婜湥塤䍟湯潳敬偟潲散獳䕟捸灥楴湯㬢獽㜺∺⨀渀浡≥猻㘺∺桴潲獷㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㌲∺桗湥爠湵楮杮漠楷摮睯≳猻㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽㩩㬱㩏㔴∺桰䑰捯浵湥潴屲敄捳楲瑰牯呜条呜牨睯䑳獥牣灩潴≲㐺笺㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㈳∺婜湥塤䍟湯潳敬偟潲散獳䕟捸灥楴湯㬢獽㜺∺⨀渀浡≥猻㘺∺桴潲獷㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳〳∺桗湥爠湵楮杮椠敷湥楶潲敭瑮㬢㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽楽㈺伻㐺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲慔屧桔潲獷敄捳楲瑰牯㨢㨴獻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㌺㨲尢敚摮彘潃獮汯彥牐捯獥彳硅散瑰潩≮紻㩳㨷"*慮敭㬢㩳㨶琢牨睯≳猻ㄺ㨴"*敤捳楲瑰潩≮猻㌺㨴圢敨桳潭彰畦据楴湯潤❮⁴硥獩≴猻㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽㩩㬳㩏㔴∺桰䑰捯浵湥潴屲敄捳楲瑰牯呜条呜牨睯䑳獥牣灩潴≲㐺笺㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㈳∺婜湥塤䍟湯潳敬偟潲散獳䕟捸灥楴湯㬢獽㜺∺⨀渀浡≥猻㘺∺桴潲獷㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㐳∺桗湥瀠湣汴⩟映湵瑣潩獮搠湯琧攠楸瑳㬢㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽楽㐺伻㐺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲慔屧桔潲獷敄捳楲瑰牯㨢㨴獻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㌺㨲尢敚摮彘潃獮汯彥牐捯獥彳硅散瑰潩≮紻㩳㨷"*慮敭㬢㩳㨶琢牨睯≳猻ㄺ㨴"*敤捳楲瑰潩≮猻㌺㨴圢敨潰楳彸畦据楴湯潤❮⁴硥獩≴猻㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽絽絽㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽獽ㄺ㨰弢摟獥牴捵≴伻㐺㨱瀢灨潄畣敭瑮牯䑜獥牣灩潴屲敍桴摯敄捳楲瑰牯㨢㘱笺㩳㨹"*慰敲瑮㬢㩲㈲㬲㩳ㄱ∺⨀愀獢牴捡≴戻〺猻㠺∺⨀昀湩污㬢㩢㬰㩳㨹"*瑳瑡捩㬢㩢㬰㩳㌱∺⨀瘀獩扩汩瑩≹猻㘺∺異汢捩㬢㩳㈱∺⨀愀杲浵湥獴㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽㩳㨸"*煦敳≮猻㐺㨱尢敚摮彘潃獮汯彥牐捯獥彳湕硩㨺彟敤瑳畲瑣⤨㬢㩳㨷"*慮敭㬢㩳〱∺彟敤瑳畲瑣㬢㩳㈱∺⨀渀浡獥慰散㬢㭎㩳〱∺⨀瀀捡慫敧㬢㩳㨰∢猻ㄺ㨰"*畳浭牡≹猻㈺㨹匢潴⁰桴档汩湯搠獥牴捵楴湯㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻ㄺ㨷"*楦敬敄捳楲瑰牯㬢㭎㩳㨷"*楬敮㬢㩩㠱㬶㩳㨷"*慴獧㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩳㨵瀢牡浡㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽獽㔺∺瑳牡≴伻㐺㨱瀢灨潄畣敭瑮牯䑜獥牣灩潴屲敍桴摯敄捳楲瑰牯㨢㘱笺㩳㨹"*慰敲瑮㬢㩲㈲㬲㩳ㄱ∺⨀愀獢牴捡≴戻〺猻㠺∺⨀昀湩污㬢㩢㬰㩳㨹"*瑳瑡捩㬢㩢㬰㩳㌱∺⨀瘀獩扩汩瑩≹猻㘺∺異汢捩㬢㩳㈱∺⨀愀杲浵湥獴㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽㩳㨸"*煦敳≮猻㌺㨶尢敚摮彘潃獮汯彥牐捯獥彳湕硩㨺瑳牡⡴∩猻㜺∺⨀渀浡≥猻㔺∺瑳牡≴猻ㄺ㨲"*慮敭灳捡≥主猻ㄺ㨰"*慰正条≥猻〺∺㬢㩳〱∺⨀猀浵慭祲㬢㩳㐵∺慃獵獥琠楨獰略潤琭牨慥潴戠来湩瀠牡污敬硥捥瑵潩㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㠳㨷吢楨敭桴摯映物瑳挠敨正景愠汬琠敨匠慨敲敍潭祲匠来敭瑮晉漠慫ⱹ椠 forks the child process, attaches signal handler and returns immediatly. The status is set to running, and a PID is assigned. The result is that two pseudo-threads are running concurrently: the current thread (which returns from the call to the start() method) and the other thread (which 硥捥瑵獥椠獴爠湵⤨洠瑥潨⥤∮猻ㄺ㨷"*楦敬敄捳楲瑰牯㬢㭎㩳㨷"*楬敮㬢㩩〲㬷㩳㨷"*慴獧㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻㌺笺㩳㨶琢牨睯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨲楻〺伻㐺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲慔屧桔潲獷敄捳楲瑰牯㨢㨴獻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㌺㨲尢敚摮彘潃獮汯彥牐捯獥彳硅散瑰潩≮紻㩳㨷"*慮敭㬢㩳㨶琢牨睯≳猻ㄺ㨴"*敤捳楲瑰潩≮猻㌺㨴圢敨䡓⁍敳浧湥獴挠湡琧戠牣慥整≤猻㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽㩩㬱㩏㔴∺桰䑰捯浵湥潴屲敄捳楲瑰牯呜条呜牨睯䑳獥牣灩潴≲㐺笺㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㈳∺婜湥塤䍟湯潳敬偟潲散獳䕟捸灥楴湯㬢獽㜺∺⨀渀浡≥猻㘺∺桴潲獷㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㘲∺桗湥瀠潲散獳映牯楫杮映楡獬㬢㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽獽㘺∺敲畴湲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩩㬰㩏㔴∺桰䑰捯浵湥潴屲敄捳楲瑰牯呜条剜瑥牵䑮獥牣灩潴≲㐺笺㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㨴瘢楯≤紻㩳㨷"*慮敭㬢㩳㨶爢瑥牵≮猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽獽㔺∺慰慲≭伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽獽㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽㩳㨴猢潴≰伻㐺㨱瀢灨潄畣敭瑮牯䑜獥牣灩潴屲敍桴摯敄捳楲瑰牯㨢㘱笺㩳㨹"*慰敲瑮㬢㩲㈲㬲㩳ㄱ∺⨀愀獢牴捡≴戻〺猻㠺∺⨀昀湩污㬢㩢㬰㩳㨹"*瑳瑡捩㬢㩢㬰㩳㌱∺⨀瘀獩扩汩瑩≹猻㘺∺異汢捩㬢㩳㈱∺⨀愀杲浵湥獴㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽㩳㨸"*煦敳≮猻㌺㨵尢敚摮彘潃獮汯彥牐捯獥彳湕硩㨺瑳灯⤨㬢㩳㨷"*慮敭㬢㩳㨴猢潴≰猻ㄺ㨲"*慮敭灳捡≥主猻ㄺ㨰"*慰正条≥猻〺∺㬢㩳〱∺⨀猀浵慭祲㬢㩳㌳∺慃獵獥琠敨挠牵敲瑮琠牨慥潴搠敩∮猻ㄺ㨴"*敤捳楲瑰潩≮猻㠺㨲吢敨爠汥瑡癩牰捯獥獩欠汩敬湡楤慳灰慥獲椠浭摥慩整祬映潲桴 牰捯獥敳楬瑳∮猻ㄺ㨷"*楦敬敄捳楲瑰牯㬢㭎㩳㨷"*楬敮㬢㩩㘲㬹㩳㨷"*慴獧㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻㈺笺㩳㨶爢瑥牵≮伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨱楻〺伻㐺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲慔屧敒畴湲敄捳楲瑰牯㨢㨴獻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㜺∺潢汯慥≮紻㩳㨷"*慮敭㬢㩳㨶爢瑥牵≮猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽獽㔺∺慰慲≭伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽獽㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽㩳㨹椢剳湵楮杮㬢㩏ㄴ∺桰䑰捯浵湥潴屲敄捳楲瑰牯䵜瑥潨䑤獥牣灩潴≲ㄺ㨶獻㤺∺⨀瀀牡湥≴爻㈺㈲猻ㄺ㨱"*扡瑳慲瑣㬢㩢㬰㩳㨸"*楦慮≬戻〺猻㤺∺⨀猀慴楴≣戻〺猻ㄺ㨳"*楶楳楢楬祴㬢㩳㨶瀢扵楬≣猻ㄺ㨲"*牡畧敭瑮≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻獽㠺∺⨀昀獱湥㬢㩳〴∺婜湥塤䍟湯潳敬偟潲散獳啟楮㩸椺剳湵楮杮⤨㬢㩳㨷"*慮敭㬢㩳㨹椢剳湵楮杮㬢㩳㈱∺⨀渀浡獥慰散㬢㭎㩳〱∺⨀瀀捡慫敧㬢㩳㨰∢猻ㄺ㨰"*畳浭牡≹猻㐺㨵吢獥⁴晩琠敨瀠敳摵ⵯ桴敲摡椠污敲摡⁹瑳牡整㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻ㄺ㨷"*楦敬敄捳楲瑰牯㬢㭎㩳㨷"*楬敮㬢㩩㤲㬰㩳㨷"*慴獧㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻㈺笺㩳㨶爢瑥牵≮伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨱楻〺伻㐺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲慔屧敒畴湲敄捳楲瑰牯㨢㨴獻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㜺∺潢汯慥≮紻㩳㨷"*慮敭㬢㩳㨶爢瑥牵≮猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽獽㔺∺慰慲≭伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽獽㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽㩳ㄱ∺敳噴牡慩汢≥伻㐺㨱瀢灨潄畣敭瑮牯䑜獥牣灩潴屲敍桴摯敄捳楲瑰牯㨢㘱笺㩳㨹"*慰敲瑮㬢㩲㈲㬲㩳ㄱ∺⨀愀獢牴捡≴戻〺猻㠺∺⨀昀湩污㬢㩢㬰㩳㨹"*瑳瑡捩㬢㩢㬰㩳㌱∺⨀瘀獩扩汩瑩≹猻㘺∺異汢捩㬢㩳㈱∺⨀愀杲浵湥獴㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻㈺笺㩳㨵␢慮敭㬢㩏㌴∺桰䑰捯浵湥潴屲敄捳楲瑰牯䅜杲浵湥䑴獥牣灩潴≲ㄺ㨳獻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㘺∺瑳楲杮㬢獽ㄺ㨰"*敤慦汵≴主猻ㄺ㨴"*祢敒敦敲据≥戻〺猻㠺∺⨀昀獱湥㬢㩳㨰∢猻㜺∺⨀渀浡≥猻㔺∺渤浡≥猻ㄺ㨲"*慮敭灳捡≥主猻ㄺ㨰"*慰正条≥猻〺∺㬢㩳〱∺⨀猀浵慭祲㬢㩳㨰∢猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㜱∺⨀昀汩䑥獥牣灩潴≲主猻㜺∺⨀氀湩≥椻〺猻㜺∺⨀琀条≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻獽㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽㩳㨶␢慶畬≥伻㐺㨳瀢灨潄畣敭瑮牯䑜獥牣灩潴屲牁畧敭瑮敄捳楲瑰牯㨢㌱笺㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㨵洢硩摥㬢獽ㄺ㨰"*敤慦汵≴主猻ㄺ㨴"*祢敒敦敲据≥戻〺猻㠺∺⨀昀獱湥㬢㩳㨰∢猻㜺∺⨀渀浡≥猻㘺∺瘤污敵㬢㩳㈱∺⨀渀浡獥慰散㬢㭎㩳〱∺⨀瀀捡慫敧㬢㩳㨰∢猻ㄺ㨰"*畳浭牡≹猻〺∺㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻ㄺ㨷"*楦敬敄捳楲瑰牯㬢㭎㩳㨷"*楬敮㬢㩩㬰㩳㨷"*慴獧㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽獽㠺∺⨀昀獱湥㬢㩳㈴∺婜湥塤䍟湯潳敬偟潲散獳啟楮㩸猺瑥慖楲扡敬⤨㬢㩳㨷"*慮敭㬢㩳ㄱ∺敳噴牡慩汢≥猻ㄺ㨲"*慮敭灳捡≥主猻ㄺ㨰"*慰正条≥猻〺∺㬢㩳〱∺⨀猀浵慭祲㬢㩳〲㨱匢瑥愠瘠牡慩汢湩潴琠敨猠慨敲敭潭祲猠来敭瑮潳琠慨⁴瑩挠湡愠捣獥敳 both from the parent and from the child process. Variable names 敢楧湮湩楷桴甠摮牥楬敮牡湯祬瀠牥業瑴摥琠湩整慲畦据楴湯㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻ㄺ㨷"*楦敬敄捳楲瑰牯㬢㭎㩳㨷"*楬敮㬢㩩〳㬵㩳㨷"*慴獧㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻㌺笺㩳㨵瀢牡浡㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻㈺笺㩩㬰㩏㐴∺桰䑰捯浵湥潴屲敄捳楲瑰牯呜条停牡浡敄捳楲瑰牯㨢㨵獻ㄺ㨵"*慶楲扡敬慎敭㬢㩳㨵␢慮敭㬢㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㨶猢牴湩≧紻㩳㨷"*慮敭㬢㩳㨵瀢牡浡㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽㩩㬱㩏㐴∺桰䑰捯浵湥潴屲敄捳楲瑰牯呜条停牡浡敄捳楲瑰牯㨢㨵獻ㄺ㨵"*慶楲扡敬慎敭㬢㩳㨶␢慶畬≥猻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㔺∺業數≤紻㩳㨷"*慮敭㬢㩳㨵瀢牡浡㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽絽㩳㨶琢牨睯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨱楻〺伻㐺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲慔屧桔潲獷敄捳楲瑰牯㨢㨴獻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㌺㨲尢敚摮彘潃獮汯彥牐捯獥彳硅散瑰潩≮紻㩳㨷"*慮敭㬢㩳㨶琢牨睯≳猻ㄺ㨴"*敤捳楲瑰潩≮猻㐺㨱圢敨湡椠癮污摩瘠牡慩汢慮敭椠畳灰楬摥㬢㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽獽㘺∺敲畴湲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩩㬰㩏㔴∺桰䑰捯浵湥潴屲敄捳楲瑰牯呜条剜瑥牵䑮獥牣灩潴≲㐺笺㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㨴瘢楯≤紻㩳㨷"*慮敭㬢㩳㨶爢瑥牵≮猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽絽獽㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽㩳ㄱ∺敧噴牡慩汢≥伻㐺㨱瀢灨潄畣敭瑮牯䑜獥牣灩潴屲敍桴摯敄捳楲瑰牯㨢㘱笺㩳㨹"*慰敲瑮㬢㩲㈲㬲㩳ㄱ∺⨀愀獢牴捡≴戻〺猻㠺∺⨀昀湩污㬢㩢㬰㩳㨹"*瑳瑡捩㬢㩢㬰㩳㌱∺⨀瘀獩扩汩瑩≹猻㘺∺異汢捩㬢㩳㈱∺⨀愀杲浵湥獴㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩳㨵␢慮敭㬢㩏㌴∺桰䑰捯浵湥潴屲敄捳楲瑰牯䅜杲浵湥䑴獥牣灩潴≲ㄺ㨳獻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㘺∺瑳楲杮㬢獽ㄺ㨰"*敤慦汵≴主猻ㄺ㨴"*祢敒敦敲据≥戻〺猻㠺∺⨀昀獱湥㬢㩳㨰∢猻㜺∺⨀渀浡≥猻㔺∺渤浡≥猻ㄺ㨲"*慮敭灳捡≥主猻ㄺ㨰"*慰正条≥猻〺∺㬢㩳〱∺⨀猀浵慭祲㬢㩳㨰∢猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㜱∺⨀昀汩䑥獥牣灩潴≲主猻㜺∺⨀氀湩≥椻〺猻㜺∺⨀琀条≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻獽㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽絽㩳㨸"*煦敳≮猻㐺㨲尢敚摮彘潃獮汯彥牐捯獥彳湕硩㨺敧噴牡慩汢⡥∩猻㜺∺⨀渀浡≥猻ㄺ㨱朢瑥慖楲扡敬㬢㩳㈱∺⨀渀浡獥慰散㬢㭎㩳〱∺⨀瀀捡慫敧㬢㩳㨰∢猻ㄺ㨰"*畳浭牡≹猻㤺㨰䜢瑥愠瘠牡慩汢牦浯琠敨猠慨敲敭潭祲猠来敭瑮敒畴湲啎䱌椠桴 癡物慢汥潥獮❴硩獴⸢㭳㨱㐺∀⨀摥獣物灴楯渢㭳㨰㨢∻猺ㄷ㨢*f楬敄敳捲楰瑯爢㭎㭳㨷㨢*l楮攢㭩㨳㈲㭳㨷㨢*t慧猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺㈺筳㨵㨢灡牡洢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺ㄺ筩㨰㭏㨴㐺≰桰䑯捵浥湴潲屄敳捲楰瑯牜呡杜偡牡浄敳捲楰瑯爢㨵㩻猺ㄵ㨢*v慲楡扬敎慭攢㭳㨵㨢⑮慭攢㭳㨸㨢*t祰敳∻愺ㄺ筩㨰㭳㨶㨢獴物湧∻絳㨷㨢*n慭攢㭳㨵㨢灡牡洢㭳㨱㐺∀⨀摥獣物灴楯渢㭳㨰㨢∻猺㤺∀⨀敲牯牳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絽絳㨶㨢牥瑵牮∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨱㩻椺〻伺㐵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屔慧屒整畲湄敳捲楰瑯爢㨴㩻猺㠺∀⨀瑹灥猢㭡㨱㩻椺〻猺㔺≭楸敤∻絳㨷㨢*n慭攢㭳㨶㨢牥瑵牮∻猺ㄴ㨢*d敳捲楰瑩潮∻猺〺∢㭳㨹㨢*e牲潲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絽絽猺㤺∀⨀敲牯牳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絳㨱㈺≧整䱡獴䅬楶攢㭏㨴ㄺ≰桰䑯捵浥湴潲屄敳捲楰瑯牜䵥瑨潤䑥獣物灴潲∺ㄶ㩻猺㤺∀⨀灡牥湴∻爺㈲㈻猺ㄱ㨢*a扳瑲慣琢㭢㨰㭳㨸㨢*f楮慬∻戺〻猺㤺∀⨀獴慴楣∻戺〻猺ㄳ㨢*v楳楢楬楴礢㭳㨶㨢灵扬楣∻猺ㄲ㨢*a牧畭敮瑳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽猺㠺∀⨀晱獥渢㭳㨴㌺≜婥湤塟䍯湳潬敟偲潣敳獟啮楸㨺来瑌慳瑁汩癥⠩∻猺㜺∀⨀湡浥∻猺ㄲ㨢来瑌慳瑁汩癥∻猺ㄲ㨢*n慭敳灡捥∻主猺㨢*p慣歡来∻猺〺∢㭳㨱〺∀⨀獵浭慲礢㭳㨵㤺≒敡搠瑨攠瑩浥污灳敤楮捥⁴桥慳琠捨楬搠獥瑁汩癥⠩慬氮∻猺ㄴ㨢*d敳捲楰瑩潮∻猺㈱㜺≔桩猠浥瑨潤猠畳敦畬散慵獥晴敮⁷攠桡癥⁰獥畤漭瑨牥慤⁰潯氠慮搠睥 need to know each pseudo-thread status. If the child executes the setAlive() method, the parent with getLastAlive() can know that child is 慬楶攮∻猺ㄷ㨢*f楬敄敳捲楰瑯爢㭎㭳㨷㨢*l楮攢㭩㨳㐳㭳㨷㨢*t慧猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺㈺筳㨶㨢牥瑵牮∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨱㩻椺〻伺㐵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屔慧屒整畲湄敳捲楰瑯爢㨴㩻猺㠺∀⨀瑹灥猢㭡㨱㩻椺〻猺㜺≩湴敧敲∻絳㨷㨢*n慭攢㭳㨶㨢牥瑵牮∻猺ㄴ㨢*d敳捲楰瑩潮∻猺〺∢㭳㨹㨢*e牲潲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絽猺㔺≰慲慭∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絽猺㤺∀⨀敲牯牳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絳㨶㨢来瑐楤∻伺㐱㨢灨灄潣畭敮瑯牜䑥獣物灴潲屍整桯摄敳捲楰瑯爢㨱㘺筳㨹㨢*p慲敮琢㭲㨲㈲㭳㨱ㄺ∀⨀慢獴牡捴∻戺〻猺㠺∀⨀晩湡氢㭢㨰㭳㨹㨢*s瑡瑩挢㭢㨰㭳㨱㌺∀⨀癩獩扩汩瑹∻猺㘺≰畢汩挢㭳㨱㈺∀⨀慲杵浥湴猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絳㨸㨢*f煳敮∻猺㌷㨢屚敮摘彃潮獯汥彐牯捥獳录湩砺㩧整偩搨⤢㭳㨷㨢*n慭攢㭳㨶㨢来瑐楤∻猺ㄲ㨢*n慭敳灡捥∻主猺㨢*p慣歡来∻猺〺∢㭳㨱〺∀⨀獵浭慲礢㭳㨴㔺≒整畲湳⁴桥⁐䥄映瑨攠捵牲敮琠灳敵摯桲敡搮∻猺ㄴ㨢*d敳捲楰瑩潮∻猺〺∢㭳㨱㜺∀⨀晩汥䑥獣物灴潲∻主猺㜺∀⨀汩湥∻椺㌵㔻猺㜺∀⨀瑡杳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨲㩻猺㘺≲整畲渢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺ㄺ筩㨰㭏㨴㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜呡杜剥瑵牮䑥獣物灴潲∺㐺筳㨸㨢*t祰敳∻愺ㄺ筩㨰㭳㨷㨢楮瑥来爢㭽猺㜺∀⨀湡浥∻猺㘺≲整畲渢㭳㨱㐺∀⨀摥獣物灴楯渢㭳㨰㨢∻猺㤺∀⨀敲牯牳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絽絳㨵㨢灡牡洢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絳㨹㨢*e牲潲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽猺㤺≟獥瑁汩癥∻伺㐱㨢灨灄潣畭敮瑯牜䑥獣物灴潲屍整桯摄敳捲楰瑯爢㨱㘺筳㨹㨢*p慲敮琢㭲㨲㈲㭳㨱ㄺ∀⨀慢獴牡捴∻戺〻猺㠺∀⨀晩湡氢㭢㨰㭳㨹㨢*s瑡瑩挢㭢㨰㭳㨱㌺∀⨀癩獩扩汩瑹∻猺㤺≰牯瑥捴敤∻猺ㄲ㨢*a牧畭敮瑳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽猺㠺∀⨀晱獥渢㭳㨴〺≜婥湤塟䍯湳潬敟偲潣敳獟啮楸㨺彳整䅬楶攨⤢㭳㨷㨢*n慭攢㭳㨹㨢彳整䅬楶攢㭳㨱㈺∀⨀湡浥獰慣攢㭎㭳㨱〺∀⨀灡捫慧攢㭳㨰㨢∻猺㨢*s畭浡特∻猺㈺≓整⁰獥畤漭瑨牥慤⁰牯灥牴礠瑨慴慮攠牥慤牯洠灡牥湴⁰牯捥獳 楮牤敲⁴漠歮潷⁴桥桩汤捴楶楴礮∻猺ㄴ㨢*d敳捲楰瑩潮∻猺㈰〺≐牡捴楣慬⁵獡来敱畩牥猠瑨慴桩汤⁰牯捥獳慬汳⁴桩猠浥瑨潤琠牥杵污 time intervals; parent will use the getLastAlive() method to know 瑨攠敬慰獥搠瑩浥楮捥⁴桥慳琠灳敵摯桲敡搠汩晥楧湡汳⸮⸢㭳㨱㜺∀⨀晩汥䑥獣物灴潲∻主猺㜺∀⨀汩湥∻椺㌷〻猺㜺∀⨀瑡杳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨲㩻猺㘺≲整畲渢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺ㄺ筩㨰㭏㨴㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜呡杜剥瑵牮䑥獣物灴潲∺㐺筳㨸㨢*t祰敳∻愺ㄺ筩㨰㭳㨴㨢癯楤∻絳㨷㨢*n慭攢㭳㨶㨢牥瑵牮∻猺ㄴ㨢*d敳捲楰瑩潮∻猺〺∢㭳㨹㨢*e牲潲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絽猺㔺≰慲慭∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絽猺㤺∀⨀敲牯牳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絳㨱㤺≟捡汬䍡汬扡捫䵥瑨潤∻伺㐱㨢灨灄潣畭敮瑯牜䑥獣物灴潲屍整桯摄敳捲楰瑯爢㨱㘺筳㨹㨢*p慲敮琢㭲㨲㈲㭳㨱ㄺ∀⨀慢獴牡捴∻戺〻猺㠺∀⨀晩湡氢㭢㨰㭳㨹㨢*s瑡瑩挢㭢㨰㭳㨱㌺∀⨀癩獩扩汩瑹∻猺㤺≰牯瑥捴敤∻猺ㄲ㨢*a牧畭敮瑳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨳㩻猺ㄱ㨢⑭整桯摎慭攢㭏㨴㌺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䅲杵浥湴䑥獣物灴潲∺ㄳ㩻猺㠺∀⨀瑹灥猢㭡㨱㩻椺〻猺㘺≳瑲楮朢㭽猺㨢*d敦慵汴∻主猺ㄴ㨢*b祒敦敲敮捥∻戺〻猺㠺∀⨀晱獥渢㭳㨰㨢∻猺㜺∀⨀湡浥∻猺ㄱ㨢⑭整桯摎慭攢㭳㨱㈺∀⨀湡浥獰慣攢㭎㭳㨱〺∀⨀灡捫慧攢㭳㨰㨢∻猺㨢*s畭浡特∻猺〺∢㭳㨱㐺∀⨀摥獣物灴楯渢㭳㨰㨢∻猺ㄷ㨢*f楬敄敳捲楰瑯爢㭎㭳㨷㨢*l楮攢㭩㨰㭳㨷㨢*t慧猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絳㨹㨢*e牲潲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽猺㠺∤慲杌楳琢㭏㨴㌺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䅲杵浥湴䑥獣物灴潲∺ㄳ㩻猺㠺∀⨀瑹灥猢㭡㨱㩻椺〻猺㔺≡牲慹∻絳㨱〺∀⨀摥晡畬琢㭳㨷㨢慲牡礨⤢㭳㨱㐺∀⨀批剥晥牥湣攢㭢㨰㭳㨸㨢*f煳敮∻猺〺∢㭳㨷㨢*n慭攢㭳㨸㨢②牧䱩獴∻猺ㄲ㨢*n慭敳灡捥∻主猺㨢*p慣歡来∻猺〺∢㭳㨱〺∀⨀獵浭慲礢㭳㨰㨢∻猺ㄴ㨢*d敳捲楰瑩潮∻猺〺∢㭳㨱㜺∀⨀晩汥䑥獣物灴潲∻主猺㜺∀⨀汩湥∻椺〻猺㜺∀⨀瑡杳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽猺㤺∀⨀敲牯牳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絳㨵㨢⑴祰攢㭏㨴㌺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䅲杵浥湴䑥獣物灴潲∺ㄳ㩻猺㠺∀⨀瑹灥猢㭡㨱㩻椺〻猺㘺≳瑲楮朢㭽猺㨢*d敦慵汴∻猺ㄷ㨢獥汦㨺噏䥄彍䕔䡏䐢㭳㨱㐺∀⨀批剥晥牥湣攢㭢㨰㭳㨸㨢*f煳敮∻猺〺∢㭳㨷㨢*n慭攢㭳㨵㨢⑴祰攢㭳㨱㈺∀⨀湡浥獰慣攢㭎㭳㨱〺∀⨀灡捫慧攢㭳㨰㨢∻猺㨢*s畭浡特∻猺〺∢㭳㨱㐺∀⨀摥獣物灴楯渢㭳㨰㨢∻猺ㄷ㨢*f楬敄敳捲楰瑯爢㭎㭳㨷㨢*l楮攢㭩㨰㭳㨷㨢*t慧猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絳㨹㨢*e牲潲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絽猺㠺∀⨀晱獥渢㭳㨵〺≜婥湤塟䍯湳潬敟偲潣敳獟啮楸㨺彣慬汃慬汢慣歍整桯搨⤢㭳㨷㨢*n慭攢㭳㨱㤺≟捡汬䍡汬扡捫䵥瑨潤∻猺ㄲ㨢*n慭敳灡捥∻主猺㨢*p慣歡来∻猺〺∢㭳㨱〺∀⨀獵浭慲礢㭳㨸〺≔桩猠楳慬汥搠晲潭⁷楴桩渠瑨攠灡牥湴㬠慬氠瑨攠捯浭畮楣慴楯渠獴畦 獩搠湯敨敲∮猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㜱∺⨀昀汩䑥獥牣灩潴≲主猻㜺∺⨀氀湩≥椻㌺㔸猻㜺∺⨀琀条≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨲獻㔺∺慰慲≭伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨳楻〺伻㐺㨴瀢灨潄畣敭瑮牯䑜獥牣灩潴屲慔屧慐慲䑭獥牣灩潴≲㔺笺㩳㔱∺⨀瘀牡慩汢乥浡≥猻ㄺ㨱␢敭桴摯慎敭㬢㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㨶猢牴湩≧紻㩳㨷"*慮敭㬢㩳㨵瀢牡浡㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽㩩㬱㩏㐴∺桰䑰捯浵湥潴屲敄捳楲瑰牯呜条停牡浡敄捳楲瑰牯㨢㨵獻ㄺ㨵"*慶楲扡敬慎敭㬢㩳㨸␢牡䱧獩≴猻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㔺∺牡慲≹紻㩳㨷"*慮敭㬢㩳㨵瀢牡浡㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽㩩㬲㩏㐴∺桰䑰捯浵湥潴屲敄捳楲瑰牯呜条停牡浡敄捳楲瑰牯㨢㨵獻ㄺ㨵"*慶楲扡敬慎敭㬢㩳㨵␢祴数㬢㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㨶猢牴湩≧紻㩳㨷"*慮敭㬢㩳㨵瀢牡浡㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽絽㩳㨶爢瑥牵≮伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨱楻〺伻㐺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲慔屧敒畴湲敄捳楲瑰牯㨢㨴獻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㔺∺業數≤紻㩳㨷"*慮敭㬢㩳㨶爢瑥牵≮猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽絽獽㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽㩳㨴弢畲≮伻㐺㨱瀢灨潄畣敭瑮牯䑜獥牣灩潴屲敍桴摯敄捳楲瑰牯㨢㘱笺㩳㨹"*慰敲瑮㬢㩲㈲㬲㩳ㄱ∺⨀愀獢牴捡≴戻ㄺ猻㠺∺⨀昀湩污㬢㩢㬰㩳㨹"*瑳瑡捩㬢㩢㬰㩳㌱∺⨀瘀獩扩汩瑩≹猻㤺∺牰瑯捥整≤猻ㄺ㨲"*牡畧敭瑮≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻獽㠺∺⨀昀獱湥㬢㩳㔳∺婜湥塤䍟湯潳敬偟潲散獳啟楮㩸强畲⡮∩猻㜺∺⨀渀浡≥猻㐺∺牟湵㬢㩳㈱∺⨀渀浡獥慰散㬢㭎㩳〱∺⨀瀀捡慫敧㬢㩳㨰∢猻ㄺ㨰"*畳浭牡≹猻㔺㨶吢楨敭桴摯愠瑣慵汬⁹浩汰浥湥獴琠敨瀠敳摵ⵯ桴敲摡氠杯捩∮猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㜱∺⨀昀汩䑥獥牣灩潴≲主猻㜺∺⨀氀湩≥椻㐺㘳猻㜺∺⨀琀条≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨲獻㘺∺敲畴湲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩩㬰㩏㔴∺桰䑰捯浵湥潴屲敄捳楲瑰牯呜条剜瑥牵䑮獥牣灩潴≲㐺笺㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㨴瘢楯≤紻㩳㨷"*慮敭㬢㩳㨶爢瑥牵≮猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽獽㔺∺慰慲≭伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽獽㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽㩳㈱∺獟湥卤杩獕ㅲ㬢㩏ㄴ∺桰䑰捯浵湥潴屲敄捳楲瑰牯䵜瑥潨䑤獥牣灩潴≲ㄺ㨶獻㤺∺⨀瀀牡湥≴爻㈺㈲猻ㄺ㨱"*扡瑳慲瑣㬢㩢㬰㩳㨸"*楦慮≬戻〺猻㤺∺⨀猀慴楴≣戻〺猻ㄺ㨳"*楶楳楢楬祴㬢㩳㨷瀢楲慶整㬢㩳㈱∺⨀愀杲浵湥獴㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽㩳㨸"*煦敳≮猻㐺㨳尢敚摮彘潃獮汯彥牐捯獥彳湕硩㨺獟湥卤杩獕ㅲ⤨㬢㩳㨷"*慮敭㬢㩳㈱∺獟湥卤杩獕ㅲ㬢㩳㈱∺⨀渀浡獥慰散㬢㭎㩳〱∺⨀瀀捡慫敧㬢㩳㨰∢猻ㄺ㨰"*畳浭牡≹猻㌺㨳匢湥獤猠杩慮潴琠敨挠楨摬瀠潲散獳㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻ㄺ㨷"*楦敬敄捳楲瑰牯㬢㭎㩳㨷"*楬敮㬢㩩㐴㬳㩳㨷"*慴獧㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻㈺笺㩳㨶爢瑥牵≮伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨱楻〺伻㐺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲慔屧敒畴湲敄捳楲瑰牯㨢㨴獻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㐺∺潶摩㬢獽㜺∺⨀渀浡≥猻㘺∺敲畴湲㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽絽㩳㨵瀢牡浡㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽獽ㄺ㨴弢牷瑩噥牡慩汢≥伻㐺㨱瀢灨潄畣敭瑮牯䑜獥牣灩潴屲敍桴摯敄捳楲瑰牯㨢㘱笺㩳㨹"*慰敲瑮㬢㩲㈲㬲㩳ㄱ∺⨀愀獢牴捡≴戻〺猻㠺∺⨀昀湩污㬢㩢㬰㩳㨹"*瑳瑡捩㬢㩢㬰㩳㌱∺⨀瘀獩扩汩瑩≹猻㜺∺牰癩瑡≥猻ㄺ㨲"*牡畧敭瑮≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨲獻㔺∺渤浡≥伻㐺㨳瀢灨潄畣敭瑮牯䑜獥牣灩潴屲牁畧敭瑮敄捳楲瑰牯㨢㌱笺㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㨶猢牴湩≧紻㩳〱∺⨀搀晥畡瑬㬢㭎㩳㐱∺⨀戀剹晥牥湥散㬢㩢㬰㩳㨸"*煦敳≮猻〺∺㬢㩳㨷"*慮敭㬢㩳㨵␢慮敭㬢㩳㈱∺⨀渀浡獥慰散㬢㭎㩳〱∺⨀瀀捡慫敧㬢㩳㨰∢猻ㄺ㨰"*畳浭牡≹猻〺∺㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻ㄺ㨷"*楦敬敄捳楲瑰牯㬢㭎㩳㨷"*楬敮㬢㩩㬰㩳㨷"*慴獧㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽獽㘺∺瘤污敵㬢㩏㌴∺桰䑰捯浵湥潴屲敄捳楲瑰牯䅜杲浵湥䑴獥牣灩潴≲ㄺ㨳獻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㔺∺業數≤紻㩳〱∺⨀搀晥畡瑬㬢㭎㩳㐱∺⨀戀剹晥牥湥散㬢㩢㬰㩳㨸"*煦敳≮猻〺∺㬢㩳㨷"*慮敭㬢㩳㨶␢慶畬≥猻ㄺ㨲"*慮敭灳捡≥主猻ㄺ㨰"*慰正条≥猻〺∺㬢㩳〱∺⨀猀浵慭祲㬢㩳㨰∢猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㜱∺⨀昀汩䑥獥牣灩潴≲主猻㜺∺⨀氀湩≥椻〺猻㜺∺⨀琀条≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻獽㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽絽㩳㨸"*煦敳≮猻㐺㨵尢敚摮彘潃獮汯彥牐捯獥彳湕硩㨺睟楲整慖楲扡敬⤨㬢㩳㨷"*慮敭㬢㩳㐱∺睟楲整慖楲扡敬㬢㩳㈱∺⨀渀浡獥慰散㬢㭎㩳〱∺⨀瀀捡慫敧㬢㩳㨰∢猻ㄺ㨰"*畳浭牡≹猻㔺㨴䄢畣慴汬⁹牗瑩慶楲扡敬琠桴桳牡摥洠浥牯⁹敳浧湥≴猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㜱∺⨀昀汩䑥獥牣灩潴≲主猻㜺∺⨀氀湩≥椻㐺㜵猻㜺∺⨀琀条≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨲獻㔺∺慰慲≭伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨲楻〺伻㐺㨴瀢灨潄畣敭瑮牯䑜獥牣灩潴屲慔屧慐慲䑭獥牣灩潴≲㔺笺㩳㔱∺⨀瘀牡慩汢乥浡≥猻㔺∺渤浡≥猻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㘺∺瑳楲杮㬢獽㜺∺⨀渀浡≥猻㔺∺慰慲≭猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽楽ㄺ伻㐺㨴瀢灨潄畣敭瑮牯䑜獥牣灩潴屲慔屧慐慲䑭獥牣灩潴≲㔺笺㩳㔱∺⨀瘀牡慩汢乥浡≥猻㘺∺瘤污敵㬢㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㨵洢硩摥㬢獽㜺∺⨀渀浡≥猻㔺∺慰慲≭猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽獽㘺∺敲畴湲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩩㬰㩏㔴∺桰䑰捯浵湥潴屲敄捳楲瑰牯呜条剜瑥牵䑮獥牣灩潴≲㐺笺㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㨴瘢楯≤紻㩳㨷"*慮敭㬢㩳㨶爢瑥牵≮猻ㄺ㨴"*敤捳楲瑰潩≮猻〺∺㬢㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽絽獽㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽㩳〲∺损敬湡牐捯獥䍳湯整瑸㬢㩏ㄴ∺桰䑰捯浵湥潴屲敄捳楲瑰牯䵜瑥潨䑤獥牣灩潴≲ㄺ㨶獻㤺∺⨀瀀牡湥≴爻㈺㈲猻ㄺ㨱"*扡瑳慲瑣㬢㩢㬰㩳㨸"*楦慮≬戻〺猻㤺∺⨀猀慴楴≣戻〺猻ㄺ㨳"*楶楳楢楬祴㬢㩳㨷瀢楲慶整㬢㩳㈱∺⨀愀杲浵湥獴㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽㩳㨸"*煦敳≮猻㔺㨱尢敚摮彘潃獮汯彥牐捯獥彳湕硩㨺损敬湡牐捯獥䍳湯整瑸⤨㬢㩳㨷"*慮敭㬢㩳〲∺损敬湡牐捯獥䍳湯整瑸㬢㩳㈱∺⨀渀浡獥慰散㬢㭎㩳〱∺⨀瀀捡慫敧㬢㩳㨰∢猻ㄺ㨰"*畳浭牡≹猻㔺㨱䐢獥牴祯琠牨慥潣瑮硥⁴湡牦敥爠汥瑡癩敲潳牵散㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻ㄺ㨷"*楦敬敄捳楲瑰牯㬢㭎㩳㨷"*楬敮㬢㩩㘴㬸㩳㨷"*慴獧㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻㈺笺㩳㨶爢瑥牵≮伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨱楻〺伻㐺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲慔屧敒畴湲敄捳楲瑰牯㨢㨴獻㠺∺⨀琀灹獥㬢㩡㨱楻〺猻㐺∺潶摩㬢獽㜺∺⨀渀浡≥猻㘺∺敲畴湲㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻㤺∺⨀攀牲牯≳伻㌺㨵瀢灨潄畣敭瑮牯䑜獥牣灩潴屲潃汬捥楴湯㨢㨱獻㠺∺⨀椀整獭㬢㩡㨰絻絽絽㩳㨵瀢牡浡㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽獽ㄺ㨱弢楳䡧湡汤牥㬢㩏ㄴ∺桰䑰捯浵湥潴屲敄捳楲瑰牯䵜瑥潨䑤獥牣灩潴≲ㄺ㨶獻㤺∺⨀瀀牡湥≴爻㈺㈲猻ㄺ㨱"*扡瑳慲瑣㬢㩢㬰㩳㨸"*楦慮≬戻〺猻㤺∺⨀猀慴楴≣戻〺猻ㄺ㨳"*楶楳楢楬祴㬢㩳㨷瀢楲慶整㬢㩳㈱∺⨀愀杲浵湥獴㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻ㄺ笺㩳㨶␢楳湧≯伻㐺㨳瀢灨潄畣敭瑮牯䑜獥牣灩潴屲牁畧敭瑮敄捳楲瑰牯㨢㌱笺㩳㨸"*祴数≳愻ㄺ笺㩩㬰㩳㨷椢瑮来牥㬢獽ㄺ㨰"*敤慦汵≴主猻ㄺ㨴"*祢敒敦敲据≥戻〺猻㠺∺⨀昀獱湥㬢㩳㨰∢猻㜺∺⨀渀浡≥猻㘺∺猤杩潮㬢㩳㈱∺⨀渀浡獥慰散㬢㭎㩳〱∺⨀瀀捡慫敧㬢㩳㨰∢猻ㄺ㨰"*畳浭牡≹猻〺∺㬢㩳㐱∺⨀搀獥牣灩楴湯㬢㩳㨰∢猻ㄺ㨷"*楦敬敄捳楲瑰牯㬢㭎㩳㨷"*楬敮㬢㩩㬰㩳㨷"*慴獧㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽㩳㨹"*牥潲獲㬢㩏㔳∺桰䑰捯浵湥潴屲敄捳楲瑰牯䍜汯敬瑣潩≮ㄺ笺㩳㨸"*瑩浥≳愻〺笺絽絽獽㠺∺⨀昀獱湥㬢㩳㈴∺婜湥塤䍟湯潳敬偟潲散獳啟楮㩸强楳䡧湡汤牥⤨㬢㩳㨷"*慮敭㬢㩳ㄱ∺獟杩慈摮敬≲猻ㄺ㨲"*慮敭灳捡≥主猻ㄺ㨰"*慰正条≥猻〺∺㬢㩳〱∺⨀猀浵慭祲㬢㩳㈹∺桔獩椠桴楳湧污栠湡汤牥琠慨⁴慭敫桴潣浭湵捩瑡潩獮戠瑥敷湥挠楬湥 慮搠獥牶敲⁰潳獩扬攮∻猺ㄴ㨢*d敳捲楰瑩潮∻猺〺∢㭳㨱㜺∀⨀晩汥䑥獣物灴潲∻主猺㜺∀⨀汩湥∻椺㐹〻猺㜺∀⨀瑡杳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨲㩻猺㔺≰慲慭∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨱㩻椺〻伺㐴㨢灨灄潣畭敮瑯牜䑥獣物灴潲屔慧屐慲慭䑥獣物灴潲∺㔺筳㨱㔺∀⨀癡物慢汥乡浥∻猺㘺∤獩杮漢㭳㨸㨢*t祰敳∻愺ㄺ筩㨰㭳㨷㨢楮瑥来爢㭽猺㜺∀⨀湡浥∻猺㔺≰慲慭∻猺ㄴ㨢*d敳捲楰瑩潮∻猺〺∢㭳㨹㨢*e牲潲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絽猺㘺≲整畲渢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺ㄺ筩㨰㭏㨴㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜呡杜剥瑵牮䑥獣物灴潲∺㐺筳㨸㨢*t祰敳∻愺ㄺ筩㨰㭳㨴㨢癯楤∻絳㨷㨢*n慭攢㭳㨶㨢牥瑵牮∻猺ㄴ㨢*d敳捲楰瑩潮∻猺〺∢㭳㨹㨢*e牲潲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絽絽猺㤺∀⨀敲牯牳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絳㨲〺≟睡楴䙯牉灣卥浡灨潲攢㭏㨴ㄺ≰桰䑯捵浥湴潲屄敳捲楰瑯牜䵥瑨潤䑥獣物灴潲∺ㄶ㩻猺㤺∀⨀灡牥湴∻爺㈲㈻猺ㄱ㨢*a扳瑲慣琢㭢㨰㭳㨸㨢*f楮慬∻戺〻猺㤺∀⨀獴慴楣∻戺〻猺ㄳ㨢*v楳楢楬楴礢㭳㨷㨢灲楶慴攢㭳㨱㈺∀⨀慲杵浥湴猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絳㨸㨢*f煳敮∻猺㔱㨢屚敮摘彃潮獯汥彐牯捥獳录湩砺㩟睡楴䙯牉灣卥浡灨潲攨⤢㭳㨷㨢*n慭攢㭳㨲〺≟睡楴䙯牉灣卥浡灨潲攢㭳㨱㈺∀⨀湡浥獰慣攢㭎㭳㨱〺∀⨀灡捫慧攢㭳㨰㨢∻猺㨢*s畭浡特∻猺㈲㨢坡楴潲⁉偃⁓敭慰桯牥∻猺ㄴ㨢*d敳捲楰瑩潮∻猺〺∢㭳㨱㜺∀⨀晩汥䑥獣物灴潲∻主猺㜺∀⨀汩湥∻椺㔳㤻猺㜺∀⨀瑡杳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨲㩻猺㘺≲整畲渢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺ㄺ筩㨰㭏㨴㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜呡杜剥瑵牮䑥獣物灴潲∺㐺筳㨸㨢*t祰敳∻愺ㄺ筩㨰㭳㨴㨢癯楤∻絳㨷㨢*n慭攢㭳㨶㨢牥瑵牮∻猺ㄴ㨢*d敳捲楰瑩潮∻猺〺∢㭳㨹㨢*e牲潲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絽猺㔺≰慲慭∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絽猺㤺∀⨀敲牯牳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絳㨱㤺≟牥慤䙲潭䥰捓敧浥湴∻伺㐱㨢灨灄潣畭敮瑯牜䑥獣物灴潲屍整桯摄敳捲楰瑯爢㨱㘺筳㨹㨢*p慲敮琢㭲㨲㈲㭳㨱ㄺ∀⨀慢獴牡捴∻戺〻猺㠺∀⨀晩湡氢㭢㨰㭳㨹㨢*s瑡瑩挢㭢㨰㭳㨱㌺∀⨀癩獩扩汩瑹∻猺㜺≰物癡瑥∻猺ㄲ㨢*a牧畭敮瑳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽猺㠺∀⨀晱獥渢㭳㨵〺≜婥湤塟䍯湳潬敟偲潣敳獟啮楸㨺彲敡摆牯浉灣卥杭敮琨⤢㭳㨷㨢*n慭攢㭳㨱㤺≟牥慤䙲潭䥰捓敧浥湴∻猺ㄲ㨢*n慭敳灡捥∻主猺㨢*p慣歡来∻猺〺∢㭳㨱〺∀⨀獵浭慲礢㭳㨲㘺≒敡搠摡瑡牯洠䥐䌠獥杭敮琢㭳㨱㐺∀⨀摥獣物灴楯渢㭳㨰㨢∻猺ㄷ㨢*f楬敄敳捲楰瑯爢㭎㭳㨷㨢*l楮攢㭩㨵㔸㭳㨷㨢*t慧猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺㌺筳㨶㨢瑨牯睳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨱㩻椺〻伺㐵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屔慧屔桲潷獄敳捲楰瑯爢㨴㩻猺㠺∀⨀瑹灥猢㭡㨱㩻椺〻猺㌲㨢屚敮摘彃潮獯汥彐牯捥獳彅硣数瑩潮∻絳㨷㨢*n慭攢㭳㨶㨢瑨牯睳∻猺ㄴ㨢*d敳捲楰瑩潮∻猺㌳㨢坨敮⁷物瑩湧映午䴠獥杭敮琠晡楬猢㭳㨹㨢*e牲潲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絽猺㘺≲整畲渢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺ㄺ筩㨰㭏㨴㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜呡杜剥瑵牮䑥獣物灴潲∺㐺筳㨸㨢*t祰敳∻愺ㄺ筩㨰㭳㨴㨢癯楤∻絳㨷㨢*n慭攢㭳㨶㨢牥瑵牮∻猺ㄴ㨢*d敳捲楰瑩潮∻猺〺∢㭳㨹㨢*e牲潲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絽猺㔺≰慲慭∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絽猺㤺∀⨀敲牯牳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絳㨱㠺≟睲楴敔潉灣卥杭敮琢㭏㨴ㄺ≰桰䑯捵浥湴潲屄敳捲楰瑯牜䵥瑨潤䑥獣物灴潲∺ㄶ㩻猺㤺∀⨀灡牥湴∻爺㈲㈻猺ㄱ㨢*a扳瑲慣琢㭢㨰㭳㨸㨢*f楮慬∻戺〻猺㤺∀⨀獴慴楣∻戺〻猺ㄳ㨢*v楳楢楬楴礢㭳㨷㨢灲楶慴攢㭳㨱㈺∀⨀慲杵浥湴猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絳㨸㨢*f煳敮∻猺㐹㨢屚敮摘彃潮獯汥彐牯捥獳录湩砺㩟睲楴敔潉灣卥杭敮琨⤢㭳㨷㨢*n慭攢㭳㨱㠺≟睲楴敔潉灣卥杭敮琢㭳㨱㈺∀⨀湡浥獰慣攢㭎㭳㨱〺∀⨀灡捫慧攢㭳㨰㨢∻猺㨢*s畭浡特∻猺㈵㨢坲楴攠摡瑡⁴漠䥐䌠獥杭敮琢㭳㨱㐺∀⨀摥獣物灴楯渢㭳㨰㨢∻猺ㄷ㨢*f楬敄敳捲楰瑯爢㭎㭳㨷㨢*l楮攢㭩㨵㠲㭳㨷㨢*t慧猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺㌺筳㨶㨢瑨牯睳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨱㩻椺〻伺㐵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屔慧屔桲潷獄敳捲楰瑯爢㨴㩻猺㠺∀⨀瑹灥猢㭡㨱㩻椺〻猺㌲㨢屚敮摘彃潮獯汥彐牯捥獳彅硣数瑩潮∻絳㨷㨢*n慭攢㭳㨶㨢瑨牯睳∻猺ㄴ㨢*d敳捲楰瑩潮∻猺㌳㨢坨敮⁷物瑩湧映午䴠獥杭敮琠晡楬猢㭳㨹㨢*e牲潲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絽猺㘺≲整畲渢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺ㄺ筩㨰㭏㨴㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜呡杜剥瑵牮䑥獣物灴潲∺㐺筳㨸㨢*t祰敳∻愺ㄺ筩㨰㭳㨴㨢癯楤∻絳㨷㨢*n慭攢㭳㨶㨢牥瑵牮∻猺ㄴ㨢*d敳捲楰瑩潮∻猺〺∢㭳㨹㨢*e牲潲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絽猺㔺≰慲慭∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絽猺㤺∀⨀敲牯牳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絳㨱㜺≟捲敡瑥䥰捓敧浥湴∻伺㐱㨢灨灄潣畭敮瑯牜䑥獣物灴潲屍整桯摄敳捲楰瑯爢㨱㘺筳㨹㨢*p慲敮琢㭲㨲㈲㭳㨱ㄺ∀⨀慢獴牡捴∻戺〻猺㠺∀⨀晩湡氢㭢㨰㭳㨹㨢*s瑡瑩挢㭢㨰㭳㨱㌺∀⨀癩獩扩汩瑹∻猺㜺≰物癡瑥∻猺ㄲ㨢*a牧畭敮瑳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽猺㠺∀⨀晱獥渢㭳㨴㠺≜婥湤塟䍯湳潬敟偲潣敳獟啮楸㨺彣牥慴敉灣卥杭敮琨⤢㭳㨷㨢*n慭攢㭳㨱㜺≟捲敡瑥䥰捓敧浥湴∻猺ㄲ㨢*n慭敳灡捥∻主猺㨢*p慣歡来∻猺〺∢㭳㨱〺∀⨀獵浭慲礢㭳㨲ㄺ≃牥慴攠慮⁉偃敧浥湴∻猺ㄴ㨢*d敳捲楰瑩潮∻猺〺∢㭳㨱㜺∀⨀晩汥䑥獣物灴潲∻主猺㜺∀⨀汩湥∻椺㘱ㄻ猺㜺∀⨀瑡杳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨳㩻猺㘺≴桲潷猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺ㄺ筩㨰㭏㨴㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜呡杜周牯睳䑥獣物灴潲∺㐺筳㨸㨢*t祰敳∻愺ㄺ筩㨰㭳㨳㈺≜婥湤塟䍯湳潬敟偲潣敳獟䕸捥灴楯渢㭽猺㜺∀⨀湡浥∻猺㘺≴桲潷猢㭳㨱㐺∀⨀摥獣物灴楯渢㭳㨳㌺≗桥渠午䴠獥杭敮琠捡渧琠扥牥慴敤∻猺㤺∀⨀敲牯牳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絽絳㨶㨢牥瑵牮∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨱㩻椺〻伺㐵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屔慧屒整畲湄敳捲楰瑯爢㨴㩻猺㠺∀⨀瑹灥猢㭡㨱㩻椺〻猺㜺≢潯汥慮∻絳㨷㨢*n慭攢㭳㨶㨢牥瑵牮∻猺ㄴ㨢*d敳捲楰瑩潮∻猺〺∢㭳㨹㨢*e牲潲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絽猺㔺≰慲慭∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絽猺㤺∀⨀敲牯牳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絳㨱㤺≟捲敡瑥䥰捓敭慰桯牥∻伺㐱㨢灨灄潣畭敮瑯牜䑥獣物灴潲屍整桯摄敳捲楰瑯爢㨱㘺筳㨹㨢*p慲敮琢㭲㨲㈲㭳㨱ㄺ∀⨀慢獴牡捴∻戺〻猺㠺∀⨀晩湡氢㭢㨰㭳㨹㨢*s瑡瑩挢㭢㨰㭳㨱㌺∀⨀癩獩扩汩瑹∻猺㜺≰物癡瑥∻猺ㄲ㨢*a牧畭敮瑳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽猺㠺∀⨀晱獥渢㭳㨵〺≜婥湤塟䍯湳潬敟偲潣敳獟啮楸㨺彣牥慴敉灣卥浡灨潲攨⤢㭳㨷㨢*n慭攢㭳㨱㤺≟捲敡瑥䥰捓敭慰桯牥∻猺ㄲ㨢*n慭敳灡捥∻主猺㨢*p慣歡来∻猺〺∢㭳㨱〺∀⨀獵浭慲礢㭳㨲〺≃牥慴攠䥐䌠獥浡灨潲攢㭳㨱㐺∀⨀摥獣物灴楯渢㭳㨰㨢∻猺ㄷ㨢*f楬敄敳捲楰瑯爢㭎㭳㨷㨢*l楮攢㭩㨶㌸㭳㨷㨢*t慧猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺㌺筳㨶㨢瑨牯睳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨱㩻椺〻伺㐵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屔慧屔桲潷獄敳捲楰瑯爢㨴㩻猺㠺∀⨀瑹灥猢㭡㨱㩻椺〻猺㌲㨢屚敮摘彃潮獯汥彐牯捥獳彅硣数瑩潮∻絳㨷㨢*n慭攢㭳㨶㨢瑨牯睳∻猺ㄴ㨢*d敳捲楰瑩潮∻猺㌱㨢坨敮敭慰桯牥慮❴攠捲敡瑥搢㭳㨹㨢*e牲潲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絽猺㘺≲整畲渢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺ㄺ筩㨰㭏㨴㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜呡杜剥瑵牮䑥獣物灴潲∺㐺筳㨸㨢*t祰敳∻愺ㄺ筩㨰㭳㨷㨢扯潬敡渢㭽猺㜺∀⨀湡浥∻猺㘺≲整畲渢㭳㨱㐺∀⨀摥獣物灴楯渢㭳㨰㨢∻猺㤺∀⨀敲牯牳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絽絳㨵㨢灡牡洢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絳㨹㨢*e牲潲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絽猺ㄳ㨢*u獥摔牡楴猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絳㨸㨢*f煳敮∻猺㈷㨢屚敮摘彃潮獯汥彐牯捥獳录湩砢㭳㨷㨢*n慭攢㭳㨲㘺≚敮摘彃潮獯汥彐牯捥獳录湩砢㭳㨱㈺∀⨀湡浥獰慣攢㭳㨰㨢∻猺㨢*p慣歡来∻猺ㄳ㨢婥湤塟䍯湳潬攢㭳㨱〺∀⨀獵浭慲礢㭳㨷㜺≚敮摘彃潮獯汥彐牯捥獳录湩砠慬汯睳⁹潵⁴漠獰慷渠愠捬慳猠慳数慲慴敤⁰牯捥獳∻猺ㄴ㨢*d敳捲楰瑩潮∻猺〺∢㭳㨱㜺∀⨀晩汥䑥獣物灴潲∻爺ㄻ猺㜺∀⨀汩湥∻椺㌱㭳㨷㨢*t慧猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺㔺筳㨸㨢捡瑥杯特∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨱㩻椺〻伺㌸㨢灨灄潣畭敮瑯牜䑥獣物灴潲屔慧䑥獣物灴潲∺㌺筳㨷㨢*n慭攢㭳㨸㨢捡瑥杯特∻猺ㄴ㨢*d敳捲楰瑩潮∻猺㔺≚敮摘∻猺㤺∀⨀敲牯牳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絽絳㨷㨢灡捫慧攢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺ㄺ筩㨰㭏㨳㠺≰桰䑯捵浥湴潲屄敳捲楰瑯牜呡杄敳捲楰瑯爢㨳㩻猺㜺∀⨀湡浥∻猺㜺≰慣歡来∻猺ㄴ㨢*d敳捲楰瑩潮∻猺ㄳ㨢婥湤塟䍯湳潬攢㭳㨹㨢*e牲潲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絽猺㤺≣潰祲楧桴∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨱㩻椺〻伺㌸㨢灨灄潣畭敮瑯牜䑥獣物灴潲屔慧䑥獣物灴潲∺㌺筳㨷㨢*n慭攢㭳㨹㨢捯灹物杨琢㭳㨱㐺∀⨀摥獣物灴楯渢㭳㨷㈺≃潰祲楧桴 挩′〰㔭㈰ㄴ⁚敮搠呥捨湯汯杩敳⁕十⁉湣⸠⡨瑴瀺⼯睷眮穥湤潭⤢㭳㨹㨢*e牲潲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絽猺㜺≬楣敮獥∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨱㩻椺〻伺㌸㨢灨灄潣畭敮瑯牜䑥獣物灴潲屔慧䑥獣物灴潲∺㌺筳㨷㨢*n慭攢㭳㨷㨢汩捥湳攢㭳㨱㐺∀⨀摥獣物灴楯渢㭳㨶ㄺ≨瑴瀺⼯晲慭敷潲欮穥湤潭⽬楣敮獥⽮敷ⵢ獤††⁎敷⁂卄⁌楣敮獥∻猺㤺∀⨀敲牯牳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絽絳㨱〺≳畢灡捫慧攢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絳㨹㨢*e牲潲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絽猺ㄳ㨢*i湴敲晡捥猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絳㨹㨢*t牡楴猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絳㨱〺∀⨀浡牫敲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絳㨸㨢*f煳敮∻猺〺∢㭳㨷㨢*n慭攢㭳㨸㨢啮楸桰∻猺ㄲ㨢*n慭敳灡捥∻主猺㨢*p慣歡来∻猺ㄳ㨢婥湤塟䍯湳潬攢㭳㨱〺∀⨀獵浭慲礢㭳㨱㐺≚敮搠䙲慭敷潲欢㭳㨱㐺∀⨀摥獣物灴楯渢㭳㨴〲㨢䱉䍅乓 This source file is subject to the new BSD license that is bundled with this package in the file LICENSE.txt. It is also available through the world-wide-web at this URL: http://framework.zend.com/license/new-bsd If you did not receive a copy of the license and are unable to obtain it through the world-wide-web, please send an email 瑯楣敮獥䁺敮搮捯洠獯⁷攠捡渠獥湤⁹潵潰礠業浥摩慴敬礮∻猺ㄷ㨢*f楬敄敳捲楰瑯爢㭎㭳㨷㨢*l楮攢㭩㨰㭳㨷㨢*t慧猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺㘺筳㨸㨢捡瑥杯特∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨱㩻椺〻伺㌸㨢灨灄潣畭敮瑯牜䑥獣物灴潲屔慧䑥獣物灴潲∺㌺筳㨷㨢*n慭攢㭳㨸㨢捡瑥杯特∻猺ㄴ㨢*d敳捲楰瑩潮∻猺㔺≚敮摘∻猺㤺∀⨀敲牯牳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絽絳㨷㨢灡捫慧攢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺ㄺ筩㨰㭏㨳㠺≰桰䑯捵浥湴潲屄敳捲楰瑯牜呡杄敳捲楰瑯爢㨳㩻猺㜺∀⨀湡浥∻猺㜺≰慣歡来∻猺ㄴ㨢*d敳捲楰瑩潮∻猺ㄳ㨢婥湤塟䍯湳潬攢㭳㨹㨢*e牲潲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絽猺㤺≣潰祲楧桴∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨱㩻椺〻伺㌸㨢灨灄潣畭敮瑯牜䑥獣物灴潲屔慧䑥獣物灴潲∺㌺筳㨷㨢*n慭攢㭳㨹㨢捯灹物杨琢㭳㨱㐺∀⨀摥獣物灴楯渢㭳㨷㈺≃潰祲楧桴 挩′〰㔭㈰ㄴ⁚敮搠呥捨湯汯杩敳⁕十⁉湣⸠⡨瑴瀺⼯睷眮穥湤潭⤢㭳㨹㨢*e牲潲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絽猺㜺≬楣敮獥∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨱㩻椺〻伺㌸㨢灨灄潣畭敮瑯牜䑥獣物灴潲屔慧䑥獣物灴潲∺㌺筳㨷㨢*n慭攢㭳㨷㨢汩捥湳攢㭳㨱㐺∀⨀摥獣物灴楯渢㭳㨶ㄺ≨瑴瀺⼯晲慭敷潲欮穥湤潭⽬楣敮獥⽮敷ⵢ獤††⁎敷⁂卄⁌楣敮獥∻猺㤺∀⨀敲牯牳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絽絳㨷㨢癥牳楯渢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺ㄺ筩㨰㭏㨴㘺≰桰䑯捵浥湴潲屄敳捲楰瑯牜呡杜噥牳楯湄敳捲楰瑯爢㨴㩻猺㨢*v敲獩潮∻猺〺∢㭳㨷㨢*n慭攢㭳㨷㨢癥牳楯渢㭳㨱㐺∀⨀摥獣物灴楯渢㭳㨴㨢⑉搤∻猺㤺∀⨀敲牯牳∻伺㌵㨢灨灄潣畭敮瑯牜䑥獣物灴潲屃潬汥捴楯渢㨱㩻猺㠺∀⨀楴敭猢㭡㨰㩻絽絽絳㨱〺≳畢灡捫慧攢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽絳㨹㨢*e牲潲猢㭏㨳㔺≰桰䑯捵浥湴潲屄敳捲楰瑯牜䍯汬散瑩潮∺ㄺ筳㨸㨢*i瑥浳∻愺〺筽絽