";
- }
- $tree_html .= "
";
- }
- $tree_html .= "";
- if( $title ){
- echo "==-- {$title} ==".PHP_EOL;
- }
- if( is_array($val) || is_object($val) ){
- print_r($val);
- }else{
- echo $val;
- }
- if( $title ){
- echo PHP_EOL."== {$title} --==".PHP_EOL;
- }
- echo "";
-}
-
-function alert($mesg, $url=""){
- echo "";
- if( $url ){
- move_page($url);
- exit;
- }
-}
-
-function move_page($url, $mesg=""){
- if( $mesg ){
- alert($mesg);
- }
- echo "";
- exit;
-}
-
-function hback($mesg=""){
- if( $mesg ){
- alert($mesg);
- }
- echo "";
- exit;
-}
-
-function is_mobile(){
- if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i',$_SERVER['HTTP_USER_AGENT'])||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($_SERVER['HTTP_USER_AGENT'],0,4))){
- return true;
- }
- return false;
-}
-
-function strpos_arr($haystack, $needle) {
- if(!is_array($needle)) $needle = array($needle);
- foreach($needle as $what) {
- if(($pos = strpos($haystack, $what))!==false) return $pos;
- }
- return false;
-}
-
-function referer_check(){//이전페이지 체크. 보안용
- $refer = preg_replace("/https?:\/\//","",$_SERVER['HTTP_REFERER']);
- $refer = substr($refer,0,strpos($refer,"/"));
- return preg_match( "/".preg_quote($_SERVER['HTTP_HOST'],"/")."/i", $refer ) === 0;
-}
-
-function getDT_datetime( $dt, $format="Y-m-d H:i:s" ){
- if( is_object($dt) && get_class($dt) == "DateTime" ){
- return $dt->format($format);
- }else if( $dt ){
- return date($format,strtotime($dt));
- }
- return "";
-}
-function getDT_date( $dt, $format="Y-m-d" ){
- if( is_object($dt) && get_class($dt) == "DateTime" ){
- return $dt->format($format);
- }else if( $dt ){
- return date($format,strtotime($dt));
- }
- return "";
-}
-function strtodate( $str, $format="Y-m-d" ){
- if( $str ){
- return date($format, strtotime($str));
- }
- return "";
-}
-function ndate( $seconds, $format="Y-m-d" ){
- if( (int)$seconds ){
- return date($format, $seconds);
- }
- return "";
-}
-
-function hidden_input($key, $val){
- return ''.PHP_EOL;
-}
-
-function csrf_input($mode){
- $name = '_CSRF_check_'.$mode;
- $sess = uniqid($mode);
- if( !isset($_SESSION[$name]) || count($_SESSION[$name]) > 1000 ){
- $_SESSION[$name] = Array();
- }
- $_SESSION[$name][] = $sess;
- return ''.PHP_EOL;
-}
-
-function csrf_check($mode, $del=false){ //찾을수 없으면 true 리턴
- $name = '_CSRF_check_'.$mode;
- if( is_array($_SESSION[$name] ) ){
- $key = array_search($_REQUEST[$name],$_SESSION[$name]);
- if( hasval($key) ){
- if( $del ){
- csrf_remove($mode);
- }
- return false;
- }
- }
- return true;
-}
-
-function csrf_remove($mode){
- $name = '_CSRF_check_'.$mode;
- $key = array_search($_REQUEST[$name],$_SESSION[$name]);
- if( hasval($key) ){
- unset($_SESSION[$name][$key]);
- }
-}
-
-function image_thumb($src_img, $dest_img, $dest_w, $dest_h, $stretch="N", $force="N", $dest_ext=""){//이미지 변환 - 아이구 지겨워 재미없음..
- $src_image = @getimagesize($src_img);
- $src_w = $src_image[0];
- $src_h = $src_image[1];
- $src_ext = $src_image[2];
-
- $img_size = image_size($src_w, $src_h, $dest_w, $dest_h, $stretch, $force);
- $dest_w = $img_size['width'];
- $dest_h = $img_size['height'];
-
- switch($src_ext){
- case 1 :
- $src_image_stream = @imagecreatefromgif($src_img);
- break;
- case 2 :
- $src_image_stream = @imagecreatefromjpeg($src_img);
- break;
- case 3 :
- $src_image_stream = @imagecreatefrompng($src_img);
- break;
- case 15 :
- $src_image_stream = @imagecreatefromwbmp($src_img);
- break;
- default :
- echo "";
- return false;
- }
-
-// $dest_image_stream = imagecreate($dest_w, $dest_h); // GD 2.0 이상 지원시 이것을 사용
- $dest_image_stream = @imagecreatetruecolor($dest_w, $dest_h);
-// imagecolorallocate($dest_image_stream, 255, 255, 255);
-// @imagecopyresized($dest_image_stream, $src_image_stream, 0, 0, 0, 0, $dest_w, $dest_h, $src_w, $src_h);
- imagecopyresampled($dest_image_stream, $src_image_stream, 0, 0, 0, 0, $dest_w, $dest_h, $src_w, $src_h); //<-php4.0이후
-
- if( $dest_ext ){
- switch($dest_ext) {
- case 1 :
- @imagegif($dest_image_stream,$dest_img);
- break;
- case 2 :
- @imagejpeg($dest_image_stream,$dest_img,100);
- break;
- case 3 :
- @imagepng($dest_image_stream,$dest_img);
- break;
- case 15 :
- @imagewbmp($dest_image_stream,$dest_img);
- break;
- default :
- echo "";
- return false;
- }
- }else{
- switch($src_ext){
- case 1 :
- @imagegif($dest_image_stream,$dest_img);
- break;
- case 2 :
- @imagejpeg($dest_image_stream,$dest_img,100);
- break;
- case 3 :
- @imagepng($dest_image_stream,$dest_img);
- break;
- case 15 :
- @imagewbmp($dest_image_stream,$dest_img);
- break;
- default :
- echo "";
- return false;
- }
- }
-}
-
-function image_cthumb($src_img, $dest_img, $dest_w, $dest_h){//이미지 크기 맞춤 이외삭제
- $src_image = @getimagesize($src_img);
- $src_w = $src_image[0];
- $src_h = $src_image[1];
- $src_ext = $src_image[2];
-
- if( $src_w < $dest_w || $src_h < $dest_h ){
- return image_thumb($src_img, $dest_img, $dest_w, $dest_h);
- }
-
- if( ($src_w - $dest_w) > ($src_h - $dest_h) ){
- $last_w = $dest_w * $src_h/$dest_h;
- $last_h = $src_h;
- }else{
- $last_w = $src_w;
- $last_h = $dest_h * $src_w/$dest_w;
- }
-
- switch($src_ext){
- case 1 :
- $src_image_stream = @imagecreatefromgif($src_img);
- break;
- case 2 :
- $src_image_stream = @imagecreatefromjpeg($src_img);
- break;
- case 3 :
- $src_image_stream = @imagecreatefrompng($src_img);
- break;
- case 15 :
- $src_image_stream = @imagecreatefromwbmp($src_img);
- break;
- default :
- echo "";
- return false;
- }
-
- $dest_image_stream = @imagecreatetruecolor($dest_w, $dest_h);
- imagecopyresampled($dest_image_stream, $src_image_stream, 0, 0, ($src_w-$last_w)/2, ($src_h-$last_h)/2, $dest_w, $dest_h, $last_w, $last_h);
- @imagejpeg($dest_image_stream,$dest_img,100);
-}
-
-function image_size($s_wd, $s_ht, $d_wd, $d_ht, $stretch = "N", $force = "N"){//stretch 늘이기, force 대상크기로 강제맞춤(이미지변형)
- if( !$s_wd or !$s_ht or !$d_wd and !$d_ht ){
- echo "Error : image_size function parameter error";
- }
-
- if( $d_wd and !$d_ht ){
- $d_ht = $s_ht * $d_wd / $s_wd;
- }else if( !$d_wd and $d_ht ){
- $d_wd = $s_wd * $d_ht / $s_ht;
- }
-
- if( $force == "Y" ){
- if( $stretch == "Y" ){
- $size['width'] = $d_wd;
- $size['height'] = $d_ht;
- }else{
- if( $s_wd < $d_wd ){
- $size['width'] = $s_wd;
- }else{
- $size['width'] = $d_wd;
- }
-
- if( $s_ht < $d_ht ){
- $size['height'] = $s_ht;
- }else{
- $size['height'] = $d_ht;
- }
- }
- }else{
- if( ($s_wd/$d_wd) > ($s_ht/$d_ht) ){
- if( $stretch == "N" and $s_wd < $d_wd ){
- $d_wd = $s_wd;
- }
-
- $size['width'] = $d_wd;
- $size['height'] = $s_ht * $d_wd / $s_wd;
- }else{
- if( $stretch == "N" and $s_ht < $d_ht ){
- $d_ht = $s_ht;
- }
-
- $size['width'] = $s_wd * $d_ht / $s_ht;
- $size['height'] = $d_ht;
- }
- }
-
- return $size;
-}
-
-function file_remove($filepath, $unremove=""){
- $glob = glob($filepath);
- $rst = true;
- foreach( $glob as $filename ) {
- if( !$unremove || $filename != $unremove ){
- $rst = $rst && @unlink($filename);
- }
- }
- return $rst;
-}
-
-function oldfile_remove($filepath, $day=1, $unremove=""){
- $glob = glob($filepath);
- $rmday = $day * 86400;
- $rst = true;
- foreach( $glob as $filename ) {
- if( fileatime($filename) < time()-$rmday && ( !$unremove || $filename != $unremove && substr(strrchr($filename,'/'),1) != $unremove ) ){
- $rst = $rst && @unlink($filename);
- }
- }
- return $rst;
-}
-
-function get_ip(){
- switch(true){
- case (!empty($_SERVER['HTTP_X_REAL_IP'])) :
- $real_ip = $_SERVER['HTTP_X_REAL_IP']; break;
- case (!empty($_SERVER['HTTP_CLIENT_IP'])) :
- $real_ip = $_SERVER['HTTP_CLIENT_IP']; break;
- case (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) :
- $real_ip = $_SERVER['HTTP_X_FORWARDED_FOR']; break;
- default :
- $real_ip = $_SERVER['REMOTE_ADDR'];
- }
- $real_ip = explode(":",$real_ip);
- return $real_ip[0];
-}
-
-function getRefRow($fields=array()){ //HTTP_REFERER 를 배열로 변경, $fields가 존재하면 그부분 제외
- $query= explode("?",$_SERVER['HTTP_REFERER']);
- $query= explode("&",$query[1]);
- $qrow = Array();
- if( count($query) > 0 ){
- foreach( $query as $val ){
- $temp = explode("=",$val);
- if( !in_array($temp[0], $fields) ){
- $qrow[$temp[0]] = $temp[1];
- }
- }
- }
- return $qrow;
-}
-
-function getQuery($qrow, $addrow=array()){
- if( count($addrow) > 0 ){
- $qrow = array_merge($qrow, $addrow);
- }
- $query = array();
- if( count($qrow) > 0 ){
- foreach( $qrow as $key => $val ){
- if( hasval($val) ){
- $query[] = "{$key}={$val}";
- }
- }
- }
- return implode("&", $query);
-}
-
-function base64url_encode($data){
- $base64 = base64_encode($data);
-
- if ($base64 === false) {
- return false;
- }
- $url = strtr($base64, '+/', '-_');
- return rtrim($url, '=');
-}
-
-function base64url_decode($data, $strict = false){
- $b64 = strtr($data, '-_', '+/');
- return base64_decode($b64, $strict);
-}
-
-function cval($key){
- if( isset($$key) ){
- return $$key;
- }
- return "";
-}
-
-function crowval($row, $key, $dval=""){
- if( isset($row[$key]) ){
- return $row[$key];
- }
- return $dval;
-}
-
-function hasval( $val ){
- if( isset($val) && ($val || $val === 0 || $val === "0") ){
- return true;
- }
- return false;
-}
-
-function array_merge_static( $row1, $row2 ){
- foreach( (array)$row2 as $k => $v ){
- $row1[$k] = $v;
- }
- return $row1;
-}
-
-/** getSelectOptions
- * @param $row : 선택값
- * @param string $emptv : 빈값추가
- * @param array $exck : 선택값중 제외(기준키)
- * @param array $excv : 선택값중 제외(기준값)
- * @return string
- */
-function getSelectOptions( $row, $emptv="", $defval="", $exck=array(), $excv=array() ){
- $reopt = array();
- if( $emptv ){
- $reopt[] = "";
- }
- foreach( (array)$row as $key => $val ){
- if( in_array($key, (array)$exck) ) continue;
- if( in_array($val, (array)$excv) ) continue;
- $selected = false;
- if( $defval ){
- if( is_array($defval) && in_array( $key, $defval ) ){
- $selected = true;
- }else if( $key == $defval ){
- $selected = true;
- }
- }
- $reopt[] = "";
- }
- return implode(PHP_EOL,$reopt);
-}
-function getSelectOptionsExp( $row, $emptv="", $defval="", $exck=array(), $excv=array() ){
- $reopt = array();
- if( $emptv ){
- $reopt[] = "";
- }
- foreach( (array)$row as $key => $val ){
- if( in_array($key, (array)$exck) ) continue;
- if( in_array($val[0], (array)$excv) ) continue;
- $selected = false;
- if( $defval ){
- if( is_array($defval) && in_array( $key, $defval ) ){
- $selected = true;
- }else if( $key == $defval ){
- $selected = true;
- }
- }
- $reopt[] = "";
- }
- return implode(PHP_EOL,$reopt);
-}
-
-/** getCheckboxes
- * @param $name : name Attr
- * @param $vrow : 선택값
- * @param string $defval : default 값
- * @param string $cls1 : 클래스1 label 용
- * @param string $cls2 : 클래스2 input 용
- * @return string
- */
-function getCheckboxes( $name, $vrow, $defval="", $cls1="", $cls2="" ){
- $reopt = array();
- $checked = false;
- foreach( (array)$vrow as $key => $val ){
- if( $defval ){
- if( is_array($defval) && in_array( $key, $defval ) ){
- $checked = true;
- }else if( $key == $defval ){
- $checked = true;
- }
- }
- //$reopt[] = "";
- $reopt[] = "";
- }
- return implode(PHP_EOL,$reopt);
-}
-
-
-/** getRadios
- * @param $name : name Attr
- * @param $vrow : 선택값
- * @param string $defval : default 값
- * @param string $cls1 : 클래스1 label 용
- * @param string $cls2 : 클래스2 input 용
- * @return string
- */
-function getRadios( $name, $vrow, $defval='', $cls1='', $cls2='' ){
- $reopt = array();
- foreach( (array)$vrow as $key => $val ){
- if( is_object($defval) || is_array($defval) ){
- $defval = json_encode($defval);
- }
- //$reopt[] = "";
- $reopt[] = "";
- }
- return implode(PHP_EOL,$reopt);
-}
-
-function chkValiMail( $email ){
- if( !$email || preg_match("/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$/", $email) ){
- return true;
- }
- return false;
-}
-
-function chkValiDomain( $domain ){
- if( !$domain || preg_match("/(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z0-9][a-z0-9-]{0,61}[a-z0-9]/", $domain) ){
- return true;
- }
- return false;
-}
-
-function chkValiUrl( $url ){
- if( !$url || preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $url) ){
- return true;
- }
- return false;
-}
-
-function chkValiPhone( $phone ){
- if( !$phone || preg_match("/^\d{2,3}-\d{3,4}-\d{4}$/", $phone) ){
- return true;
- }
- return false;
-}
-
-function chkValiDate( $date ){
- if( !$date || preg_match("/^(19|20)\d\d([-])(0[1-9]|1[012])\2(0[1-9]|[12][0-9]|3[01])$/", $date) ){
- return true;
- }
- return false;
-}
-
-function chkValiAaSpNum( $str ){
- if( !$str || preg_match("/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]$/im", $str) ){
- return true;
- }
- return false;
-}
-
-function chkValiAaSp( $str ){
- if( !$str || preg_match("/^(?=.*[a-z])(?=.*[A-Z])(?=.*[@$!%*?&])[A-Za-z@$!%*?&]$/im", $str) ){
- return true;
- }
- return false;
-}
-
-function chkValiAaNum( $str ){
- if( !$str || preg_match("/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[A-Za-z\d]$/im", $str) ){
- return true;
- }
- return false;
-}
-
-function chkValiSpNum( $str ){
- if( !$str || preg_match("/^(?=.*[a-z])(?=.*\d)(?=.*[@$!%*?&])[a-z\d@$!%*?&]$/im", $str) ){
- return true;
- }
- return false;
-}
-
-function addzero($num, $dan){
- return str_pad($num,$dan,'0',STR_PAD_LEFT);
-}
-
-function _notAuth( $auth, &$rval="", $cate_id="", $msg="" ){ //단축형... 귀찮아서
- global $retval;
- if( !$rval ) $rval = &$retval['mesg'];
- if( !$GLOBALS['_Auth_']['menuObj']->hasMenuAuth( $auth, $cate_id ) ){
- $rval = $msg?:$GLOBALS['_Auth_']['deny_mesg'];
- return true;
- }
- return false;
-}
-
-function file_size($bytes, $precision=2){
- $unit = ["B", "KB", "MB", "GB"];
- $exp = floor(log($bytes, 1024)) ?: 0;
- return round($bytes / (pow(1024, $exp)), $precision).$unit[$exp];
-}
-
-function get_encode_base64_str($en_word, $charset="UTF-8"){
- return "=?" . strtolower($charset) . "?B?" . base64_encode($en_word) . "?=";
-}
-
-
-/*
- * javascript : btoa(encodeURIComponent(JSON.stringify(data))) 의 역, 배열처리
- * */
-function decode_Post($pval){
- return json_decode(urldecode(base64_decode($pval)),true);
-}
-
-function curl_request( $access_url, $query="", $method="GET", $headers="", $options="", $cookie="", $retm="body" ){
- if( is_array($query) ){
- $strquery = http_build_query($query);
- }else{
- $strquery = $query;
- }
- $ch = curl_init();
- switch( strtoupper($method) ){
- case "POST" :
- curl_setopt( $ch, CURLOPT_POST, 1);
- curl_setopt( $ch, CURLOPT_POSTFIELDS, $strquery);
- break;
-
- case "GET" :
- if( $strquery ){
- $access_url = $access_url."?".$strquery;
- }
- break;
-
- case "PUT" :
- curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, "PUT");
- curl_setopt( $ch, CURLOPT_POSTFIELDS, $strquery);
- break;
-
- case "DELETE" :
- curl_setopt( $ch, CURLOPT_CUSTOMREQUEST, "DELETE");
- curl_setopt( $ch, CURLOPT_POSTFIELDS, $strquery);
- break;
-
- case "RAW" :
- if( is_array($query) ){
- $strquery = json_encode( $query );
- };
- curl_setopt( $ch, CURLOPT_POST, 1);
- curl_setopt( $ch, CURLOPT_POSTFIELDS, $strquery);
-
- if( $headers ){
- if( !is_array($headers) ){
- $headers = Array($headers);
- }
- }else{
- $headers = array();
- }
- $headers[] = 'Content-Type: application/json';
- break;
- }
-
- if( $headers ) { //(e.g., array("fruit: apple", "colour: red")
- curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
- }
-
- if( $options ) { //(e.g., array("fruit"=>"apple", "colour"=>"red")
- curl_setopt_array($ch, $options);
- }
-
- curl_setopt( $ch, CURLOPT_URL, $access_url);
- curl_setopt( $ch, CURLOPT_USERAGENT, "Kuls Api" );
- curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);
- curl_setopt( $ch, CURLOPT_HEADER, 1);
- curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1);
-
- if( $cookie ){ //(e.g., "fruit=apple; colour=red")
- curl_setopt( $ch, CURLOPT_COOKIE, $cookie);
- }
-
- $curl_result = curl_exec( $ch );
- curl_close( $ch );
-
- list( $header, $response ) = explode("\r\n\r\n", $curl_result, 2);
- $header = get_http_header_as_array($header);
-
- switch( $retm ){
- case "all":
- return Array(
- "header" => $header,
- "response" => $response,
- );
- case "header":
- return $header;
- case "body":
- default:
- return $response;
- }
-}
-
-function get_http_header_as_array($rawheader){
- $header_array = array();
- $header_rows = explode("\n",$rawheader);
- for($i=0;$i{$fname}".PHP_EOL.$sql.PHP_EOL.print_r($params?:Array(),1).PHP_EOL.PHP_EOL.print_r(sqlsrv_errors(), true)."";
- }else{
- $result = "NO_SQL_ERROR";
- }
- $rst = false;
- }
- if( $this->query_record ){
- $this->putQueryLog( $sql, $params, $result );
- }
- return $rst;
- }
-
- public function query($sql, $params="", $options="", $print=""){
- $stmt = $this->qry($sql, $params?:Array(), $options?:Array(), $print);
- if( !$stmt ) return false;
-
- $rows = Array();
- while( $row = $this->fetch_array($stmt) ){
- $rows[] = $row;
- }
- return $rows;
- }
-
- public function call( $procedure, $params=array() ){
- $anrow = $this->anqry($params);
- $sql = "{CALL {$procedure} (".implode(",",$anrow['val']).")}";
- return $this->qry($sql, $params);
- }
-
- public function call_output( $procedure, $params=array() ){
- $anrow = $this->anqry($params);
- $sql = "{CALL {$procedure} ".implode(",",$anrow['val']).")}";
- return $this->cqry($sql, $params,"","",2);
- }
-
- public function call_next( $stmt ){
- return @sqlsrv_next_result($stmt);
- }
-
- public function call_all( $procedure, $params=array() ){
- $rst = $this->call( $procedure, $params );
- if( $rst ){
- $rows = Array();
- while( $row = $this->fetch_array($rst) ){
- $rows[] = $row;
- }
- return $rows;
- }
- return $rst;
- }
-
- public function exec( $procedure, $params=array() ){
- $anrow = $this->anqry($params);
- $sql = "EXEC {$procedure} ".implode(",",$anrow['val'])."";
- return $this->qry($sql, $params);
- }
-
- public function exec_output( $procedure, $params=array() ){ //$params => 숫자키 배열
- $anrow = $this->anqry($params);
- $sql = "EXEC {$procedure} ".implode(",",$anrow['val'])."";
- return $this->cqry($sql, $params,"","",2);
- }
-
- public function exec_output_merge( $procedure, $params=array() ){ //$params => 문자 키 배열. output요소가 array(array("값",SQLSRV_PARAM_OUT)) 가 되어야 한다.
- $oparams = Array();
- foreach( $params as $val ){
- $oparams[] = $val;
- }
-
- $anrow = $this->anqry($oparams);
- $sql = "EXEC {$procedure} ".implode(",",$anrow['val'])."";
- return $this->cqry($sql, $oparams,"","",2);
- }
-
- public function exec_next( $stmt ){
- return @sqlsrv_next_result($stmt);
- }
-
- public function exec_all( $procedure, $params=array() ){
- $rst = $this->exec( $procedure, $params );
- if( $rst ){
- $rows = Array();
- while( $row = $this->fetch_array($rst) ){
- $rows[] = $row;
- }
- return $rows;
- }
- return $rst;
- }
-
- public function queryFirstField($sql, $params="", $options="", $print=""){
- $stmt = $this->qry($sql, $params?:Array(), $options?:Array(), $print);
-
- if( !$stmt ) return false;
-
- return $this->result($stmt,0,0);
- }
-
- public function queryFirstRow($sql, $params="", $options="", $print=""){
- $stmt = $this->qry($sql, $params?:Array(), $options?:Array(), $print);
-
- if( !$stmt ) return false;
-
- return $this->fetch_array($stmt);
- }
-
- public function pqry($sql, $params="", $options=""){
- return $this->qry($sql, $params?:Array(), $options?:Array(), 1);
- }
-
- public function pquery($sql, $params="", $options=""){
- return $this->query($sql, $params?:Array(), $options?:Array(), 1);
- }
-
- public function fetch_row($stmt){
- if( $stmt ){
- return @sqlsrv_fetch_array($stmt, 1);
- }
- return "sqlsrv_fetch_array Error #1";
- }
-
- public function fetch_array($stmt){
- if( $stmt ){
- return @sqlsrv_fetch_array($stmt, 2);
- }
- echo "sqlsrv_fetch_array Error #2";
- }
-
- public function fetch_object($stmt){
- if( $stmt ){
- return @sqlsrv_fetch_object($stmt, 2);
- }
- echo "sqlsrv_fetch_object Error #2";
- }
-
- public function num_rows($stmt){
- if( $stmt ){
- return @sqlsrv_num_rows($stmt);
- }
- echo "sqlsrv_num_rows Error";
- }
-
- public function select_count($tb, $where="", $whererow="", $print=""){
- $where = $where?:"1=1";
- $sql = "select count(*) from {$tb} where {$where}";
- return $this->queryFirstField($sql, $whererow?:array(), $print);
- }
-
- public function insert($tb, $row, $print=""){
- $anrow = $this->anqry($row);
- $sql = "insert into {$tb} (".implode(",",$anrow['fld']).") values (".implode(",",$anrow['val']).")";
- $rst = $this->qry($sql, $anrow['params'], "", $print);
- return (bool)$rst;
- }
-
- public function update($tb, $row, $where="", $whererow="", $print=""){
- $where = $where?:"1=1";
- $anrow = $this->anqry($row);
- $sql = "update {$tb} set ";
-
- $setrow = array();
- foreach( (array)$anrow['fld'] as $k => $v ){
- $setrow[] = " {$v} = {$anrow['val'][$k]} ";
- }
- $sql.= implode(",",$setrow)." where {$where}";
- foreach( (array)$whererow as $k => $v ){
- $anrow['params'][] = $v;
- }
- $rst = $this->qry($sql, $anrow['params'], "", $print);
- return (bool)$rst;
- }
-
- public function insertupdate($tb, $ins_row, $upt_row, $where="", $whererow="", $print=""){
- $where = $where?:"1=1";
- $ins_anrow = $this->anqry($ins_row);
- $upt_anrow = $this->anqry($upt_row);
- $setrow = array();
- foreach( (array)$upt_anrow['fld'] as $k => $v ){
- $setrow[] = " {$v} = {$upt_anrow['val'][$k]} ";
- }
-
- $sql = "merge into {$tb} as A using (select 1 as dual) as B on ({$where}) ";
- $sql.= "when matched then ";
- $sql.= "update set ".implode(",",$setrow)." ";
- $sql.= "when not matched then ";
- $sql.= "insert (".implode(",",$ins_anrow['fld']).") values (".implode(",",$ins_anrow['val']).");";
-
- $params = array_merge($whererow, $upt_anrow['params'], $ins_anrow['params']);
-
- $rst = $this->qry($sql, $params?:Array(), "", $print);
- return (bool)$rst;
- }
-
- public function delete($tb, $where, $whererow="", $print=""){
- $where = $where?:"1=1";
- $sql = "delete from {$tb} where {$where}";
- $rst = $this->qry($sql, $whererow?:Array(), "", $print);
- return (bool)$rst;
- }
-
- public function insertId($tb){
- if( $tb ){
- $sql = "select ident_current(?)";
- return $this->queryFirstField($sql,array($tb));
- }else{
- $sql = "select @@identity";
- return $this->queryFirstField($sql);
- }
- //@@IDENTITY 현재 세션의 테이블에서 생성된 마지막 ID 값을 반환합니다. --// 현재 세션내 모든 테이블에서 발생하는 ID값중 마지막
- //SCOPE_IDENTITY() 현재 세션의 테이블에서 생성된 마지막 ID 값을 반환합니다. --// 현재 세션내 특
- //IDENT_CURRENT() 임의 세션 및 범위에 있는 특정 테이블에 생성된 값을 반환합니다.
- }
-
- public function anqry($row){ // 필드와 값 분리 + assign value
- $fld = array();
- $val = array();
- $params = array();
- foreach( (array)$row as $k => $v ){
- $fld[] = $k;
- if( $this->chkeval($v) ){
- $val[] = $this->valeval($v);
- }else{
- $val[] = "?";
- $params[] = $v;
- }
- }
- return Array( "fld"=>$fld, "val"=>$val, "params"=>$params );
- }
-
- public function result($stmt, $rows=0, $cols=0){
- $rows = intval($rows);
- for( $a=0 ; $a<=$rows ; $a++ ){
- if( is_int($cols) ){
- $arr = $this->fetch_row($stmt);
- }else{
- $arr = $this->fetch_array($stmt);
- }
- }
- return is_array($arr)?$arr[$cols]:$arr;
- }
-
- public function mkstr( $sql, $params="" ){ //쿼리 출력
- $params = $params?:Array();
- $str = $sql;
- for( $a=0 ; $a < substr_count($sql, "?") ; $a++ ){
- $str = $this->str_freplace("?","'{$params[$a]}'",$str);
- }
- return $str;
- }
-
- public function str_freplace( $needle, $replace, $str ){
- $pos = strpos($str, $needle);
- if( $pos !== false ){
- $nstr = substr_replace($str, $replace, $pos, strlen($needle));
- }
- return $nstr;
- }
-
- public function limit($start, $length){
- if( $length > 0 ){
- return " offset {$start} rows fetch next {$length} rows only ";
- }
- return '';
- }
-
- public function addLimit($sql, $ordby, $start, $length){
- $ordby = $ordby?:1;
- $start = $start?:0;
- $length = $length?:999999999998;
-
- if( $this->dboption["database_version"] && $this->dboption["database_version"] <= "2008" ){
- $start = $start+1;
- $length = $start+$length-1;
- $sql = "select * from ( select *, row_number() over(order by {$ordby}) as ROWNUM from ({$sql}) as tblsub ) as tblmain where ROWNUM between {$start} and {$length}";
- }else {
- $sql = "{$sql} order by {$ordby} offset {$start} rows fetch next {$length} rows only ";
- }
-
- return $sql;
- }
-
- public function sqleval($str){
- return chr(27).$str;
- }
-
- public function chkeval($str){
- if( !is_array($str) && preg_match("/^".chr(27)."/ims",$str) ){
- return true;
- }
- return false;
- }
-
- public function valeval($str,$val=""){
- return preg_replace("/^".chr(27)."/ims",$val,$str);
- }
-
- public function tableExists( $table ){
- if( !$table ) return false;
-
- $tbl = explode(".",$table);
- if( !$tbl[1] ){
- $database = "dbo";
- $table = $tbl[0];
- }else{
- $database = $tbl[0];
- $table = $tbl[1];
- }
- $cnt = $this->queryFirstField("select 1 from Information_schema.tables where TABLE_TYPE = ? and TABLE_NAME = ?", array(
- "BASE TABLE",
- $table
- ));
- if( $cnt ){
- return true;
- }else{
- if( !( $fs = fopen( TB_schema_file, "r") ) ) return false;
-
- while( $rw = fgets($fs, 255) ){
- $tbname = defined("TB_HEAD")?preg_replace("/^".TB_HEAD."/","",$table):$table;
-
- if( chop($rw) == "[{$tbname}]" ) break;
- }
-
- $query = "create table {$database}.{$table} ";
- while( $rw = fgets($fs, 255) ){
- if( chop($rw) != "-end-" ){
- $rw = preg_replace("/ comment[ \=].*\'.*\'/ims","",$rw);
- $rw = preg_replace("/CONSTRAINT pk\_/ims","CONSTRAINT pk_".TB_HEAD,$rw);
- $rw = preg_replace("/CONSTRAINT fk\_/ims","CONSTRAINT fk_".TB_HEAD,$rw);
- $rw = preg_replace("/CONSTRAINT uk\_/ims","CONSTRAINT uk_".TB_HEAD,$rw);
- $rw = preg_replace("/CONSTRAINT ik\_/ims","CONSTRAINT ik_".TB_HEAD,$rw);
- $query .= $rw;
- }else{
- break;
- }
- }
- fclose($fs);
- $rst = $this->qry($query);
- if( $rst ){
- include TB_data_file;
- if( isset($table_base_data[$tbname]) ){
- foreach( $table_base_data[$tbname] as $val ){
- $this->insert($table, $val);
- }
- }
- }
- return $rst;
- }
- }
-
- public function putQueryLog( $save_sql, $save_params, $result ){
- global $__dbconn__;
- if( !defined("TB_query_log") ) return false;
- if( preg_match("/Information_schema.tables/ims", $save_sql) ) return false;
-
- $this->delQueryLog(1);
-
- $qryrow = Array(
- "query_date" => $this->sqleval("CURRENT_TIMESTAMP"),
- "query_result" => $result,
- "host_name" => $this->dboption["database_host"],
- "db_name" => $this->dboption["database_name"],
- "query_string" => $save_sql,
- "query_params" => @print_r($save_params, true),
- "visit_sess" => $_SESSION['visit_sess'],
- "member_id" => $GLOBALS['_Umem']['member_id'],
- );
-
- $anrow = $this->anqry($qryrow);
- $sql = "insert into ".TB_query_log." (".implode(",",$anrow['fld']).") values (".implode(",",$anrow['val']).")";
- return @sqlsrv_query($__dbconn__, $sql, $anrow['params']);
- }
-
- public function delQueryLog( $month = 6 ){
- global $__dbconn__;
-
- if( rand(1,100) === 50 ){ // 1% 확률로 삭제
- $month= -1*abs($month);
- $sql = "delete from ".TB_query_log." where query_date < dateadd(month, {$month}, getdate()) ";
- return @sqlsrv_query($__dbconn__, $sql);
- }
- return false;
- }
-
- public function callTransaction(){
- return sqlsrv_begin_transaction( $this->dbconn );
- }
-
- public function callCommit(){
- return sqlsrv_commit( $this->dbconn );
- }
-
- public function callRollBack(){
- return sqlsrv_rollback( $this->dbconn );
- }
-
- public function setPrint(){
- $this->query_print = true;
- }
-
- public function resetPrint(){
- $this->query_print = false;
- }
-
- public function setRecord(){
- $this->query_record = true;
- }
-
- public function resetRecord(){
- $this->query_record = false;
- }
-}
-
-class BaseDB {
- public $DB;
- public $lcrypt;
- public function __construct($db_option=""){
- $this->DB = new DB_Mssql($db_option);
- $this->lcrypt = new lcrypt();
- }
-}
\ No newline at end of file
diff --git a/lib/db/mssql_lib.php b/lib/db/mssql_lib.php
deleted file mode 100644
index ebcdeba..0000000
--- a/lib/db/mssql_lib.php
+++ /dev/null
@@ -1,31 +0,0 @@
- $db_option['database_name'],
- "Uid" => $db_option['database_user'],
- "PWD" => $db_option['database_pass'],
- "CharacterSet" => $db_option['database_encode'],
- );
- if( $db_option['database_old'] ){
- $option['Encrypt'] = "yes";
- $option['TrustServerCertificate'] = "yes";
- }
- $conn = sqlsrv_connect( $addr, $option);
- if( $conn ){
- return $conn;
- }else{
- die('Could not connect: ' . print_r(sqlsrv_errors(), true));
- }
-}
-
-function sqlsrv_qry($conn, $tsql, $params=Array(), $options=Array()){
- $stmt = @sqlsrv_query($conn, $tsql, $params, $options);
- if( $stmt ) return $stmt;
- else {
- echo "".print_r(sqlsrv_errors(), true).""; - return false; - } -} - -//에러 처리용으로 하나만 만들고 기본 예약함수만 쓴다. \ No newline at end of file diff --git a/lib/db/mysql.class.php b/lib/db/mysql.class.php deleted file mode 100644 index a814366..0000000 --- a/lib/db/mysql.class.php +++ /dev/null @@ -1 +0,0 @@ - ".print_r($_REQUEST,true)); fputs($fp, PHP_EOL); - - } -} - -if( $_REQUEST['member_token'] ){ - $tkObj = new Token(); - $token_info = $tkObj->getFromToken($_REQUEST['member_token']); - $token_stauts = $tkObj->statusToken($token_info); - //fputs($fp, "STATUS=> ".$token_stauts); fputs($fp, PHP_EOL); - switch( $token_stauts ){ - case "E" : //토큰 연장 - $new_token = $tkObj->putToken($token_info['member_id'], $token_info['auth']); - //fputs($fp, "NEW TOKEN=> ".$new_token); fputs($fp, PHP_EOL); - case "Y" : //토큰 유효 - $_SESSION['auth_mem_id'] = $token_info['member_id']; - //fputs($fp, "SESSION=> ".$_SESSION['auth_mem_id']); fputs($fp, PHP_EOL); - break; - - // 토큰 연장처리 되어 새로운 토큰($new_token) 이 발행되었는데도 갱신하지 않고, - // 예전 토큰 그대로 사용하면 중복 인증요청으로 무효토큰 처리되니 - // 새로운 토큰이 발행되면 다음 요청시엔 꼭 새로운 토큰으로 교체하는 과정이 필요. - // APP 에서 요청할때 응답이 필요한 요청이외의 단순 요청부분까지 응답을 필수 확인하여 $new_token 값이 있는지 점검후 교체하는 로직 필수!! - - case "F" : //토큰 비활성 - $tkObj->retireToken( $token_info['auth'] ); - case "N" : //토큰 무효 - unset($_SESSION['auth_mem_id']); - break; - } -} - -//fclose($fp); - -$GLOBALS['week_word'] = Array( - "eng" => Array( - "sun", - "mon", - "the", - "wed", - "thu", - "fri", - "sat", - ), - "kor" => Array( - "일", - "월", - "화", - "수", - "목", - "금", - "토", - ) -); -$GLOBALS['mon_word'] = Array( - "eng" => Array( - "jan", - "feb", - "mar", - "apr", - "may", - "jun", - "jul", - "aug", - "sep", - "oct", - "nov", - "dec", - ), - "kor" => Array( - "01월", - "02월", - "03월", - "04월", - "05월", - "06월", - "07월", - "08월", - "09월", - "10월", - "11월", - "12월", - ) -); - -$baseObj = new Member(); -$GLOBALS['_Umem'] = $baseObj->loginCheck($_SESSION['auth_mem_id']); - -$GLOBALS['_varsBaseCode'] = Array( //기본변수 - "line_num" => 20, //기본 라인수 - "page_num" => 5, //기본 페이지 출력수 - "id_len" => 6, //아이디 길이 - "pw_len" => 6, //비밀번호 길이 - "cate_depth" => 4, //카테고리 분류 최대 자리수. 4자리는 0001 ~ 9999 까지 레벨당 총 9999개 Child를 가지게 된다. -); - -$GLOBALS['_varsMemStatus'] = Array( //회원상태 - 1 => "활동중", - 2 => "승인대기", - 3 => "정지", -); - -$GLOBALS['_varsLoginResult'] = Array( //로그인결과 - 0 => "실패", - 1 => "성공", -); - -$GLOBALS['_varsMenuArea'] = Array( //사용 페이지구분 - "service" => "사용자/실무자 화면", - "partner" => "고객사 관리화면", - "admin" => "관리자 화면" -); - -$GLOBALS['_varsAuthArea'] = Array( //권한대상 - "G" => "그룹권한", - "M" => "개별권한", -); - -$GLOBALS['_varsAuthAdmin'] = Array( //관리자구분 - "SA" => "슈퍼관리자", - "A" => "일반관리자", -); - -$GLOBALS['_varsAuthMember'] = Array( //회원구분 - "SM" => "특별회원", - "M" => "일반회원", - "Y" => "게스트", -); - -$GLOBALS['_varsCommonStatus'] = Array( //공통 상태허용 - "0" => "정지", - "1" => "활동중", -); - -$GLOBALS['_varsBoardEditor'] = Array( //웹에디터 선택 - "tinymce" => "웹에디터", - "text" => "텍스트", -); - -/* 디폴트 값을 기준정보 관리와 매칭 시켜야 한다. */ -$GLOBALS['_varsBaseCode'] = array_merge_static($GLOBALS['_varsBaseCode'], $baseObj->getBaseCodeVars("cm_var","cm_var")); -$GLOBALS['_varsMemStatus'] = $baseObj->getBaseCodeVars("mem_status","mem_status") ?: $GLOBALS['_varsMemStatus']; -$GLOBALS['_varsLoginResult'] = $baseObj->getBaseCodeVars("login_result","login_result") ?: $GLOBALS['_varsLoginResult']; -$GLOBALS['_varsMenuArea'] = $baseObj->getBaseCodeVars("menu_area","menu_area") ?: $GLOBALS['_varsMenuArea']; -$GLOBALS['_varsAuthArea'] = $baseObj->getBaseCodeVars("auth_area","auth_area") ?: $GLOBALS['_varsAuthArea']; -$GLOBALS['_varsAuthAdmin'] = $baseObj->getBaseCodeVars("auth_admin","auth_admin") ?: $GLOBALS['_varsAuthAdmin']; -$GLOBALS['_varsAuthMember'] = $baseObj->getBaseCodeVars("auth_member","auth_member") ?: $GLOBALS['_varsAuthMember']; -$GLOBALS['_varsCommonStatus'] = $baseObj->getBaseCodeVars("common_status","common_status") ?: $GLOBALS['_varsCommonStatus']; -$GLOBALS['_varsBoardEditor'] = $baseObj->getBaseCodeVars("board_editor","board_editor") ?: $GLOBALS['_varsBoardEditor']; \ No newline at end of file diff --git a/lib/vendor/Altorouter.php b/lib/vendor/Altorouter.php deleted file mode 100644 index c751464..0000000 --- a/lib/vendor/Altorouter.php +++ /dev/null @@ -1,294 +0,0 @@ - '[0-9]++', - 'a' => '[0-9A-Za-z]++', - 'h' => '[0-9A-Fa-f]++', - '*' => '.+?', - '**' => '.++', - '' => '[^/\.]++' - ); - - /** - * Create router in one call from config. - * - * @param array $routes - * @param string $basePath - * @param array $matchTypes - */ - public function __construct( $routes = array(), $basePath = '', $matchTypes = array() ) { - $this->addRoutes($routes); - $this->setBasePath($basePath); - $this->addMatchTypes($matchTypes); - } - - /** - * Retrieves all routes. - * Useful if you want to process or display routes. - * @return array All routes. - */ - public function getRoutes() { - return $this->routes; - } - - /** - * Add multiple routes at once from array in the following format: - * - * $routes = array( - * array($method, $route, $target, $name) - * ); - * - * @param array $routes - * @return void - * @author Koen Punt - * @throws Exception - */ - public function addRoutes($routes){ - if(!is_array($routes) && !$routes instanceof Traversable) { - throw new \Exception('Routes should be an array or an instance of Traversable'); - } - foreach($routes as $route) { - call_user_func_array(array($this, 'map'), $route); - } - } - - /** - * Set the base path. - * Useful if you are running your application from a subdirectory. - */ - public function setBasePath($basePath) { - $this->basePath = $basePath; - } - - /** - * Add named match types. It uses array_merge so keys can be overwritten. - * - * @param array $matchTypes The key is the name and the value is the regex. - */ - public function addMatchTypes($matchTypes) { - $this->matchTypes = array_merge($this->matchTypes, $matchTypes); - } - - /** - * Map a route to a target - * - * @param string $method One of 5 HTTP Methods, or a pipe-separated list of multiple HTTP Methods (GET|POST|PATCH|PUT|DELETE) - * @param string $route The route regex, custom regex must start with an @. You can use multiple pre-set regex filters, like [i:id] - * @param mixed $target The target where this route should point to. Can be anything. - * @param string $name Optional name of this route. Supply if you want to reverse route this url in your application. - * @throws Exception - */ - public function map($method, $route, $target, $name = null) { - - $this->routes[] = array($method, $route, $target, $name); - - if($name) { - if(isset($this->namedRoutes[$name])) { - throw new \Exception("Can not redeclare route '{$name}'"); - } else { - $this->namedRoutes[$name] = $route; - } - - } - - return; - } - - /** - * Reversed routing - * - * Generate the URL for a named route. Replace regexes with supplied parameters - * - * @param string $routeName The name of the route. - * @param array @params Associative array of parameters to replace placeholders with. - * @return string The URL of the route with named parameters in place. - * @throws Exception - */ - public function generate($routeName, array $params = array()) { - - // Check if named route exists - if(!isset($this->namedRoutes[$routeName])) { - throw new \Exception("Route '{$routeName}' does not exist."); - } - - // Replace named parameters - $route = $this->namedRoutes[$routeName]; - - // prepend base path to route url again - $url = $this->basePath . $route; - - if (preg_match_all('`(/|\.|)\[([^:\]]*+)(?::([^:\]]*+))?\](\?|)`', $route, $matches, PREG_SET_ORDER)) { - - foreach($matches as $match) { - list($block, $pre, $type, $param, $optional) = $match; - - if ($pre) { - $block = substr($block, 1); - } - - if(isset($params[$param])) { - $url = str_replace($block, $params[$param], $url); - } elseif ($optional) { - $url = str_replace($pre . $block, '', $url); - } - } - - - } - - return $url; - } - - /** - * Match a given Request Url against stored routes - * @param string $requestUrl - * @param string $requestMethod - * @return array|boolean Array with route information on success, false on failure (no match). - */ - public function match($requestUrl = null, $requestMethod = null) { - - $params = array(); - $match = false; - - // set Request Url if it isn't passed as parameter - if($requestUrl === null) { - $requestUrl = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '/'; - } - - // strip base path from request url - $requestUrl = substr($requestUrl, strlen($this->basePath)); - - // Strip query string (?a=b) from Request Url - if (($strpos = strpos($requestUrl, '?')) !== false) { - $requestUrl = substr($requestUrl, 0, $strpos); - } - - // set Request Method if it isn't passed as a parameter - if($requestMethod === null) { - $requestMethod = isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : 'GET'; - } - - foreach($this->routes as $handler) { - list($method, $_route, $target, $name) = $handler; - - $methods = explode('|', $method); - $method_match = false; - - // Check if request method matches. If not, abandon early. (CHEAP) - foreach($methods as $method) { - if (strcasecmp($requestMethod, $method) === 0) { - $method_match = true; - break; - } - } - - // Method did not match, continue to next route. - if(!$method_match) continue; - - // Check for a wildcard (matches all) - if ($_route === '*') { - $match = true; - } elseif (isset($_route[0]) && $_route[0] === '@') { - $pattern = '`' . substr($_route, 1) . '`u'; - $match = preg_match($pattern, $requestUrl, $params); - } else { - $route = null; - $regex = false; - $j = 0; - $n = isset($_route[0]) ? $_route[0] : null; - $i = 0; - - // Find the longest non-regex substring and match it against the URI - while (true) { - if (!isset($_route[$i])) { - break; - } elseif (false === $regex) { - $c = $n; - $regex = $c === '[' || $c === '(' || $c === '.'; - if (false === $regex && false !== isset($_route[$i+1])) { - $n = $_route[$i + 1]; - $regex = $n === '?' || $n === '+' || $n === '*' || $n === '{'; - } - if (false === $regex && $c !== '/' && (!isset($requestUrl[$j]) || $c !== $requestUrl[$j])) { - continue 2; - } - $j++; - } - $route .= $_route[$i++]; - } - - $regex = $this->compileRoute($route); - $match = preg_match($regex, $requestUrl, $params); - } - - if(($match == true || $match > 0)) { - - if($params) { - foreach($params as $key => $value) { - if(is_numeric($key)) unset($params[$key]); - } - } - - return array( - 'target' => $target, - 'params' => $params, - 'name' => $name - ); - } - } - return false; - } - - /** - * Compile the regex for a given route (EXPENSIVE) - */ - private function compileRoute($route) { - if (preg_match_all('`(/|\.|)\[([^:\]]*+)(?::([^:\]]*+))?\](\?|)`', $route, $matches, PREG_SET_ORDER)) { - - $matchTypes = $this->matchTypes; - foreach($matches as $match) { - list($block, $pre, $type, $param, $optional) = $match; - - if (isset($matchTypes[$type])) { - $type = $matchTypes[$type]; - } - if ($pre === '.') { - $pre = '\.'; - } - - //Older versions of PCRE require the 'P' in (?P
- * $mail->Debugoutput = function($str, $level) {echo "debug level $level; message: $str";};
- *
- * @var string|callable
- * @see SMTP::$Debugoutput
- */
- public $Debugoutput = 'echo';
-
- /**
- * Whether to keep SMTP connection open after each message.
- * If this is set to true then to close the connection
- * requires an explicit call to smtpClose().
- * @var boolean
- */
- public $SMTPKeepAlive = false;
-
- /**
- * Whether to split multiple to addresses into multiple messages
- * or send them all in one message.
- * Only supported in `mail` and `sendmail` transports, not in SMTP.
- * @var boolean
- */
- public $SingleTo = false;
-
- /**
- * Storage for addresses when SingleTo is enabled.
- * @var array
- * @TODO This should really not be public
- */
- public $SingleToArray = array();
-
- /**
- * Whether to generate VERP addresses on send.
- * Only applicable when sending via SMTP.
- * @link https://en.wikipedia.org/wiki/Variable_envelope_return_path
- * @link http://www.postfix.org/VERP_README.html Postfix VERP info
- * @var boolean
- */
- public $do_verp = false;
-
- /**
- * Whether to allow sending messages with an empty body.
- * @var boolean
- */
- public $AllowEmpty = false;
-
- /**
- * The default line ending.
- * @note The default remains "\n". We force CRLF where we know
- * it must be used via self::CRLF.
- * @var string
- */
- public $LE = "\n";
-
- /**
- * DKIM selector.
- * @var string
- */
- public $DKIM_selector = '';
-
- /**
- * DKIM Identity.
- * Usually the email address used as the source of the email.
- * @var string
- */
- public $DKIM_identity = '';
-
- /**
- * DKIM passphrase.
- * Used if your key is encrypted.
- * @var string
- */
- public $DKIM_passphrase = '';
-
- /**
- * DKIM signing domain name.
- * @example 'example.com'
- * @var string
- */
- public $DKIM_domain = '';
-
- /**
- * DKIM private key file path.
- * @var string
- */
- public $DKIM_private = '';
-
- /**
- * DKIM private key string.
- * If set, takes precedence over `$DKIM_private`.
- * @var string
- */
- public $DKIM_private_string = '';
-
- /**
- * Callback Action function name.
- *
- * The function that handles the result of the send email action.
- * It is called out by send() for each email sent.
- *
- * Value can be any php callable: http://www.php.net/is_callable
- *
- * Parameters:
- * boolean $result result of the send action
- * array $to email addresses of the recipients
- * array $cc cc email addresses
- * array $bcc bcc email addresses
- * string $subject the subject
- * string $body the email body
- * string $from email address of sender
- * @var string
- */
- public $action_function = '';
-
- /**
- * What to put in the X-Mailer header.
- * Options: An empty string for PHPMailer default, whitespace for none, or a string to use
- * @var string
- */
- public $XMailer = 'Frody Mailer v0.1';
-
- /**
- * Which validator to use by default when validating email addresses.
- * May be a callable to inject your own validator, but there are several built-in validators.
- * @see PHPMailer::validateAddress()
- * @var string|callable
- * @static
- */
- public static $validator = 'auto';
-
- /**
- * An instance of the SMTP sender class.
- * @var SMTP
- * @access protected
- */
- protected $smtp = null;
-
- /**
- * The array of 'to' names and addresses.
- * @var array
- * @access protected
- */
- protected $to = array();
-
- /**
- * The array of 'cc' names and addresses.
- * @var array
- * @access protected
- */
- protected $cc = array();
-
- /**
- * The array of 'bcc' names and addresses.
- * @var array
- * @access protected
- */
- protected $bcc = array();
-
- /**
- * The array of reply-to names and addresses.
- * @var array
- * @access protected
- */
- protected $ReplyTo = array();
-
- /**
- * An array of all kinds of addresses.
- * Includes all of $to, $cc, $bcc
- * @var array
- * @access protected
- * @see PHPMailer::$to @see PHPMailer::$cc @see PHPMailer::$bcc
- */
- protected $all_recipients = array();
-
- /**
- * An array of names and addresses queued for validation.
- * In send(), valid and non duplicate entries are moved to $all_recipients
- * and one of $to, $cc, or $bcc.
- * This array is used only for addresses with IDN.
- * @var array
- * @access protected
- * @see PHPMailer::$to @see PHPMailer::$cc @see PHPMailer::$bcc
- * @see PHPMailer::$all_recipients
- */
- protected $RecipientsQueue = array();
-
- /**
- * An array of reply-to names and addresses queued for validation.
- * In send(), valid and non duplicate entries are moved to $ReplyTo.
- * This array is used only for addresses with IDN.
- * @var array
- * @access protected
- * @see PHPMailer::$ReplyTo
- */
- protected $ReplyToQueue = array();
-
- /**
- * The array of attachments.
- * @var array
- * @access protected
- */
- protected $attachment = array();
-
- /**
- * The array of custom headers.
- * @var array
- * @access protected
- */
- protected $CustomHeader = array();
-
- /**
- * The most recent Message-ID (including angular brackets).
- * @var string
- * @access protected
- */
- protected $lastMessageID = '';
-
- /**
- * The message's MIME type.
- * @var string
- * @access protected
- */
- protected $message_type = '';
-
- /**
- * The array of MIME boundary strings.
- * @var array
- * @access protected
- */
- protected $boundary = array();
-
- /**
- * The array of available languages.
- * @var array
- * @access protected
- */
- protected $language = array();
-
- /**
- * The number of errors encountered.
- * @var integer
- * @access protected
- */
- protected $error_count = 0;
-
- /**
- * The S/MIME certificate file path.
- * @var string
- * @access protected
- */
- protected $sign_cert_file = '';
-
- /**
- * The S/MIME key file path.
- * @var string
- * @access protected
- */
- protected $sign_key_file = '';
-
- /**
- * The optional S/MIME extra certificates ("CA Chain") file path.
- * @var string
- * @access protected
- */
- protected $sign_extracerts_file = '';
-
- /**
- * The S/MIME password for the key.
- * Used only if the key is encrypted.
- * @var string
- * @access protected
- */
- protected $sign_key_pass = '';
-
- /**
- * Whether to throw exceptions for errors.
- * @var boolean
- * @access protected
- */
- protected $exceptions = false;
-
- /**
- * Unique ID used for message ID and boundaries.
- * @var string
- * @access protected
- */
- protected $uniqueid = '';
-
- /**
- * Error severity: message only, continue processing.
- */
- const STOP_MESSAGE = 0;
-
- /**
- * Error severity: message, likely ok to continue processing.
- */
- const STOP_CONTINUE = 1;
-
- /**
- * Error severity: message, plus full stop, critical error reached.
- */
- const STOP_CRITICAL = 2;
-
- /**
- * SMTP RFC standard line ending.
- */
- const CRLF = "\r\n";
-
- /**
- * The maximum line length allowed by RFC 2822 section 2.1.1
- * @var integer
- */
- const MAX_LINE_LENGTH = 998;
-
- /**
- * Constructor.
- * @param boolean $exceptions Should we throw external exceptions?
- */
- public function __construct($exceptions = null)
- {
- if ($exceptions !== null) {
- $this->exceptions = (boolean)$exceptions;
- }
- //Pick an appropriate debug output format automatically
- $this->Debugoutput = (strpos(PHP_SAPI, 'cli') !== false ? 'echo' : 'html');
- }
-
- /**
- * Destructor.
- */
- public function __destruct()
- {
- //Close any open SMTP connection nicely
- $this->smtpClose();
- }
-
- /**
- * Call mail() in a safe_mode-aware fashion.
- * Also, unless sendmail_path points to sendmail (or something that
- * claims to be sendmail), don't pass params (not a perfect fix,
- * but it will do)
- * @param string $to To
- * @param string $subject Subject
- * @param string $body Message Body
- * @param string $header Additional Header(s)
- * @param string $params Params
- * @access private
- * @return boolean
- */
- private function mailPassthru($to, $subject, $body, $header, $params)
- {
- //Check overloading of mail function to avoid double-encoding
- if (ini_get('mbstring.func_overload') & 1) {
- $subject = $this->secureHeader($subject);
- } else {
- $subject = $this->encodeHeader($this->secureHeader($subject));
- }
-
- //Can't use additional_parameters in safe_mode, calling mail() with null params breaks
- //@link http://php.net/manual/en/function.mail.php
- if (ini_get('safe_mode') or !$this->UseSendmailOptions or is_null($params)) {
- $result = @mail($to, $subject, $body, $header);
- } else {
- $result = @mail($to, $subject, $body, $header, $params);
- }
- return $result;
- }
- /**
- * Output debugging info via user-defined method.
- * Only generates output if SMTP debug output is enabled (@see SMTP::$do_debug).
- * @see PHPMailer::$Debugoutput
- * @see PHPMailer::$SMTPDebug
- * @param string $str
- */
- protected function edebug($str)
- {
- if ($this->SMTPDebug <= 0) {
- return;
- }
- //Avoid clash with built-in function names
- if (!in_array($this->Debugoutput, array('error_log', 'html', 'echo')) and is_callable($this->Debugoutput)) {
- call_user_func($this->Debugoutput, $str, $this->SMTPDebug);
- return;
- }
- switch ($this->Debugoutput) {
- case 'error_log':
- //Don't output, just log
- error_log($str);
- break;
- case 'html':
- //Cleans up output a bit for a better looking, HTML-safe output
- echo htmlentities(
- preg_replace('/[\r\n]+/', '', $str),
- ENT_QUOTES,
- 'UTF-8'
- )
- . "
and must not be empty
- * will look for an image file in $basedir/images/a.png and convert it to inline.
- * If you don't provide a $basedir, relative paths will be left untouched (and thus probably break in email)
- * If you don't want to apply these transformations to your HTML, just set Body and AltBody directly.
- * @access public
- * @param string $message HTML message string
- * @param string $basedir Absolute path to a base directory to prepend to relative paths to images
- * @param boolean|callable $advanced Whether to use the internal HTML to text converter
- * or your own custom converter @see PHPMailer::html2text()
- * @return string $message The transformed message Body
- */
- public function msgHTML($message, $basedir = '', $advanced = false)
- {
- preg_match_all('/(src|background)=["\'](.*)["\']/Ui', $message, $images);
- if (array_key_exists(2, $images)) {
- if (strlen($basedir) > 1 && substr($basedir, -1) != '/') {
- // Ensure $basedir has a trailing /
- $basedir .= '/';
- }
- foreach ($images[2] as $imgindex => $url) {
- // Convert data URIs into embedded images
- if (preg_match('#^data:(image[^;,]*)(;base64)?,#', $url, $match)) {
- $data = substr($url, strpos($url, ','));
- if ($match[2]) {
- $data = base64_decode($data);
- } else {
- $data = rawurldecode($data);
- }
- $cid = md5($url) . '@phpmailer.0'; // RFC2392 S 2
- if ($this->addStringEmbeddedImage($data, $cid, 'embed' . $imgindex, 'base64', $match[1])) {
- $message = str_replace(
- $images[0][$imgindex],
- $images[1][$imgindex] . '="cid:' . $cid . '"',
- $message
- );
- }
- continue;
- }
- if (
- // Only process relative URLs if a basedir is provided (i.e. no absolute local paths)
- !empty($basedir)
- // Ignore URLs containing parent dir traversal (..)
- && (strpos($url, '..') === false)
- // Do not change urls that are already inline images
- && substr($url, 0, 4) !== 'cid:'
- // Do not change absolute URLs, including anonymous protocol
- && !preg_match('#^[a-z][a-z0-9+.-]*:?//#i', $url)
- ) {
- $filename = basename($url);
- $directory = dirname($url);
- if ($directory == '.') {
- $directory = '';
- }
- $cid = md5($url) . '@phpmailer.0'; // RFC2392 S 2
- if (strlen($directory) > 1 && substr($directory, -1) != '/') {
- $directory .= '/';
- }
- if ($this->addEmbeddedImage(
- $basedir . $directory . $filename,
- $cid,
- $filename,
- 'base64',
- self::_mime_types((string)self::mb_pathinfo($filename, PATHINFO_EXTENSION))
- )
- ) {
- $message = preg_replace(
- '/' . $images[1][$imgindex] . '=["\']' . preg_quote($url, '/') . '["\']/Ui',
- $images[1][$imgindex] . '="cid:' . $cid . '"',
- $message
- );
- }
- }
- }
- }
- $this->isHTML(true);
- // Convert all message body line breaks to CRLF, makes quoted-printable encoding work much better
- $this->Body = $this->normalizeBreaks($message);
- $this->AltBody = $this->normalizeBreaks($this->html2text($message, $advanced));
- if (!$this->alternativeExists()) {
- $this->AltBody = 'To view this email message, open it in a program that understands HTML!' .
- self::CRLF . self::CRLF;
- }
- return $this->Body;
- }
-
- /**
- * Convert an HTML string into plain text.
- * This is used by msgHTML().
- * Note - older versions of this function used a bundled advanced converter
- * which was been removed for license reasons in #232.
- * Example usage:
- *
- * // Use default conversion
- * $plain = $mail->html2text($html);
- * // Use your own custom converter
- * $plain = $mail->html2text($html, function($html) {
- * $converter = new MyHtml2text($html);
- * return $converter->get_text();
- * });
- *
- * @param string $html The HTML text to convert
- * @param boolean|callable $advanced Any boolean value to use the internal converter,
- * or provide your own callable for custom conversion.
- * @return string
- */
- public function html2text($html, $advanced = false)
- {
- if (is_callable($advanced)) {
- return call_user_func($advanced, $html);
- }
- return html_entity_decode(
- trim(strip_tags(preg_replace('/<(head|title|style|script)[^>]*>.*?<\/\\1>/si', '', $html))),
- ENT_QUOTES,
- $this->CharSet
- );
- }
-
- /**
- * Get the MIME type for a file extension.
- * @param string $ext File extension
- * @access public
- * @return string MIME type of file.
- * @static
- */
- public static function _mime_types($ext = '')
- {
- $mimes = array(
- 'xl' => 'application/excel',
- 'js' => 'application/javascript',
- 'hqx' => 'application/mac-binhex40',
- 'cpt' => 'application/mac-compactpro',
- 'bin' => 'application/macbinary',
- 'doc' => 'application/msword',
- 'word' => 'application/msword',
- 'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
- 'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
- 'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template',
- 'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
- 'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
- 'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide',
- 'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
- 'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
- 'xlam' => 'application/vnd.ms-excel.addin.macroEnabled.12',
- 'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12',
- 'class' => 'application/octet-stream',
- 'dll' => 'application/octet-stream',
- 'dms' => 'application/octet-stream',
- 'exe' => 'application/octet-stream',
- 'lha' => 'application/octet-stream',
- 'lzh' => 'application/octet-stream',
- 'psd' => 'application/octet-stream',
- 'sea' => 'application/octet-stream',
- 'so' => 'application/octet-stream',
- 'oda' => 'application/oda',
- 'pdf' => 'application/pdf',
- 'ai' => 'application/postscript',
- 'eps' => 'application/postscript',
- 'ps' => 'application/postscript',
- 'smi' => 'application/smil',
- 'smil' => 'application/smil',
- 'mif' => 'application/vnd.mif',
- 'xls' => 'application/vnd.ms-excel',
- 'ppt' => 'application/vnd.ms-powerpoint',
- 'wbxml' => 'application/vnd.wap.wbxml',
- 'wmlc' => 'application/vnd.wap.wmlc',
- 'dcr' => 'application/x-director',
- 'dir' => 'application/x-director',
- 'dxr' => 'application/x-director',
- 'dvi' => 'application/x-dvi',
- 'gtar' => 'application/x-gtar',
- 'php3' => 'application/x-httpd-php',
- 'php4' => 'application/x-httpd-php',
- 'php' => 'application/x-httpd-php',
- 'phtml' => 'application/x-httpd-php',
- 'phps' => 'application/x-httpd-php-source',
- 'swf' => 'application/x-shockwave-flash',
- 'sit' => 'application/x-stuffit',
- 'tar' => 'application/x-tar',
- 'tgz' => 'application/x-tar',
- 'xht' => 'application/xhtml+xml',
- 'xhtml' => 'application/xhtml+xml',
- 'zip' => 'application/zip',
- 'mid' => 'audio/midi',
- 'midi' => 'audio/midi',
- 'mp2' => 'audio/mpeg',
- 'mp3' => 'audio/mpeg',
- 'mpga' => 'audio/mpeg',
- 'aif' => 'audio/x-aiff',
- 'aifc' => 'audio/x-aiff',
- 'aiff' => 'audio/x-aiff',
- 'ram' => 'audio/x-pn-realaudio',
- 'rm' => 'audio/x-pn-realaudio',
- 'rpm' => 'audio/x-pn-realaudio-plugin',
- 'ra' => 'audio/x-realaudio',
- 'wav' => 'audio/x-wav',
- 'bmp' => 'image/bmp',
- 'gif' => 'image/gif',
- 'jpeg' => 'image/jpeg',
- 'jpe' => 'image/jpeg',
- 'jpg' => 'image/jpeg',
- 'png' => 'image/png',
- 'tiff' => 'image/tiff',
- 'tif' => 'image/tiff',
- 'eml' => 'message/rfc822',
- 'css' => 'text/css',
- 'html' => 'text/html',
- 'htm' => 'text/html',
- 'shtml' => 'text/html',
- 'log' => 'text/plain',
- 'text' => 'text/plain',
- 'txt' => 'text/plain',
- 'rtx' => 'text/richtext',
- 'rtf' => 'text/rtf',
- 'vcf' => 'text/vcard',
- 'vcard' => 'text/vcard',
- 'xml' => 'text/xml',
- 'xsl' => 'text/xml',
- 'mpeg' => 'video/mpeg',
- 'mpe' => 'video/mpeg',
- 'mpg' => 'video/mpeg',
- 'mov' => 'video/quicktime',
- 'qt' => 'video/quicktime',
- 'rv' => 'video/vnd.rn-realvideo',
- 'avi' => 'video/x-msvideo',
- 'movie' => 'video/x-sgi-movie'
- );
- if (array_key_exists(strtolower($ext), $mimes)) {
- return $mimes[strtolower($ext)];
- }
- return 'application/octet-stream';
- }
-
- /**
- * Map a file name to a MIME type.
- * Defaults to 'application/octet-stream', i.e.. arbitrary binary data.
- * @param string $filename A file name or full path, does not need to exist as a file
- * @return string
- * @static
- */
- public static function filenameToType($filename)
- {
- // In case the path is a URL, strip any query string before getting extension
- $qpos = strpos($filename, '?');
- if (false !== $qpos) {
- $filename = substr($filename, 0, $qpos);
- }
- $pathinfo = self::mb_pathinfo($filename);
- return self::_mime_types($pathinfo['extension']);
- }
-
- /**
- * Multi-byte-safe pathinfo replacement.
- * Drop-in replacement for pathinfo(), but multibyte-safe, cross-platform-safe, old-version-safe.
- * Works similarly to the one in PHP >= 5.2.0
- * @link http://www.php.net/manual/en/function.pathinfo.php#107461
- * @param string $path A filename or path, does not need to exist as a file
- * @param integer|string $options Either a PATHINFO_* constant,
- * or a string name to return only the specified piece, allows 'filename' to work on PHP < 5.2
- * @return string|array
- * @static
- */
- public static function mb_pathinfo($path, $options = null)
- {
- $ret = array('dirname' => '', 'basename' => '', 'extension' => '', 'filename' => '');
- $pathinfo = array();
- if (preg_match('%^(.*?)[\\\\/]*(([^/\\\\]*?)(\.([^\.\\\\/]+?)|))[\\\\/\.]*$%im', $path, $pathinfo)) {
- if (array_key_exists(1, $pathinfo)) {
- $ret['dirname'] = $pathinfo[1];
- }
- if (array_key_exists(2, $pathinfo)) {
- $ret['basename'] = $pathinfo[2];
- }
- if (array_key_exists(5, $pathinfo)) {
- $ret['extension'] = $pathinfo[5];
- }
- if (array_key_exists(3, $pathinfo)) {
- $ret['filename'] = $pathinfo[3];
- }
- }
- switch ($options) {
- case PATHINFO_DIRNAME:
- case 'dirname':
- return $ret['dirname'];
- case PATHINFO_BASENAME:
- case 'basename':
- return $ret['basename'];
- case PATHINFO_EXTENSION:
- case 'extension':
- return $ret['extension'];
- case PATHINFO_FILENAME:
- case 'filename':
- return $ret['filename'];
- default:
- return $ret;
- }
- }
-
- /**
- * Set or reset instance properties.
- * You should avoid this function - it's more verbose, less efficient, more error-prone and
- * harder to debug than setting properties directly.
- * Usage Example:
- * `$mail->set('SMTPSecure', 'tls');`
- * is the same as:
- * `$mail->SMTPSecure = 'tls';`
- * @access public
- * @param string $name The property name to set
- * @param mixed $value The value to set the property to
- * @return boolean
- * @TODO Should this not be using the __set() magic function?
- */
- public function set($name, $value = '')
- {
- if (property_exists($this, $name)) {
- $this->$name = $value;
- return true;
- } else {
- $this->setError($this->lang('variable_set') . $name);
- return false;
- }
- }
-
- /**
- * Strip newlines to prevent header injection.
- * @access public
- * @param string $str
- * @return string
- */
- public function secureHeader($str)
- {
- return trim(str_replace(array("\r", "\n"), '', $str));
- }
-
- /**
- * Normalize line breaks in a string.
- * Converts UNIX LF, Mac CR and Windows CRLF line breaks into a single line break format.
- * Defaults to CRLF (for message bodies) and preserves consecutive breaks.
- * @param string $text
- * @param string $breaktype What kind of line break to use, defaults to CRLF
- * @return string
- * @access public
- * @static
- */
- public static function normalizeBreaks($text, $breaktype = "\r\n")
- {
- return preg_replace('/(\r\n|\r|\n)/ms', $breaktype, $text);
- }
-
- /**
- * Set the public and private key files and password for S/MIME signing.
- * @access public
- * @param string $cert_filename
- * @param string $key_filename
- * @param string $key_pass Password for private key
- * @param string $extracerts_filename Optional path to chain certificate
- */
- public function sign($cert_filename, $key_filename, $key_pass, $extracerts_filename = '')
- {
- $this->sign_cert_file = $cert_filename;
- $this->sign_key_file = $key_filename;
- $this->sign_key_pass = $key_pass;
- $this->sign_extracerts_file = $extracerts_filename;
- }
-
- /**
- * Quoted-Printable-encode a DKIM header.
- * @access public
- * @param string $txt
- * @return string
- */
- public function DKIM_QP($txt)
- {
- $line = '';
- for ($i = 0; $i < strlen($txt); $i++) {
- $ord = ord($txt[$i]);
- if (((0x21 <= $ord) && ($ord <= 0x3A)) || $ord == 0x3C || ((0x3E <= $ord) && ($ord <= 0x7E))) {
- $line .= $txt[$i];
- } else {
- $line .= '=' . sprintf('%02X', $ord);
- }
- }
- return $line;
- }
-
- /**
- * Generate a DKIM signature.
- * @access public
- * @param string $signHeader
- * @throws phpmailerException
- * @return string The DKIM signature value
- */
- public function DKIM_Sign($signHeader)
- {
- if (!defined('PKCS7_TEXT')) {
- if ($this->exceptions) {
- throw new phpmailerException($this->lang('extension_missing') . 'openssl');
- }
- return '';
- }
- $privKeyStr = !empty($this->DKIM_private_string) ? $this->DKIM_private_string : file_get_contents($this->DKIM_private);
- if ('' != $this->DKIM_passphrase) {
- $privKey = openssl_pkey_get_private($privKeyStr, $this->DKIM_passphrase);
- } else {
- $privKey = openssl_pkey_get_private($privKeyStr);
- }
- //Workaround for missing digest algorithms in old PHP & OpenSSL versions
- //@link http://stackoverflow.com/a/11117338/333340
- if (version_compare(PHP_VERSION, '5.3.0') >= 0 and
- in_array('sha256WithRSAEncryption', openssl_get_md_methods(true))) {
- if (openssl_sign($signHeader, $signature, $privKey, 'sha256WithRSAEncryption')) {
- openssl_pkey_free($privKey);
- return base64_encode($signature);
- }
- } else {
- $pinfo = openssl_pkey_get_details($privKey);
- $hash = hash('sha256', $signHeader);
- //'Magic' constant for SHA256 from RFC3447
- //@link https://tools.ietf.org/html/rfc3447#page-43
- $t = '3031300d060960864801650304020105000420' . $hash;
- $pslen = $pinfo['bits'] / 8 - (strlen($t) / 2 + 3);
- $eb = pack('H*', '0001' . str_repeat('FF', $pslen) . '00' . $t);
-
- if (openssl_private_encrypt($eb, $signature, $privKey, OPENSSL_NO_PADDING)) {
- openssl_pkey_free($privKey);
- return base64_encode($signature);
- }
- }
- openssl_pkey_free($privKey);
- return '';
- }
-
- /**
- * Generate a DKIM canonicalization header.
- * @access public
- * @param string $signHeader Header
- * @return string
- */
- public function DKIM_HeaderC($signHeader)
- {
- $signHeader = preg_replace('/\r\n\s+/', ' ', $signHeader);
- $lines = explode("\r\n", $signHeader);
- foreach ($lines as $key => $line) {
- list($heading, $value) = explode(':', $line, 2);
- $heading = strtolower($heading);
- $value = preg_replace('/\s{2,}/', ' ', $value); // Compress useless spaces
- $lines[$key] = $heading . ':' . trim($value); // Don't forget to remove WSP around the value
- }
- $signHeader = implode("\r\n", $lines);
- return $signHeader;
- }
-
- /**
- * Generate a DKIM canonicalization body.
- * @access public
- * @param string $body Message Body
- * @return string
- */
- public function DKIM_BodyC($body)
- {
- if ($body == '') {
- return "\r\n";
- }
- // stabilize line endings
- $body = str_replace("\r\n", "\n", $body);
- $body = str_replace("\n", "\r\n", $body);
- // END stabilize line endings
- while (substr($body, strlen($body) - 4, 4) == "\r\n\r\n") {
- $body = substr($body, 0, strlen($body) - 2);
- }
- return $body;
- }
-
- /**
- * Create the DKIM header and body in a new message header.
- * @access public
- * @param string $headers_line Header lines
- * @param string $subject Subject
- * @param string $body Body
- * @return string
- */
- public function DKIM_Add($headers_line, $subject, $body)
- {
- $DKIMsignatureType = 'rsa-sha256'; // Signature & hash algorithms
- $DKIMcanonicalization = 'relaxed/simple'; // Canonicalization of header/body
- $DKIMquery = 'dns/txt'; // Query method
- $DKIMtime = time(); // Signature Timestamp = seconds since 00:00:00 - Jan 1, 1970 (UTC time zone)
- $subject_header = "Subject: $subject";
- $headers = explode($this->LE, $headers_line);
- $from_header = '';
- $to_header = '';
- $date_header = '';
- $current = '';
- foreach ($headers as $header) {
- if (strpos($header, 'From:') === 0) {
- $from_header = $header;
- $current = 'from_header';
- } elseif (strpos($header, 'To:') === 0) {
- $to_header = $header;
- $current = 'to_header';
- } elseif (strpos($header, 'Date:') === 0) {
- $date_header = $header;
- $current = 'date_header';
- } else {
- if (!empty($$current) && strpos($header, ' =?') === 0) {
- $$current .= $header;
- } else {
- $current = '';
- }
- }
- }
- $from = str_replace('|', '=7C', $this->DKIM_QP($from_header));
- $to = str_replace('|', '=7C', $this->DKIM_QP($to_header));
- $date = str_replace('|', '=7C', $this->DKIM_QP($date_header));
- $subject = str_replace(
- '|',
- '=7C',
- $this->DKIM_QP($subject_header)
- ); // Copied header fields (dkim-quoted-printable)
- $body = $this->DKIM_BodyC($body);
- $DKIMlen = strlen($body); // Length of body
- $DKIMb64 = base64_encode(pack('H*', hash('sha256', $body))); // Base64 of packed binary SHA-256 hash of body
- if ('' == $this->DKIM_identity) {
- $ident = '';
- } else {
- $ident = ' i=' . $this->DKIM_identity . ';';
- }
- $dkimhdrs = 'DKIM-Signature: v=1; a=' .
- $DKIMsignatureType . '; q=' .
- $DKIMquery . '; l=' .
- $DKIMlen . '; s=' .
- $this->DKIM_selector .
- ";\r\n" .
- "\tt=" . $DKIMtime . '; c=' . $DKIMcanonicalization . ";\r\n" .
- "\th=From:To:Date:Subject;\r\n" .
- "\td=" . $this->DKIM_domain . ';' . $ident . "\r\n" .
- "\tz=$from\r\n" .
- "\t|$to\r\n" .
- "\t|$date\r\n" .
- "\t|$subject;\r\n" .
- "\tbh=" . $DKIMb64 . ";\r\n" .
- "\tb=";
- $toSign = $this->DKIM_HeaderC(
- $from_header . "\r\n" .
- $to_header . "\r\n" .
- $date_header . "\r\n" .
- $subject_header . "\r\n" .
- $dkimhdrs
- );
- $signed = $this->DKIM_Sign($toSign);
- return $dkimhdrs . $signed . "\r\n";
- }
-
- /**
- * Detect if a string contains a line longer than the maximum line length allowed.
- * @param string $str
- * @return boolean
- * @static
- */
- public static function hasLineLongerThanMax($str)
- {
- //+2 to include CRLF line break for a 1000 total
- return (boolean)preg_match('/^(.{'.(self::MAX_LINE_LENGTH + 2).',})/m', $str);
- }
-
- /**
- * Allows for public read access to 'to' property.
- * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.
- * @access public
- * @return array
- */
- public function getToAddresses()
- {
- return $this->to;
- }
-
- /**
- * Allows for public read access to 'cc' property.
- * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.
- * @access public
- * @return array
- */
- public function getCcAddresses()
- {
- return $this->cc;
- }
-
- /**
- * Allows for public read access to 'bcc' property.
- * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.
- * @access public
- * @return array
- */
- public function getBccAddresses()
- {
- return $this->bcc;
- }
-
- /**
- * Allows for public read access to 'ReplyTo' property.
- * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.
- * @access public
- * @return array
- */
- public function getReplyToAddresses()
- {
- return $this->ReplyTo;
- }
-
- /**
- * Allows for public read access to 'all_recipients' property.
- * @note: Before the send() call, queued addresses (i.e. with IDN) are not yet included.
- * @access public
- * @return array
- */
- public function getAllRecipientAddresses()
- {
- return $this->all_recipients;
- }
-
- /**
- * Perform a callback.
- * @param boolean $isSent
- * @param array $to
- * @param array $cc
- * @param array $bcc
- * @param string $subject
- * @param string $body
- * @param string $from
- */
- protected function doCallback($isSent, $to, $cc, $bcc, $subject, $body, $from)
- {
- if (!empty($this->action_function) && is_callable($this->action_function)) {
- $params = array($isSent, $to, $cc, $bcc, $subject, $body, $from);
- call_user_func_array($this->action_function, $params);
- }
- }
-}
-
-/**
- * PHPMailer exception handler
- * @package PHPMailer
- */
-class phpmailerException extends \Exception
-{
- /**
- * Prettify error message output
- * @return string
- */
- public function errorMessage()
- {
- $errorMsg = '' . htmlspecialchars($this->getMessage()) . "';
- foreach ($this->errors as $error) {
- print_r($error);
- }
- echo '';
- }
- }
-
- /**
- * Get an array of error messages, if any.
- * @return array
- */
- public function getErrors()
- {
- return $this->errors;
- }
-
- /**
- * POP3 connection error handler.
- * @param integer $errno
- * @param string $errstr
- * @param string $errfile
- * @param integer $errline
- * @access protected
- */
- protected function catchWarning($errno, $errstr, $errfile, $errline)
- {
- $this->setError(array(
- 'error' => "Connecting to the POP3 server raised a PHP warning: ",
- 'errno' => $errno,
- 'errstr' => $errstr,
- 'errfile' => $errfile,
- 'errline' => $errline
- ));
- }
-}
diff --git a/lib/vendor/PHPMailer/class.webmailsmtp.php b/lib/vendor/PHPMailer/class.webmailsmtp.php
deleted file mode 100644
index 091fd41..0000000
--- a/lib/vendor/PHPMailer/class.webmailsmtp.php
+++ /dev/null
@@ -1,1277 +0,0 @@
-
- * @author Jim Jagielski (jimjag)
- * $smtp->Debugoutput = function($str, $level) {echo "debug level $level; message: $str";};
- *
- * @var string|callable
- */
- public $Debugoutput = 'echo';
-
- /**
- * Whether to use VERP.
- * @link http://en.wikipedia.org/wiki/Variable_envelope_return_path
- * @link http://www.postfix.org/VERP_README.html Info on VERP
- * @var boolean
- */
- public $do_verp = false;
-
- /**
- * The timeout value for connection, in seconds.
- * Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2
- * This needs to be quite high to function correctly with hosts using greetdelay as an anti-spam measure.
- * @link http://tools.ietf.org/html/rfc2821#section-4.5.3.2
- * @var integer
- */
- public $Timeout = 300;
-
- /**
- * How long to wait for commands to complete, in seconds.
- * Default of 5 minutes (300sec) is from RFC2821 section 4.5.3.2
- * @var integer
- */
- public $Timelimit = 300;
-
- /**
- * @var array Patterns to extract an SMTP transaction id from reply to a DATA command.
- * The first capture group in each regex will be used as the ID.
- */
- protected $smtp_transaction_id_patterns = array(
- 'exim' => '/[0-9]{3} OK id=(.*)/',
- 'sendmail' => '/[0-9]{3} 2.0.0 (.*) Message/',
- 'postfix' => '/[0-9]{3} 2.0.0 Ok: queued as (.*)/'
- );
-
- /**
- * @var string The last transaction ID issued in response to a DATA command,
- * if one was detected
- */
- protected $last_smtp_transaction_id;
-
- /**
- * The socket for the server connection.
- * @var resource
- */
- protected $smtp_conn;
-
- /**
- * Error information, if any, for the last SMTP command.
- * @var array
- */
- protected $error = array(
- 'error' => '',
- 'detail' => '',
- 'smtp_code' => '',
- 'smtp_code_ex' => ''
- );
-
- /**
- * The reply the server sent to us for HELO.
- * If null, no HELO string has yet been received.
- * @var string|null
- */
- protected $helo_rply = null;
-
- /**
- * The set of SMTP extensions sent in reply to EHLO command.
- * Indexes of the array are extension names.
- * Value at index 'HELO' or 'EHLO' (according to command that was sent)
- * represents the server name. In case of HELO it is the only element of the array.
- * Other values can be boolean TRUE or an array containing extension options.
- * If null, no HELO/EHLO string has yet been received.
- * @var array|null
- */
- protected $server_caps = null;
-
- /**
- * The most recent reply received from the server.
- * @var string
- */
- protected $last_reply = '';
-
- /**
- * Output debugging info via a user-selected method.
- * @see SMTP::$Debugoutput
- * @see SMTP::$do_debug
- * @param string $str Debug string to output
- * @param integer $level The debug level of this message; see DEBUG_* constants
- * @return void
- */
- protected function edebug($str, $level = 0)
- {
- if ($level > $this->do_debug) {
- return;
- }
- //Avoid clash with built-in function names
- if (!in_array($this->Debugoutput, array('error_log', 'html', 'echo')) and is_callable($this->Debugoutput)) {
- call_user_func($this->Debugoutput, $str, $level);
- return;
- }
- switch ($this->Debugoutput) {
- case 'error_log':
- //Don't output, just log
- error_log($str);
- break;
- case 'html':
- //Cleans up output a bit for a better looking, HTML-safe output
- echo gmdate('Y-m-d H:i:s') . ' ' . htmlentities(
- preg_replace('/[\r\n]+/', '', $str),
- ENT_QUOTES,
- 'UTF-8'
- ) . "\n"; - echo htmlentities($example_code); - echo "\n\n"; - echo "\n
This example uses HTML.
-Chinese text: 郵件內容為空
-Russian text: Пустое тело сообщения
-Armenian text: Հաղորդագրությունը դատարկ է
-Czech text: Prázdné tělo zprávy
-Emoji: 😂 🦄 💥 📤 📧
-
This folder contains a collection of examples of using PHPMailer.
-When working on email sending code you'll find yourself worrying about what might happen if all these test emails got sent to your mailing list. The solution is to use a fake mail server, one that acts just like the real thing, but just doesn't actually send anything out. Some offer web interfaces, feedback, logging, the ability to return specific error codes, all things that are useful for testing error handling, authentication etc. Here's a selection of mail testing tools you might like to try:
-Before running these examples you'll need to rename them with '.php' extensions. They are supplied as '.phps' files which will usually be displayed with syntax highlighting by PHP instead of running them. This prevents potential security issues with running potential spam-gateway code if you happen to deploy these code examples on a live site - please don't do that! Similarly, don't leave your passwords in these files as they will be visible to the world!
-This script is a simple code generator - fill in the form and hit submit, and it will use when you entered to email you a message, and will also generate PHP code using your settings that you can copy and paste to use in your own apps. If you need to get going quickly, this is probably the best place to start.
-This script is a basic example which creates an email message from an external HTML file, creates a plain text body, sets various addresses, adds an attachment and sends the message. It uses PHP's built-in mail() function which is the simplest to use, but relies on the presence of a local mail server, something which is not usually available on Windows. If you find yourself in that situation, either install a local mail server, or use a remote one and send using SMTP instead.
-The same as the mail example, but shows how to use PHPMailer's optional exceptions for error handling.
-A simple example sending using SMTP with authentication.
-A simple example sending using SMTP without authentication.
-A simple example using sendmail. Sendmail is a program (usually found on Linux/BSD, OS X and other UNIX-alikes) that can be used to submit messages to a local mail server without a lengthy SMTP conversation. It's probably the fastest sending mechanism, but lacks some error reporting features. There are sendmail emulators for most popular mail servers including postfix, qmail, exim etc.
-Submitting email via Google's Gmail service is a popular use of PHPMailer. It's much the same as normal SMTP sending, just with some specific settings, namely using TLS encryption, authentication is enabled, and it connects to the SMTP submission port 587 on the smtp.gmail.com host. This example does all that.
-Before effective SMTP authentication mechanisms were available, it was common for ISPs to use POP-before-SMTP authentication. As it implies, you authenticate using the POP3 protocol (an older protocol now mostly replaced by the far superior IMAP), and then the SMTP server will allow send access from your IP address for a short while, usually 5-15 minutes. PHPMailer includes a POP3 protocol client, so it can carry out this sequence - it's just like a normal SMTP conversation (without authentication), but connects via POP first.
-This is a somewhat naïve example of sending similar emails to a list of different addresses. It sets up a PHPMailer instance using SMTP, then connects to a MySQL database to retrieve a list of recipients. The code loops over this list, sending email to each person using their info and marks them as sent in the database. It makes use of SMTP keepalive which saves reconnecting and re-authenticating between each message.
-This is an example showing how to use the SMTP class by itself (without PHPMailer) to check an SMTP connection.
-Most of these examples use the 'example.com' domain. This domain is reserved by IANA for illustrative purposes, as documented in RFC 2606. Don't use made-up domains like 'mydomain.com' or 'somedomain.com' in examples as someone, somewhere, probably owns them!
- - diff --git a/lib/vendor/PHPMailer/examples/mail.phps b/lib/vendor/PHPMailer/examples/mail.phps deleted file mode 100644 index 8e129f4..0000000 --- a/lib/vendor/PHPMailer/examples/mail.phps +++ /dev/null @@ -1,31 +0,0 @@ -setFrom('from@example.com', 'First Last'); -//Set an alternative reply-to address -$mail->addReplyTo('replyto@example.com', 'First Last'); -//Set who the message is to be sent to -$mail->addAddress('whoto@example.com', 'John Doe'); -//Set the subject line -$mail->Subject = 'PHPMailer mail() test'; -//Read an HTML message body from an external file, convert referenced images to embedded, -//convert HTML into a basic plain-text alternative body -$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__)); -//Replace the plain text body with one created manually -$mail->AltBody = 'This is a plain-text message body'; -//Attach an image file -$mail->addAttachment('images/phpmailer_mini.png'); - -//send the message, check for errors -if (!$mail->send()) { - echo "Mailer Error: " . $mail->ErrorInfo; -} else { - echo "Message sent!"; -} diff --git a/lib/vendor/PHPMailer/examples/mailing_list.phps b/lib/vendor/PHPMailer/examples/mailing_list.phps deleted file mode 100644 index 8644bb5..0000000 --- a/lib/vendor/PHPMailer/examples/mailing_list.phps +++ /dev/null @@ -1,59 +0,0 @@ -isSMTP(); -$mail->Host = 'smtp.example.com'; -$mail->SMTPAuth = true; -$mail->SMTPKeepAlive = true; // SMTP connection will not close after each email sent, reduces SMTP overhead -$mail->Port = 25; -$mail->Username = 'yourname@example.com'; -$mail->Password = 'yourpassword'; -$mail->setFrom('list@example.com', 'List manager'); -$mail->addReplyTo('list@example.com', 'List manager'); - -$mail->Subject = "PHPMailer Simple database mailing list test"; - -//Same body for all messages, so set this before the sending loop -//If you generate a different body for each recipient (e.g. you're using a templating system), -//set it inside the loop -$mail->msgHTML($body); -//msgHTML also sets AltBody, but if you want a custom one, set it afterwards -$mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; - -//Connect to the database and select the recipients from your mailing list that have not yet been sent to -//You'll need to alter this to match your database -$mysql = mysqli_connect('localhost', 'username', 'password'); -mysqli_select_db($mysql, 'mydb'); -$result = mysqli_query($mysql, 'SELECT full_name, email, photo FROM mailinglist WHERE sent = false'); - -foreach ($result as $row) { //This iterator syntax only works in PHP 5.4+ - $mail->addAddress($row['email'], $row['full_name']); - if (!empty($row['photo'])) { - $mail->addStringAttachment($row['photo'], 'YourPhoto.jpg'); //Assumes the image data is stored in the DB - } - - if (!$mail->send()) { - echo "Mailer Error (" . str_replace("@", "@", $row["email"]) . ') ' . $mail->ErrorInfo . '| '+this.getLineNumbersHtml(t)+" | ":"")+''+' '+n+" "+" | "+"
.*?)"+"(?"+t.end+")","sgi")}}},e}();typeof exports!="undefined"?exports.SyntaxHighlighter=SyntaxHighlighter:null
\ No newline at end of file
diff --git a/lib/vendor/PHPMailer/examples/scripts/shLegacy.js b/lib/vendor/PHPMailer/examples/scripts/shLegacy.js
deleted file mode 100644
index 2fd2c14..0000000
--- a/lib/vendor/PHPMailer/examples/scripts/shLegacy.js
+++ /dev/null
@@ -1,140 +0,0 @@
-var dp = {
- SyntaxHighlighter : {}
-};
-
-dp.SyntaxHighlighter = {
- parseParams: function(
- input,
- showGutter,
- showControls,
- collapseAll,
- firstLine,
- showColumns
- )
- {
- function getValue(list, name)
- {
- var regex = new XRegExp('^' + name + '\\[(?\\w+)\\]$', 'gi'),
- match = null
- ;
-
- for (var i = 0; i < list.length; i++)
- if ((match = regex.exec(list[i])) != null)
- return match.value;
-
- return null;
- }
-
- function defaultValue(value, def)
- {
- return value != null ? value : def;
- }
-
- function asString(value)
- {
- return value != null ? value.toString() : null;
- }
-
- var parts = input.split(':'),
- brushName = parts[0],
- options = {},
- straight = { 'true' : true },
- reverse = { 'true' : false },
- defaults = SyntaxHighlighter.defaults
- ;
-
- for (var i in parts)
- options[parts[i]] = 'true';
-
- showGutter = asString(defaultValue(showGutter, defaults.gutter));
- showControls = asString(defaultValue(showControls, defaults.toolbar));
- collapseAll = asString(defaultValue(collapseAll, defaults.collapse));
- showColumns = asString(defaultValue(showColumns, defaults.ruler));
- firstLine = asString(defaultValue(firstLine, defaults['first-line']));
-
- return {
- brush : brushName,
- gutter : defaultValue(reverse[options.nogutter], showGutter),
- toolbar : defaultValue(reverse[options.nocontrols], showControls),
- collapse : defaultValue(straight[options.collapse], collapseAll),
- // ruler : defaultValue(straight[options.showcolumns], showColumns),
- 'first-line' : defaultValue(getValue(parts, 'firstline'), firstLine)
- };
- },
-
- HighlightAll: function(
- name,
- showGutter /* optional */,
- showControls /* optional */,
- collapseAll /* optional */,
- firstLine /* optional */,
- showColumns /* optional */
- )
- {
- function findValue()
- {
- var a = arguments;
-
- for (var i = 0; i < a.length; i++)
- {
- if (a[i] === null)
- continue;
-
- if (typeof(a[i]) == 'string' && a[i] != '')
- return a[i] + '';
-
- if (typeof(a[i]) == 'object' && a[i].value != '')
- return a[i].value + '';
- }
-
- return null;
- }
-
- function findTagsByName(list, name, tagName)
- {
- var tags = document.getElementsByTagName(tagName);
-
- for (var i = 0; i < tags.length; i++)
- if (tags[i].getAttribute('name') == name)
- list.push(tags[i]);
- }
-
- var elements = [],
- highlighter = null,
- registered = {},
- propertyName = 'innerHTML'
- ;
-
- // for some reason IE doesn't find by name, however it does see them just fine by tag name...
- findTagsByName(elements, name, 'pre');
- findTagsByName(elements, name, 'textarea');
-
- if (elements.length === 0)
- return;
-
- for (var i = 0; i < elements.length; i++)
- {
- var element = elements[i],
- params = findValue(
- element.attributes['class'], element.className,
- element.attributes['language'], element.language
- ),
- language = ''
- ;
-
- if (params === null)
- continue;
-
- params = dp.SyntaxHighlighter.parseParams(
- params,
- showGutter,
- showControls,
- collapseAll,
- firstLine,
- showColumns
- );
-
- SyntaxHighlighter.highlight(params, element);
- }
- }
-};
diff --git a/lib/vendor/PHPMailer/examples/send_file_upload.phps b/lib/vendor/PHPMailer/examples/send_file_upload.phps
deleted file mode 100644
index ab60fd1..0000000
--- a/lib/vendor/PHPMailer/examples/send_file_upload.phps
+++ /dev/null
@@ -1,49 +0,0 @@
-setFrom('from@example.com', 'First Last');
- $mail->addAddress('whoto@example.com', 'John Doe');
- $mail->Subject = 'PHPMailer file sender';
- $mail->Body = 'My message body';
- // Attach the uploaded file
- $mail->addAttachment($uploadfile, 'My uploaded file');
- if (!$mail->send()) {
- $msg .= "Mailer Error: " . $mail->ErrorInfo;
- } else {
- $msg .= "Message sent!";
- }
- } else {
- $msg .= 'Failed to move file to ' . $uploadfile;
- }
-}
-?>
-
-
-
-
- PHPMailer Upload
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/lib/vendor/PHPMailer/examples/send_multiple_file_upload.phps b/lib/vendor/PHPMailer/examples/send_multiple_file_upload.phps
deleted file mode 100644
index 72f2115..0000000
--- a/lib/vendor/PHPMailer/examples/send_multiple_file_upload.phps
+++ /dev/null
@@ -1,51 +0,0 @@
-setFrom('from@example.com', 'First Last');
- $mail->addAddress('whoto@example.com', 'John Doe');
- $mail->Subject = 'PHPMailer file sender';
- $mail->Body = 'My message body';
- //Attach multiple files one by one
- for ($ct = 0; $ct < count($_FILES['userfile']['tmp_name']); $ct++) {
- $uploadfile = tempnam(sys_get_temp_dir(), sha1($_FILES['userfile']['name'][$ct]));
- $filename = $_FILES['userfile']['name'][$ct];
- if (move_uploaded_file($_FILES['userfile']['tmp_name'][$ct], $uploadfile)) {
- $mail->addAttachment($uploadfile, $filename);
- } else {
- $msg .= 'Failed to move file to ' . $uploadfile;
- }
- }
- if (!$mail->send()) {
- $msg .= "Mailer Error: " . $mail->ErrorInfo;
- } else {
- $msg .= "Message sent!";
- }
-}
-?>
-
-
-
-
- PHPMailer Upload
-
-
-
-
-
-
-
diff --git a/lib/vendor/PHPMailer/examples/sendmail.phps b/lib/vendor/PHPMailer/examples/sendmail.phps
deleted file mode 100644
index a830e49..0000000
--- a/lib/vendor/PHPMailer/examples/sendmail.phps
+++ /dev/null
@@ -1,33 +0,0 @@
-isSendmail();
-//Set who the message is to be sent from
-$mail->setFrom('from@example.com', 'First Last');
-//Set an alternative reply-to address
-$mail->addReplyTo('replyto@example.com', 'First Last');
-//Set who the message is to be sent to
-$mail->addAddress('whoto@example.com', 'John Doe');
-//Set the subject line
-$mail->Subject = 'PHPMailer sendmail test';
-//Read an HTML message body from an external file, convert referenced images to embedded,
-//convert HTML into a basic plain-text alternative body
-$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
-//Replace the plain text body with one created manually
-$mail->AltBody = 'This is a plain-text message body';
-//Attach an image file
-$mail->addAttachment('images/phpmailer_mini.png');
-
-//send the message, check for errors
-if (!$mail->send()) {
- echo "Mailer Error: " . $mail->ErrorInfo;
-} else {
- echo "Message sent!";
-}
diff --git a/lib/vendor/PHPMailer/examples/signed-mail.phps b/lib/vendor/PHPMailer/examples/signed-mail.phps
deleted file mode 100644
index 9d70d01..0000000
--- a/lib/vendor/PHPMailer/examples/signed-mail.phps
+++ /dev/null
@@ -1,89 +0,0 @@
-setFrom('from@example.com', 'First Last');
-//Set an alternative reply-to address
-$mail->addReplyTo('replyto@example.com', 'First Last');
-//Set who the message is to be sent to
-$mail->addAddress('whoto@example.com', 'John Doe');
-//Set the subject line
-$mail->Subject = 'PHPMailer mail() test';
-//Read an HTML message body from an external file, convert referenced images to embedded,
-//Convert HTML into a basic plain-text alternative body
-$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
-//Replace the plain text body with one created manually
-$mail->AltBody = 'This is a plain-text message body';
-//Attach an image file
-$mail->addAttachment('images/phpmailer_mini.png');
-
-//Configure message signing (the actual signing does not occur until sending)
-$mail->sign(
- '/path/to/cert.crt', //The location of your certificate file
- '/path/to/cert.key', //The location of your private key file
- 'yourSecretPrivateKeyPassword', //The password you protected your private key with (not the Import Password! may be empty but parameter must not be omitted!)
- '/path/to/certchain.pem' //The location of your chain file
-);
-
-//Send the message, check for errors
-if (!$mail->send()) {
- echo "Mailer Error: " . $mail->ErrorInfo;
-} else {
- echo "Message sent!";
-}
-
-/**
- * REMARKS:
- * If your email client does not support S/MIME it will most likely just show an attachment smime.p7s which is the signature contained in the email.
- * Other clients, such as Thunderbird support S/MIME natively and will validate the signature automatically and report the result in some way.
- */
-?>
diff --git a/lib/vendor/PHPMailer/examples/smtp.phps b/lib/vendor/PHPMailer/examples/smtp.phps
deleted file mode 100644
index 7c6b023..0000000
--- a/lib/vendor/PHPMailer/examples/smtp.phps
+++ /dev/null
@@ -1,54 +0,0 @@
-isSMTP();
-//Enable SMTP debugging
-// 0 = off (for production use)
-// 1 = client messages
-// 2 = client and server messages
-$mail->SMTPDebug = 2;
-//Ask for HTML-friendly debug output
-$mail->Debugoutput = 'html';
-//Set the hostname of the mail server
-$mail->Host = "mail.example.com";
-//Set the SMTP port number - likely to be 25, 465 or 587
-$mail->Port = 25;
-//Whether to use SMTP authentication
-$mail->SMTPAuth = true;
-//Username to use for SMTP authentication
-$mail->Username = "yourname@example.com";
-//Password to use for SMTP authentication
-$mail->Password = "yourpassword";
-//Set who the message is to be sent from
-$mail->setFrom('from@example.com', 'First Last');
-//Set an alternative reply-to address
-$mail->addReplyTo('replyto@example.com', 'First Last');
-//Set who the message is to be sent to
-$mail->addAddress('whoto@example.com', 'John Doe');
-//Set the subject line
-$mail->Subject = 'PHPMailer SMTP test';
-//Read an HTML message body from an external file, convert referenced images to embedded,
-//convert HTML into a basic plain-text alternative body
-$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
-//Replace the plain text body with one created manually
-$mail->AltBody = 'This is a plain-text message body';
-//Attach an image file
-$mail->addAttachment('images/phpmailer_mini.png');
-
-//send the message, check for errors
-if (!$mail->send()) {
- echo "Mailer Error: " . $mail->ErrorInfo;
-} else {
- echo "Message sent!";
-}
diff --git a/lib/vendor/PHPMailer/examples/smtp_check.phps b/lib/vendor/PHPMailer/examples/smtp_check.phps
deleted file mode 100644
index 9ecc03a..0000000
--- a/lib/vendor/PHPMailer/examples/smtp_check.phps
+++ /dev/null
@@ -1,55 +0,0 @@
-do_debug = SMTP::DEBUG_CONNECTION;
-
-try {
- //Connect to an SMTP server
- if (!$smtp->connect('mail.example.com', 25)) {
- throw new Exception('Connect failed');
- }
- //Say hello
- if (!$smtp->hello(gethostname())) {
- throw new Exception('EHLO failed: ' . $smtp->getError()['error']);
- }
- //Get the list of ESMTP services the server offers
- $e = $smtp->getServerExtList();
- //If server can do TLS encryption, use it
- if (is_array($e) && array_key_exists('STARTTLS', $e)) {
- $tlsok = $smtp->startTLS();
- if (!$tlsok) {
- throw new Exception('Failed to start encryption: ' . $smtp->getError()['error']);
- }
- //Repeat EHLO after STARTTLS
- if (!$smtp->hello(gethostname())) {
- throw new Exception('EHLO (2) failed: ' . $smtp->getError()['error']);
- }
- //Get new capabilities list, which will usually now include AUTH if it didn't before
- $e = $smtp->getServerExtList();
- }
- //If server supports authentication, do it (even if no encryption)
- if (is_array($e) && array_key_exists('AUTH', $e)) {
- if ($smtp->authenticate('username', 'password')) {
- echo "Connected ok!";
- } else {
- throw new Exception('Authentication failed: ' . $smtp->getError()['error']);
- }
- }
-} catch (Exception $e) {
- echo 'SMTP error: ' . $e->getMessage(), "\n";
-}
-//Whatever happened, close the connection.
-$smtp->quit(true);
diff --git a/lib/vendor/PHPMailer/examples/smtp_no_auth.phps b/lib/vendor/PHPMailer/examples/smtp_no_auth.phps
deleted file mode 100644
index b590298..0000000
--- a/lib/vendor/PHPMailer/examples/smtp_no_auth.phps
+++ /dev/null
@@ -1,50 +0,0 @@
-isSMTP();
-//Enable SMTP debugging
-// 0 = off (for production use)
-// 1 = client messages
-// 2 = client and server messages
-$mail->SMTPDebug = 2;
-//Ask for HTML-friendly debug output
-$mail->Debugoutput = 'html';
-//Set the hostname of the mail server
-$mail->Host = "mail.example.com";
-//Set the SMTP port number - likely to be 25, 465 or 587
-$mail->Port = 25;
-//Whether to use SMTP authentication
-$mail->SMTPAuth = false;
-//Set who the message is to be sent from
-$mail->setFrom('from@example.com', 'First Last');
-//Set an alternative reply-to address
-$mail->addReplyTo('replyto@example.com', 'First Last');
-//Set who the message is to be sent to
-$mail->addAddress('whoto@example.com', 'John Doe');
-//Set the subject line
-$mail->Subject = 'PHPMailer SMTP without auth test';
-//Read an HTML message body from an external file, convert referenced images to embedded,
-//convert HTML into a basic plain-text alternative body
-$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
-//Replace the plain text body with one created manually
-$mail->AltBody = 'This is a plain-text message body';
-//Attach an image file
-$mail->addAttachment('images/phpmailer_mini.png');
-
-//send the message, check for errors
-if (!$mail->send()) {
- echo "Mailer Error: " . $mail->ErrorInfo;
-} else {
- echo "Message sent!";
-}
diff --git a/lib/vendor/PHPMailer/examples/ssl_options.phps b/lib/vendor/PHPMailer/examples/ssl_options.phps
deleted file mode 100644
index cc41495..0000000
--- a/lib/vendor/PHPMailer/examples/ssl_options.phps
+++ /dev/null
@@ -1,74 +0,0 @@
-isSMTP();
-
-//Enable SMTP debugging
-// 0 = off (for production use)
-// 1 = client messages
-// 2 = client and server messages
-$mail->SMTPDebug = 2;
-
-//Ask for HTML-friendly debug output
-$mail->Debugoutput = 'html';
-
-//Set the hostname of the mail server
-$mail->Host = 'smtp.example.com';
-
-//Set the SMTP port number - 587 for authenticated TLS, a.k.a. RFC4409 SMTP submission
-$mail->Port = 587;
-
-//Set the encryption system to use - ssl (deprecated) or tls
-$mail->SMTPSecure = 'tls';
-
-//Custom connection options
-$mail->SMTPOptions = array (
- 'ssl' => array(
- 'verify_peer' => true,
- 'verify_depth' => 3,
- 'allow_self_signed' => true,
- 'peer_name' => 'smtp.example.com',
- 'cafile' => '/etc/ssl/ca_cert.pem',
- )
-);
-
-//Whether to use SMTP authentication
-$mail->SMTPAuth = true;
-
-//Username to use for SMTP authentication - use full email address for gmail
-$mail->Username = "username@example.com";
-
-//Password to use for SMTP authentication
-$mail->Password = "yourpassword";
-
-//Set who the message is to be sent from
-$mail->setFrom('from@example.com', 'First Last');
-
-//Set who the message is to be sent to
-$mail->addAddress('whoto@example.com', 'John Doe');
-
-//Set the subject line
-$mail->Subject = 'PHPMailer SMTP options test';
-
-//Read an HTML message body from an external file, convert referenced images to embedded,
-//convert HTML into a basic plain-text alternative body
-$mail->msgHTML(file_get_contents('contents.html'), dirname(__FILE__));
-
-//send the message, check for errors
-if (!$mail->send()) {
- echo "Mailer Error: " . $mail->ErrorInfo;
-} else {
- echo "Message sent!";
-}
diff --git a/lib/vendor/PHPMailer/examples/styles/shCore.css b/lib/vendor/PHPMailer/examples/styles/shCore.css
deleted file mode 100644
index 3b26ae7..0000000
--- a/lib/vendor/PHPMailer/examples/styles/shCore.css
+++ /dev/null
@@ -1,46 +0,0 @@
-.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0 !important;-webkit-border-radius:0 0 0 0 !important;background:none !important;border:0 !important;bottom:auto !important;float:none !important;height:auto !important;left:auto !important;line-height:1.1em !important;margin:0 !important;outline:0 !important;overflow:visible !important;padding:0 !important;position:static !important;right:auto !important;text-align:left !important;top:auto !important;vertical-align:baseline !important;width:auto !important;box-sizing:content-box !important;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace !important;font-weight:normal !important;font-style:normal !important;font-size:1em !important;min-height:inherit !important;min-height:auto !important;}
-.syntaxhighlighter{width:100% !important;margin:1em 0 1em 0 !important;position:relative !important;overflow:auto !important;font-size:1em !important;}
-.syntaxhighlighter.source{overflow:hidden !important;}
-.syntaxhighlighter .bold{font-weight:bold !important;}
-.syntaxhighlighter .italic{font-style:italic !important;}
-.syntaxhighlighter .line{white-space:pre !important;}
-.syntaxhighlighter table{width:100% !important;}
-.syntaxhighlighter table caption{text-align:left !important;padding:.5em 0 0.5em 1em !important;}
-.syntaxhighlighter table td.code{width:100% !important;}
-.syntaxhighlighter table td.code .container{position:relative !important;}
-.syntaxhighlighter table td.code .container textarea{box-sizing:border-box !important;position:absolute !important;left:0 !important;top:0 !important;width:100% !important;height:100% !important;border:none !important;background:white !important;padding-left:1em !important;overflow:hidden !important;white-space:pre !important;}
-.syntaxhighlighter table td.gutter .line{text-align:right !important;padding:0 0.5em 0 1em !important;}
-.syntaxhighlighter table td.code .line{padding:0 1em !important;}
-.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0em !important;}
-.syntaxhighlighter.show{display:block !important;}
-.syntaxhighlighter.collapsed table{display:none !important;}
-.syntaxhighlighter.collapsed .toolbar{padding:0.1em 0.8em 0em 0.8em !important;font-size:1em !important;position:static !important;width:auto !important;height:auto !important;}
-.syntaxhighlighter.collapsed .toolbar span{display:inline !important;margin-right:1em !important;}
-.syntaxhighlighter.collapsed .toolbar span a{padding:0 !important;display:none !important;}
-.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline !important;}
-.syntaxhighlighter .toolbar{position:absolute !important;right:1px !important;top:1px !important;width:11px !important;height:11px !important;font-size:10px !important;z-index:10 !important;}
-.syntaxhighlighter .toolbar span.title{display:inline !important;}
-.syntaxhighlighter .toolbar a{display:block !important;text-align:center !important;text-decoration:none !important;padding-top:1px !important;}
-.syntaxhighlighter .toolbar a.expandSource{display:none !important;}
-.syntaxhighlighter.ie{font-size:.9em !important;padding:1px 0 1px 0 !important;}
-.syntaxhighlighter.ie .toolbar{line-height:8px !important;}
-.syntaxhighlighter.ie .toolbar a{padding-top:0px !important;}
-.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none !important;}
-.syntaxhighlighter.printing .line .number{color:#bbbbbb !important;}
-.syntaxhighlighter.printing .line .content{color:black !important;}
-.syntaxhighlighter.printing .toolbar{display:none !important;}
-.syntaxhighlighter.printing a{text-decoration:none !important;}
-.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black !important;}
-.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200 !important;}
-.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue !important;}
-.syntaxhighlighter.printing .keyword{color:#006699 !important;font-weight:bold !important;}
-.syntaxhighlighter.printing .preprocessor{color:gray !important;}
-.syntaxhighlighter.printing .variable{color:#aa7700 !important;}
-.syntaxhighlighter.printing .value{color:#009900 !important;}
-.syntaxhighlighter.printing .functions{color:#ff1493 !important;}
-.syntaxhighlighter.printing .constants{color:#0066cc !important;}
-.syntaxhighlighter.printing .script{font-weight:bold !important;}
-.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray !important;}
-.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493 !important;}
-.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red !important;}
-.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black !important;}
diff --git a/lib/vendor/PHPMailer/examples/styles/shCoreDefault.css b/lib/vendor/PHPMailer/examples/styles/shCoreDefault.css
deleted file mode 100644
index 3f15eba..0000000
--- a/lib/vendor/PHPMailer/examples/styles/shCoreDefault.css
+++ /dev/null
@@ -1,77 +0,0 @@
-.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0 !important;-webkit-border-radius:0 0 0 0 !important;background:none !important;border:0 !important;bottom:auto !important;float:none !important;height:auto !important;left:auto !important;line-height:1.1em !important;margin:0 !important;outline:0 !important;overflow:visible !important;padding:0 !important;position:static !important;right:auto !important;text-align:left !important;top:auto !important;vertical-align:baseline !important;width:auto !important;box-sizing:content-box !important;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace !important;font-weight:normal !important;font-style:normal !important;font-size:1em !important;min-height:inherit !important;min-height:auto !important;}
-.syntaxhighlighter{width:100% !important;margin:1em 0 1em 0 !important;position:relative !important;overflow:auto !important;font-size:1em !important;}
-.syntaxhighlighter.source{overflow:hidden !important;}
-.syntaxhighlighter .bold{font-weight:bold !important;}
-.syntaxhighlighter .italic{font-style:italic !important;}
-.syntaxhighlighter .line{white-space:pre !important;}
-.syntaxhighlighter table{width:100% !important;}
-.syntaxhighlighter table caption{text-align:left !important;padding:.5em 0 0.5em 1em !important;}
-.syntaxhighlighter table td.code{width:100% !important;}
-.syntaxhighlighter table td.code .container{position:relative !important;}
-.syntaxhighlighter table td.code .container textarea{box-sizing:border-box !important;position:absolute !important;left:0 !important;top:0 !important;width:100% !important;height:100% !important;border:none !important;background:white !important;padding-left:1em !important;overflow:hidden !important;white-space:pre !important;}
-.syntaxhighlighter table td.gutter .line{text-align:right !important;padding:0 0.5em 0 1em !important;}
-.syntaxhighlighter table td.code .line{padding:0 1em !important;}
-.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0em !important;}
-.syntaxhighlighter.show{display:block !important;}
-.syntaxhighlighter.collapsed table{display:none !important;}
-.syntaxhighlighter.collapsed .toolbar{padding:0.1em 0.8em 0em 0.8em !important;font-size:1em !important;position:static !important;width:auto !important;height:auto !important;}
-.syntaxhighlighter.collapsed .toolbar span{display:inline !important;margin-right:1em !important;}
-.syntaxhighlighter.collapsed .toolbar span a{padding:0 !important;display:none !important;}
-.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline !important;}
-.syntaxhighlighter .toolbar{position:absolute !important;right:1px !important;top:1px !important;width:11px !important;height:11px !important;font-size:10px !important;z-index:10 !important;}
-.syntaxhighlighter .toolbar span.title{display:inline !important;}
-.syntaxhighlighter .toolbar a{display:block !important;text-align:center !important;text-decoration:none !important;padding-top:1px !important;}
-.syntaxhighlighter .toolbar a.expandSource{display:none !important;}
-.syntaxhighlighter.ie{font-size:.9em !important;padding:1px 0 1px 0 !important;}
-.syntaxhighlighter.ie .toolbar{line-height:8px !important;}
-.syntaxhighlighter.ie .toolbar a{padding-top:0px !important;}
-.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none !important;}
-.syntaxhighlighter.printing .line .number{color:#bbbbbb !important;}
-.syntaxhighlighter.printing .line .content{color:black !important;}
-.syntaxhighlighter.printing .toolbar{display:none !important;}
-.syntaxhighlighter.printing a{text-decoration:none !important;}
-.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black !important;}
-.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200 !important;}
-.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue !important;}
-.syntaxhighlighter.printing .keyword{color:#006699 !important;font-weight:bold !important;}
-.syntaxhighlighter.printing .preprocessor{color:gray !important;}
-.syntaxhighlighter.printing .variable{color:#aa7700 !important;}
-.syntaxhighlighter.printing .value{color:#009900 !important;}
-.syntaxhighlighter.printing .functions{color:#ff1493 !important;}
-.syntaxhighlighter.printing .constants{color:#0066cc !important;}
-.syntaxhighlighter.printing .script{font-weight:bold !important;}
-.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray !important;}
-.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493 !important;}
-.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red !important;}
-.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black !important;}
-.syntaxhighlighter{background-color:white !important;}
-.syntaxhighlighter .line.alt1{background-color:white !important;}
-.syntaxhighlighter .line.alt2{background-color:white !important;}
-.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#e0e0e0 !important;}
-.syntaxhighlighter .line.highlighted.number{color:black !important;}
-.syntaxhighlighter table caption{color:black !important;}
-.syntaxhighlighter .gutter{color:#afafaf !important;}
-.syntaxhighlighter .gutter .line{border-right:3px solid #6ce26c !important;}
-.syntaxhighlighter .gutter .line.highlighted{background-color:#6ce26c !important;color:white !important;}
-.syntaxhighlighter.printing .line .content{border:none !important;}
-.syntaxhighlighter.collapsed{overflow:visible !important;}
-.syntaxhighlighter.collapsed .toolbar{color:blue !important;background:white !important;border:1px solid #6ce26c !important;}
-.syntaxhighlighter.collapsed .toolbar a{color:blue !important;}
-.syntaxhighlighter.collapsed .toolbar a:hover{color:red !important;}
-.syntaxhighlighter .toolbar{color:white !important;background:#6ce26c !important;border:none !important;}
-.syntaxhighlighter .toolbar a{color:white !important;}
-.syntaxhighlighter .toolbar a:hover{color:black !important;}
-.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:black !important;}
-.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#008200 !important;}
-.syntaxhighlighter .string,.syntaxhighlighter .string a{color:blue !important;}
-.syntaxhighlighter .keyword{color:#006699 !important;}
-.syntaxhighlighter .preprocessor{color:gray !important;}
-.syntaxhighlighter .variable{color:#aa7700 !important;}
-.syntaxhighlighter .value{color:#009900 !important;}
-.syntaxhighlighter .functions{color:#ff1493 !important;}
-.syntaxhighlighter .constants{color:#0066cc !important;}
-.syntaxhighlighter .script{font-weight:bold !important;color:#006699 !important;background-color:none !important;}
-.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:gray !important;}
-.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff1493 !important;}
-.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:red !important;}
-.syntaxhighlighter .keyword{font-weight:bold !important;}
diff --git a/lib/vendor/PHPMailer/examples/styles/shCoreDjango.css b/lib/vendor/PHPMailer/examples/styles/shCoreDjango.css
deleted file mode 100644
index 19c5eb4..0000000
--- a/lib/vendor/PHPMailer/examples/styles/shCoreDjango.css
+++ /dev/null
@@ -1,78 +0,0 @@
-.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0 !important;-webkit-border-radius:0 0 0 0 !important;background:none !important;border:0 !important;bottom:auto !important;float:none !important;height:auto !important;left:auto !important;line-height:1.1em !important;margin:0 !important;outline:0 !important;overflow:visible !important;padding:0 !important;position:static !important;right:auto !important;text-align:left !important;top:auto !important;vertical-align:baseline !important;width:auto !important;box-sizing:content-box !important;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace !important;font-weight:normal !important;font-style:normal !important;font-size:1em !important;min-height:inherit !important;min-height:auto !important;}
-.syntaxhighlighter{width:100% !important;margin:1em 0 1em 0 !important;position:relative !important;overflow:auto !important;font-size:1em !important;}
-.syntaxhighlighter.source{overflow:hidden !important;}
-.syntaxhighlighter .bold{font-weight:bold !important;}
-.syntaxhighlighter .italic{font-style:italic !important;}
-.syntaxhighlighter .line{white-space:pre !important;}
-.syntaxhighlighter table{width:100% !important;}
-.syntaxhighlighter table caption{text-align:left !important;padding:.5em 0 0.5em 1em !important;}
-.syntaxhighlighter table td.code{width:100% !important;}
-.syntaxhighlighter table td.code .container{position:relative !important;}
-.syntaxhighlighter table td.code .container textarea{box-sizing:border-box !important;position:absolute !important;left:0 !important;top:0 !important;width:100% !important;height:100% !important;border:none !important;background:white !important;padding-left:1em !important;overflow:hidden !important;white-space:pre !important;}
-.syntaxhighlighter table td.gutter .line{text-align:right !important;padding:0 0.5em 0 1em !important;}
-.syntaxhighlighter table td.code .line{padding:0 1em !important;}
-.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0em !important;}
-.syntaxhighlighter.show{display:block !important;}
-.syntaxhighlighter.collapsed table{display:none !important;}
-.syntaxhighlighter.collapsed .toolbar{padding:0.1em 0.8em 0em 0.8em !important;font-size:1em !important;position:static !important;width:auto !important;height:auto !important;}
-.syntaxhighlighter.collapsed .toolbar span{display:inline !important;margin-right:1em !important;}
-.syntaxhighlighter.collapsed .toolbar span a{padding:0 !important;display:none !important;}
-.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline !important;}
-.syntaxhighlighter .toolbar{position:absolute !important;right:1px !important;top:1px !important;width:11px !important;height:11px !important;font-size:10px !important;z-index:10 !important;}
-.syntaxhighlighter .toolbar span.title{display:inline !important;}
-.syntaxhighlighter .toolbar a{display:block !important;text-align:center !important;text-decoration:none !important;padding-top:1px !important;}
-.syntaxhighlighter .toolbar a.expandSource{display:none !important;}
-.syntaxhighlighter.ie{font-size:.9em !important;padding:1px 0 1px 0 !important;}
-.syntaxhighlighter.ie .toolbar{line-height:8px !important;}
-.syntaxhighlighter.ie .toolbar a{padding-top:0px !important;}
-.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none !important;}
-.syntaxhighlighter.printing .line .number{color:#bbbbbb !important;}
-.syntaxhighlighter.printing .line .content{color:black !important;}
-.syntaxhighlighter.printing .toolbar{display:none !important;}
-.syntaxhighlighter.printing a{text-decoration:none !important;}
-.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black !important;}
-.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200 !important;}
-.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue !important;}
-.syntaxhighlighter.printing .keyword{color:#006699 !important;font-weight:bold !important;}
-.syntaxhighlighter.printing .preprocessor{color:gray !important;}
-.syntaxhighlighter.printing .variable{color:#aa7700 !important;}
-.syntaxhighlighter.printing .value{color:#009900 !important;}
-.syntaxhighlighter.printing .functions{color:#ff1493 !important;}
-.syntaxhighlighter.printing .constants{color:#0066cc !important;}
-.syntaxhighlighter.printing .script{font-weight:bold !important;}
-.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray !important;}
-.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493 !important;}
-.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red !important;}
-.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black !important;}
-.syntaxhighlighter{background-color:#0a2b1d !important;}
-.syntaxhighlighter .line.alt1{background-color:#0a2b1d !important;}
-.syntaxhighlighter .line.alt2{background-color:#0a2b1d !important;}
-.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#233729 !important;}
-.syntaxhighlighter .line.highlighted.number{color:white !important;}
-.syntaxhighlighter table caption{color:#f8f8f8 !important;}
-.syntaxhighlighter .gutter{color:#497958 !important;}
-.syntaxhighlighter .gutter .line{border-right:3px solid #41a83e !important;}
-.syntaxhighlighter .gutter .line.highlighted{background-color:#41a83e !important;color:#0a2b1d !important;}
-.syntaxhighlighter.printing .line .content{border:none !important;}
-.syntaxhighlighter.collapsed{overflow:visible !important;}
-.syntaxhighlighter.collapsed .toolbar{color:#96dd3b !important;background:black !important;border:1px solid #41a83e !important;}
-.syntaxhighlighter.collapsed .toolbar a{color:#96dd3b !important;}
-.syntaxhighlighter.collapsed .toolbar a:hover{color:white !important;}
-.syntaxhighlighter .toolbar{color:white !important;background:#41a83e !important;border:none !important;}
-.syntaxhighlighter .toolbar a{color:white !important;}
-.syntaxhighlighter .toolbar a:hover{color:#ffe862 !important;}
-.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:#f8f8f8 !important;}
-.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#336442 !important;}
-.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#9df39f !important;}
-.syntaxhighlighter .keyword{color:#96dd3b !important;}
-.syntaxhighlighter .preprocessor{color:#91bb9e !important;}
-.syntaxhighlighter .variable{color:#ffaa3e !important;}
-.syntaxhighlighter .value{color:#f7e741 !important;}
-.syntaxhighlighter .functions{color:#ffaa3e !important;}
-.syntaxhighlighter .constants{color:#e0e8ff !important;}
-.syntaxhighlighter .script{font-weight:bold !important;color:#96dd3b !important;background-color:none !important;}
-.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:#eb939a !important;}
-.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#91bb9e !important;}
-.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#edef7d !important;}
-.syntaxhighlighter .comments{font-style:italic !important;}
-.syntaxhighlighter .keyword{font-weight:bold !important;}
diff --git a/lib/vendor/PHPMailer/examples/styles/shCoreEclipse.css b/lib/vendor/PHPMailer/examples/styles/shCoreEclipse.css
deleted file mode 100644
index fc8c59d..0000000
--- a/lib/vendor/PHPMailer/examples/styles/shCoreEclipse.css
+++ /dev/null
@@ -1,80 +0,0 @@
-.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0 !important;-webkit-border-radius:0 0 0 0 !important;background:none !important;border:0 !important;bottom:auto !important;float:none !important;height:auto !important;left:auto !important;line-height:1.1em !important;margin:0 !important;outline:0 !important;overflow:visible !important;padding:0 !important;position:static !important;right:auto !important;text-align:left !important;top:auto !important;vertical-align:baseline !important;width:auto !important;box-sizing:content-box !important;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace !important;font-weight:normal !important;font-style:normal !important;font-size:1em !important;min-height:inherit !important;min-height:auto !important;}
-.syntaxhighlighter{width:100% !important;margin:1em 0 1em 0 !important;position:relative !important;overflow:auto !important;font-size:1em !important;}
-.syntaxhighlighter.source{overflow:hidden !important;}
-.syntaxhighlighter .bold{font-weight:bold !important;}
-.syntaxhighlighter .italic{font-style:italic !important;}
-.syntaxhighlighter .line{white-space:pre !important;}
-.syntaxhighlighter table{width:100% !important;}
-.syntaxhighlighter table caption{text-align:left !important;padding:.5em 0 0.5em 1em !important;}
-.syntaxhighlighter table td.code{width:100% !important;}
-.syntaxhighlighter table td.code .container{position:relative !important;}
-.syntaxhighlighter table td.code .container textarea{box-sizing:border-box !important;position:absolute !important;left:0 !important;top:0 !important;width:100% !important;height:100% !important;border:none !important;background:white !important;padding-left:1em !important;overflow:hidden !important;white-space:pre !important;}
-.syntaxhighlighter table td.gutter .line{text-align:right !important;padding:0 0.5em 0 1em !important;}
-.syntaxhighlighter table td.code .line{padding:0 1em !important;}
-.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0em !important;}
-.syntaxhighlighter.show{display:block !important;}
-.syntaxhighlighter.collapsed table{display:none !important;}
-.syntaxhighlighter.collapsed .toolbar{padding:0.1em 0.8em 0em 0.8em !important;font-size:1em !important;position:static !important;width:auto !important;height:auto !important;}
-.syntaxhighlighter.collapsed .toolbar span{display:inline !important;margin-right:1em !important;}
-.syntaxhighlighter.collapsed .toolbar span a{padding:0 !important;display:none !important;}
-.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline !important;}
-.syntaxhighlighter .toolbar{position:absolute !important;right:1px !important;top:1px !important;width:11px !important;height:11px !important;font-size:10px !important;z-index:10 !important;}
-.syntaxhighlighter .toolbar span.title{display:inline !important;}
-.syntaxhighlighter .toolbar a{display:block !important;text-align:center !important;text-decoration:none !important;padding-top:1px !important;}
-.syntaxhighlighter .toolbar a.expandSource{display:none !important;}
-.syntaxhighlighter.ie{font-size:.9em !important;padding:1px 0 1px 0 !important;}
-.syntaxhighlighter.ie .toolbar{line-height:8px !important;}
-.syntaxhighlighter.ie .toolbar a{padding-top:0px !important;}
-.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none !important;}
-.syntaxhighlighter.printing .line .number{color:#bbbbbb !important;}
-.syntaxhighlighter.printing .line .content{color:black !important;}
-.syntaxhighlighter.printing .toolbar{display:none !important;}
-.syntaxhighlighter.printing a{text-decoration:none !important;}
-.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black !important;}
-.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200 !important;}
-.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue !important;}
-.syntaxhighlighter.printing .keyword{color:#006699 !important;font-weight:bold !important;}
-.syntaxhighlighter.printing .preprocessor{color:gray !important;}
-.syntaxhighlighter.printing .variable{color:#aa7700 !important;}
-.syntaxhighlighter.printing .value{color:#009900 !important;}
-.syntaxhighlighter.printing .functions{color:#ff1493 !important;}
-.syntaxhighlighter.printing .constants{color:#0066cc !important;}
-.syntaxhighlighter.printing .script{font-weight:bold !important;}
-.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray !important;}
-.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493 !important;}
-.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red !important;}
-.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black !important;}
-.syntaxhighlighter{background-color:white !important;}
-.syntaxhighlighter .line.alt1{background-color:white !important;}
-.syntaxhighlighter .line.alt2{background-color:white !important;}
-.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#c3defe !important;}
-.syntaxhighlighter .line.highlighted.number{color:white !important;}
-.syntaxhighlighter table caption{color:black !important;}
-.syntaxhighlighter .gutter{color:#787878 !important;}
-.syntaxhighlighter .gutter .line{border-right:3px solid #d4d0c8 !important;}
-.syntaxhighlighter .gutter .line.highlighted{background-color:#d4d0c8 !important;color:white !important;}
-.syntaxhighlighter.printing .line .content{border:none !important;}
-.syntaxhighlighter.collapsed{overflow:visible !important;}
-.syntaxhighlighter.collapsed .toolbar{color:#3f5fbf !important;background:white !important;border:1px solid #d4d0c8 !important;}
-.syntaxhighlighter.collapsed .toolbar a{color:#3f5fbf !important;}
-.syntaxhighlighter.collapsed .toolbar a:hover{color:#aa7700 !important;}
-.syntaxhighlighter .toolbar{color:#a0a0a0 !important;background:#d4d0c8 !important;border:none !important;}
-.syntaxhighlighter .toolbar a{color:#a0a0a0 !important;}
-.syntaxhighlighter .toolbar a:hover{color:red !important;}
-.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:black !important;}
-.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#3f5fbf !important;}
-.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#2a00ff !important;}
-.syntaxhighlighter .keyword{color:#7f0055 !important;}
-.syntaxhighlighter .preprocessor{color:#646464 !important;}
-.syntaxhighlighter .variable{color:#aa7700 !important;}
-.syntaxhighlighter .value{color:#009900 !important;}
-.syntaxhighlighter .functions{color:#ff1493 !important;}
-.syntaxhighlighter .constants{color:#0066cc !important;}
-.syntaxhighlighter .script{font-weight:bold !important;color:#7f0055 !important;background-color:none !important;}
-.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:gray !important;}
-.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff1493 !important;}
-.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:red !important;}
-.syntaxhighlighter .keyword{font-weight:bold !important;}
-.syntaxhighlighter .xml .keyword{color:#3f7f7f !important;font-weight:normal !important;}
-.syntaxhighlighter .xml .color1,.syntaxhighlighter .xml .color1 a{color:#7f007f !important;}
-.syntaxhighlighter .xml .string{font-style:italic !important;color:#2a00ff !important;}
diff --git a/lib/vendor/PHPMailer/examples/styles/shCoreEmacs.css b/lib/vendor/PHPMailer/examples/styles/shCoreEmacs.css
deleted file mode 100644
index 4fbd325..0000000
--- a/lib/vendor/PHPMailer/examples/styles/shCoreEmacs.css
+++ /dev/null
@@ -1,76 +0,0 @@
-.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0 !important;-webkit-border-radius:0 0 0 0 !important;background:none !important;border:0 !important;bottom:auto !important;float:none !important;height:auto !important;left:auto !important;line-height:1.1em !important;margin:0 !important;outline:0 !important;overflow:visible !important;padding:0 !important;position:static !important;right:auto !important;text-align:left !important;top:auto !important;vertical-align:baseline !important;width:auto !important;box-sizing:content-box !important;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace !important;font-weight:normal !important;font-style:normal !important;font-size:1em !important;min-height:inherit !important;min-height:auto !important;}
-.syntaxhighlighter{width:100% !important;margin:1em 0 1em 0 !important;position:relative !important;overflow:auto !important;font-size:1em !important;}
-.syntaxhighlighter.source{overflow:hidden !important;}
-.syntaxhighlighter .bold{font-weight:bold !important;}
-.syntaxhighlighter .italic{font-style:italic !important;}
-.syntaxhighlighter .line{white-space:pre !important;}
-.syntaxhighlighter table{width:100% !important;}
-.syntaxhighlighter table caption{text-align:left !important;padding:.5em 0 0.5em 1em !important;}
-.syntaxhighlighter table td.code{width:100% !important;}
-.syntaxhighlighter table td.code .container{position:relative !important;}
-.syntaxhighlighter table td.code .container textarea{box-sizing:border-box !important;position:absolute !important;left:0 !important;top:0 !important;width:100% !important;height:100% !important;border:none !important;background:white !important;padding-left:1em !important;overflow:hidden !important;white-space:pre !important;}
-.syntaxhighlighter table td.gutter .line{text-align:right !important;padding:0 0.5em 0 1em !important;}
-.syntaxhighlighter table td.code .line{padding:0 1em !important;}
-.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0em !important;}
-.syntaxhighlighter.show{display:block !important;}
-.syntaxhighlighter.collapsed table{display:none !important;}
-.syntaxhighlighter.collapsed .toolbar{padding:0.1em 0.8em 0em 0.8em !important;font-size:1em !important;position:static !important;width:auto !important;height:auto !important;}
-.syntaxhighlighter.collapsed .toolbar span{display:inline !important;margin-right:1em !important;}
-.syntaxhighlighter.collapsed .toolbar span a{padding:0 !important;display:none !important;}
-.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline !important;}
-.syntaxhighlighter .toolbar{position:absolute !important;right:1px !important;top:1px !important;width:11px !important;height:11px !important;font-size:10px !important;z-index:10 !important;}
-.syntaxhighlighter .toolbar span.title{display:inline !important;}
-.syntaxhighlighter .toolbar a{display:block !important;text-align:center !important;text-decoration:none !important;padding-top:1px !important;}
-.syntaxhighlighter .toolbar a.expandSource{display:none !important;}
-.syntaxhighlighter.ie{font-size:.9em !important;padding:1px 0 1px 0 !important;}
-.syntaxhighlighter.ie .toolbar{line-height:8px !important;}
-.syntaxhighlighter.ie .toolbar a{padding-top:0px !important;}
-.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none !important;}
-.syntaxhighlighter.printing .line .number{color:#bbbbbb !important;}
-.syntaxhighlighter.printing .line .content{color:black !important;}
-.syntaxhighlighter.printing .toolbar{display:none !important;}
-.syntaxhighlighter.printing a{text-decoration:none !important;}
-.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black !important;}
-.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200 !important;}
-.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue !important;}
-.syntaxhighlighter.printing .keyword{color:#006699 !important;font-weight:bold !important;}
-.syntaxhighlighter.printing .preprocessor{color:gray !important;}
-.syntaxhighlighter.printing .variable{color:#aa7700 !important;}
-.syntaxhighlighter.printing .value{color:#009900 !important;}
-.syntaxhighlighter.printing .functions{color:#ff1493 !important;}
-.syntaxhighlighter.printing .constants{color:#0066cc !important;}
-.syntaxhighlighter.printing .script{font-weight:bold !important;}
-.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray !important;}
-.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493 !important;}
-.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red !important;}
-.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black !important;}
-.syntaxhighlighter{background-color:black !important;}
-.syntaxhighlighter .line.alt1{background-color:black !important;}
-.syntaxhighlighter .line.alt2{background-color:black !important;}
-.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#2a3133 !important;}
-.syntaxhighlighter .line.highlighted.number{color:white !important;}
-.syntaxhighlighter table caption{color:#d3d3d3 !important;}
-.syntaxhighlighter .gutter{color:#d3d3d3 !important;}
-.syntaxhighlighter .gutter .line{border-right:3px solid #990000 !important;}
-.syntaxhighlighter .gutter .line.highlighted{background-color:#990000 !important;color:black !important;}
-.syntaxhighlighter.printing .line .content{border:none !important;}
-.syntaxhighlighter.collapsed{overflow:visible !important;}
-.syntaxhighlighter.collapsed .toolbar{color:#ebdb8d !important;background:black !important;border:1px solid #990000 !important;}
-.syntaxhighlighter.collapsed .toolbar a{color:#ebdb8d !important;}
-.syntaxhighlighter.collapsed .toolbar a:hover{color:#ff7d27 !important;}
-.syntaxhighlighter .toolbar{color:white !important;background:#990000 !important;border:none !important;}
-.syntaxhighlighter .toolbar a{color:white !important;}
-.syntaxhighlighter .toolbar a:hover{color:#9ccff4 !important;}
-.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:#d3d3d3 !important;}
-.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#ff7d27 !important;}
-.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#ff9e7b !important;}
-.syntaxhighlighter .keyword{color:aqua !important;}
-.syntaxhighlighter .preprocessor{color:#aec4de !important;}
-.syntaxhighlighter .variable{color:#ffaa3e !important;}
-.syntaxhighlighter .value{color:#009900 !important;}
-.syntaxhighlighter .functions{color:#81cef9 !important;}
-.syntaxhighlighter .constants{color:#ff9e7b !important;}
-.syntaxhighlighter .script{font-weight:bold !important;color:aqua !important;background-color:none !important;}
-.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:#ebdb8d !important;}
-.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff7d27 !important;}
-.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#aec4de !important;}
diff --git a/lib/vendor/PHPMailer/examples/styles/shCoreFadeToGrey.css b/lib/vendor/PHPMailer/examples/styles/shCoreFadeToGrey.css
deleted file mode 100644
index 398d6ee..0000000
--- a/lib/vendor/PHPMailer/examples/styles/shCoreFadeToGrey.css
+++ /dev/null
@@ -1,77 +0,0 @@
-.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0 !important;-webkit-border-radius:0 0 0 0 !important;background:none !important;border:0 !important;bottom:auto !important;float:none !important;height:auto !important;left:auto !important;line-height:1.1em !important;margin:0 !important;outline:0 !important;overflow:visible !important;padding:0 !important;position:static !important;right:auto !important;text-align:left !important;top:auto !important;vertical-align:baseline !important;width:auto !important;box-sizing:content-box !important;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace !important;font-weight:normal !important;font-style:normal !important;font-size:1em !important;min-height:inherit !important;min-height:auto !important;}
-.syntaxhighlighter{width:100% !important;margin:1em 0 1em 0 !important;position:relative !important;overflow:auto !important;font-size:1em !important;}
-.syntaxhighlighter.source{overflow:hidden !important;}
-.syntaxhighlighter .bold{font-weight:bold !important;}
-.syntaxhighlighter .italic{font-style:italic !important;}
-.syntaxhighlighter .line{white-space:pre !important;}
-.syntaxhighlighter table{width:100% !important;}
-.syntaxhighlighter table caption{text-align:left !important;padding:.5em 0 0.5em 1em !important;}
-.syntaxhighlighter table td.code{width:100% !important;}
-.syntaxhighlighter table td.code .container{position:relative !important;}
-.syntaxhighlighter table td.code .container textarea{box-sizing:border-box !important;position:absolute !important;left:0 !important;top:0 !important;width:100% !important;height:100% !important;border:none !important;background:white !important;padding-left:1em !important;overflow:hidden !important;white-space:pre !important;}
-.syntaxhighlighter table td.gutter .line{text-align:right !important;padding:0 0.5em 0 1em !important;}
-.syntaxhighlighter table td.code .line{padding:0 1em !important;}
-.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0em !important;}
-.syntaxhighlighter.show{display:block !important;}
-.syntaxhighlighter.collapsed table{display:none !important;}
-.syntaxhighlighter.collapsed .toolbar{padding:0.1em 0.8em 0em 0.8em !important;font-size:1em !important;position:static !important;width:auto !important;height:auto !important;}
-.syntaxhighlighter.collapsed .toolbar span{display:inline !important;margin-right:1em !important;}
-.syntaxhighlighter.collapsed .toolbar span a{padding:0 !important;display:none !important;}
-.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline !important;}
-.syntaxhighlighter .toolbar{position:absolute !important;right:1px !important;top:1px !important;width:11px !important;height:11px !important;font-size:10px !important;z-index:10 !important;}
-.syntaxhighlighter .toolbar span.title{display:inline !important;}
-.syntaxhighlighter .toolbar a{display:block !important;text-align:center !important;text-decoration:none !important;padding-top:1px !important;}
-.syntaxhighlighter .toolbar a.expandSource{display:none !important;}
-.syntaxhighlighter.ie{font-size:.9em !important;padding:1px 0 1px 0 !important;}
-.syntaxhighlighter.ie .toolbar{line-height:8px !important;}
-.syntaxhighlighter.ie .toolbar a{padding-top:0px !important;}
-.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none !important;}
-.syntaxhighlighter.printing .line .number{color:#bbbbbb !important;}
-.syntaxhighlighter.printing .line .content{color:black !important;}
-.syntaxhighlighter.printing .toolbar{display:none !important;}
-.syntaxhighlighter.printing a{text-decoration:none !important;}
-.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black !important;}
-.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200 !important;}
-.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue !important;}
-.syntaxhighlighter.printing .keyword{color:#006699 !important;font-weight:bold !important;}
-.syntaxhighlighter.printing .preprocessor{color:gray !important;}
-.syntaxhighlighter.printing .variable{color:#aa7700 !important;}
-.syntaxhighlighter.printing .value{color:#009900 !important;}
-.syntaxhighlighter.printing .functions{color:#ff1493 !important;}
-.syntaxhighlighter.printing .constants{color:#0066cc !important;}
-.syntaxhighlighter.printing .script{font-weight:bold !important;}
-.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray !important;}
-.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493 !important;}
-.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red !important;}
-.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black !important;}
-.syntaxhighlighter{background-color:#121212 !important;}
-.syntaxhighlighter .line.alt1{background-color:#121212 !important;}
-.syntaxhighlighter .line.alt2{background-color:#121212 !important;}
-.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#2c2c29 !important;}
-.syntaxhighlighter .line.highlighted.number{color:white !important;}
-.syntaxhighlighter table caption{color:white !important;}
-.syntaxhighlighter .gutter{color:#afafaf !important;}
-.syntaxhighlighter .gutter .line{border-right:3px solid #3185b9 !important;}
-.syntaxhighlighter .gutter .line.highlighted{background-color:#3185b9 !important;color:#121212 !important;}
-.syntaxhighlighter.printing .line .content{border:none !important;}
-.syntaxhighlighter.collapsed{overflow:visible !important;}
-.syntaxhighlighter.collapsed .toolbar{color:#3185b9 !important;background:black !important;border:1px solid #3185b9 !important;}
-.syntaxhighlighter.collapsed .toolbar a{color:#3185b9 !important;}
-.syntaxhighlighter.collapsed .toolbar a:hover{color:#d01d33 !important;}
-.syntaxhighlighter .toolbar{color:white !important;background:#3185b9 !important;border:none !important;}
-.syntaxhighlighter .toolbar a{color:white !important;}
-.syntaxhighlighter .toolbar a:hover{color:#96daff !important;}
-.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:white !important;}
-.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#696854 !important;}
-.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#e3e658 !important;}
-.syntaxhighlighter .keyword{color:#d01d33 !important;}
-.syntaxhighlighter .preprocessor{color:#435a5f !important;}
-.syntaxhighlighter .variable{color:#898989 !important;}
-.syntaxhighlighter .value{color:#009900 !important;}
-.syntaxhighlighter .functions{color:#aaaaaa !important;}
-.syntaxhighlighter .constants{color:#96daff !important;}
-.syntaxhighlighter .script{font-weight:bold !important;color:#d01d33 !important;background-color:none !important;}
-.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:#ffc074 !important;}
-.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#4a8cdb !important;}
-.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#96daff !important;}
-.syntaxhighlighter .functions{font-weight:bold !important;}
diff --git a/lib/vendor/PHPMailer/examples/styles/shCoreMDUltra.css b/lib/vendor/PHPMailer/examples/styles/shCoreMDUltra.css
deleted file mode 100644
index 87a3cc2..0000000
--- a/lib/vendor/PHPMailer/examples/styles/shCoreMDUltra.css
+++ /dev/null
@@ -1,76 +0,0 @@
-.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0 !important;-webkit-border-radius:0 0 0 0 !important;background:none !important;border:0 !important;bottom:auto !important;float:none !important;height:auto !important;left:auto !important;line-height:1.1em !important;margin:0 !important;outline:0 !important;overflow:visible !important;padding:0 !important;position:static !important;right:auto !important;text-align:left !important;top:auto !important;vertical-align:baseline !important;width:auto !important;box-sizing:content-box !important;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace !important;font-weight:normal !important;font-style:normal !important;font-size:1em !important;min-height:inherit !important;min-height:auto !important;}
-.syntaxhighlighter{width:100% !important;margin:1em 0 1em 0 !important;position:relative !important;overflow:auto !important;font-size:1em !important;}
-.syntaxhighlighter.source{overflow:hidden !important;}
-.syntaxhighlighter .bold{font-weight:bold !important;}
-.syntaxhighlighter .italic{font-style:italic !important;}
-.syntaxhighlighter .line{white-space:pre !important;}
-.syntaxhighlighter table{width:100% !important;}
-.syntaxhighlighter table caption{text-align:left !important;padding:.5em 0 0.5em 1em !important;}
-.syntaxhighlighter table td.code{width:100% !important;}
-.syntaxhighlighter table td.code .container{position:relative !important;}
-.syntaxhighlighter table td.code .container textarea{box-sizing:border-box !important;position:absolute !important;left:0 !important;top:0 !important;width:100% !important;height:100% !important;border:none !important;background:white !important;padding-left:1em !important;overflow:hidden !important;white-space:pre !important;}
-.syntaxhighlighter table td.gutter .line{text-align:right !important;padding:0 0.5em 0 1em !important;}
-.syntaxhighlighter table td.code .line{padding:0 1em !important;}
-.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0em !important;}
-.syntaxhighlighter.show{display:block !important;}
-.syntaxhighlighter.collapsed table{display:none !important;}
-.syntaxhighlighter.collapsed .toolbar{padding:0.1em 0.8em 0em 0.8em !important;font-size:1em !important;position:static !important;width:auto !important;height:auto !important;}
-.syntaxhighlighter.collapsed .toolbar span{display:inline !important;margin-right:1em !important;}
-.syntaxhighlighter.collapsed .toolbar span a{padding:0 !important;display:none !important;}
-.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline !important;}
-.syntaxhighlighter .toolbar{position:absolute !important;right:1px !important;top:1px !important;width:11px !important;height:11px !important;font-size:10px !important;z-index:10 !important;}
-.syntaxhighlighter .toolbar span.title{display:inline !important;}
-.syntaxhighlighter .toolbar a{display:block !important;text-align:center !important;text-decoration:none !important;padding-top:1px !important;}
-.syntaxhighlighter .toolbar a.expandSource{display:none !important;}
-.syntaxhighlighter.ie{font-size:.9em !important;padding:1px 0 1px 0 !important;}
-.syntaxhighlighter.ie .toolbar{line-height:8px !important;}
-.syntaxhighlighter.ie .toolbar a{padding-top:0px !important;}
-.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none !important;}
-.syntaxhighlighter.printing .line .number{color:#bbbbbb !important;}
-.syntaxhighlighter.printing .line .content{color:black !important;}
-.syntaxhighlighter.printing .toolbar{display:none !important;}
-.syntaxhighlighter.printing a{text-decoration:none !important;}
-.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black !important;}
-.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200 !important;}
-.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue !important;}
-.syntaxhighlighter.printing .keyword{color:#006699 !important;font-weight:bold !important;}
-.syntaxhighlighter.printing .preprocessor{color:gray !important;}
-.syntaxhighlighter.printing .variable{color:#aa7700 !important;}
-.syntaxhighlighter.printing .value{color:#009900 !important;}
-.syntaxhighlighter.printing .functions{color:#ff1493 !important;}
-.syntaxhighlighter.printing .constants{color:#0066cc !important;}
-.syntaxhighlighter.printing .script{font-weight:bold !important;}
-.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray !important;}
-.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493 !important;}
-.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red !important;}
-.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black !important;}
-.syntaxhighlighter{background-color:#222222 !important;}
-.syntaxhighlighter .line.alt1{background-color:#222222 !important;}
-.syntaxhighlighter .line.alt2{background-color:#222222 !important;}
-.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#253e5a !important;}
-.syntaxhighlighter .line.highlighted.number{color:white !important;}
-.syntaxhighlighter table caption{color:lime !important;}
-.syntaxhighlighter .gutter{color:#38566f !important;}
-.syntaxhighlighter .gutter .line{border-right:3px solid #435a5f !important;}
-.syntaxhighlighter .gutter .line.highlighted{background-color:#435a5f !important;color:#222222 !important;}
-.syntaxhighlighter.printing .line .content{border:none !important;}
-.syntaxhighlighter.collapsed{overflow:visible !important;}
-.syntaxhighlighter.collapsed .toolbar{color:#428bdd !important;background:black !important;border:1px solid #435a5f !important;}
-.syntaxhighlighter.collapsed .toolbar a{color:#428bdd !important;}
-.syntaxhighlighter.collapsed .toolbar a:hover{color:lime !important;}
-.syntaxhighlighter .toolbar{color:#aaaaff !important;background:#435a5f !important;border:none !important;}
-.syntaxhighlighter .toolbar a{color:#aaaaff !important;}
-.syntaxhighlighter .toolbar a:hover{color:#9ccff4 !important;}
-.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:lime !important;}
-.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#428bdd !important;}
-.syntaxhighlighter .string,.syntaxhighlighter .string a{color:lime !important;}
-.syntaxhighlighter .keyword{color:#aaaaff !important;}
-.syntaxhighlighter .preprocessor{color:#8aa6c1 !important;}
-.syntaxhighlighter .variable{color:aqua !important;}
-.syntaxhighlighter .value{color:#f7e741 !important;}
-.syntaxhighlighter .functions{color:#ff8000 !important;}
-.syntaxhighlighter .constants{color:yellow !important;}
-.syntaxhighlighter .script{font-weight:bold !important;color:#aaaaff !important;background-color:none !important;}
-.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:red !important;}
-.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:yellow !important;}
-.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#ffaa3e !important;}
diff --git a/lib/vendor/PHPMailer/examples/styles/shCoreMidnight.css b/lib/vendor/PHPMailer/examples/styles/shCoreMidnight.css
deleted file mode 100644
index 3c02103..0000000
--- a/lib/vendor/PHPMailer/examples/styles/shCoreMidnight.css
+++ /dev/null
@@ -1,76 +0,0 @@
-.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0 !important;-webkit-border-radius:0 0 0 0 !important;background:none !important;border:0 !important;bottom:auto !important;float:none !important;height:auto !important;left:auto !important;line-height:1.1em !important;margin:0 !important;outline:0 !important;overflow:visible !important;padding:0 !important;position:static !important;right:auto !important;text-align:left !important;top:auto !important;vertical-align:baseline !important;width:auto !important;box-sizing:content-box !important;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace !important;font-weight:normal !important;font-style:normal !important;font-size:1em !important;min-height:inherit !important;min-height:auto !important;}
-.syntaxhighlighter{width:100% !important;margin:1em 0 1em 0 !important;position:relative !important;overflow:auto !important;font-size:1em !important;}
-.syntaxhighlighter.source{overflow:hidden !important;}
-.syntaxhighlighter .bold{font-weight:bold !important;}
-.syntaxhighlighter .italic{font-style:italic !important;}
-.syntaxhighlighter .line{white-space:pre !important;}
-.syntaxhighlighter table{width:100% !important;}
-.syntaxhighlighter table caption{text-align:left !important;padding:.5em 0 0.5em 1em !important;}
-.syntaxhighlighter table td.code{width:100% !important;}
-.syntaxhighlighter table td.code .container{position:relative !important;}
-.syntaxhighlighter table td.code .container textarea{box-sizing:border-box !important;position:absolute !important;left:0 !important;top:0 !important;width:100% !important;height:100% !important;border:none !important;background:white !important;padding-left:1em !important;overflow:hidden !important;white-space:pre !important;}
-.syntaxhighlighter table td.gutter .line{text-align:right !important;padding:0 0.5em 0 1em !important;}
-.syntaxhighlighter table td.code .line{padding:0 1em !important;}
-.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0em !important;}
-.syntaxhighlighter.show{display:block !important;}
-.syntaxhighlighter.collapsed table{display:none !important;}
-.syntaxhighlighter.collapsed .toolbar{padding:0.1em 0.8em 0em 0.8em !important;font-size:1em !important;position:static !important;width:auto !important;height:auto !important;}
-.syntaxhighlighter.collapsed .toolbar span{display:inline !important;margin-right:1em !important;}
-.syntaxhighlighter.collapsed .toolbar span a{padding:0 !important;display:none !important;}
-.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline !important;}
-.syntaxhighlighter .toolbar{position:absolute !important;right:1px !important;top:1px !important;width:11px !important;height:11px !important;font-size:10px !important;z-index:10 !important;}
-.syntaxhighlighter .toolbar span.title{display:inline !important;}
-.syntaxhighlighter .toolbar a{display:block !important;text-align:center !important;text-decoration:none !important;padding-top:1px !important;}
-.syntaxhighlighter .toolbar a.expandSource{display:none !important;}
-.syntaxhighlighter.ie{font-size:.9em !important;padding:1px 0 1px 0 !important;}
-.syntaxhighlighter.ie .toolbar{line-height:8px !important;}
-.syntaxhighlighter.ie .toolbar a{padding-top:0px !important;}
-.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none !important;}
-.syntaxhighlighter.printing .line .number{color:#bbbbbb !important;}
-.syntaxhighlighter.printing .line .content{color:black !important;}
-.syntaxhighlighter.printing .toolbar{display:none !important;}
-.syntaxhighlighter.printing a{text-decoration:none !important;}
-.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black !important;}
-.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200 !important;}
-.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue !important;}
-.syntaxhighlighter.printing .keyword{color:#006699 !important;font-weight:bold !important;}
-.syntaxhighlighter.printing .preprocessor{color:gray !important;}
-.syntaxhighlighter.printing .variable{color:#aa7700 !important;}
-.syntaxhighlighter.printing .value{color:#009900 !important;}
-.syntaxhighlighter.printing .functions{color:#ff1493 !important;}
-.syntaxhighlighter.printing .constants{color:#0066cc !important;}
-.syntaxhighlighter.printing .script{font-weight:bold !important;}
-.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray !important;}
-.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493 !important;}
-.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red !important;}
-.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black !important;}
-.syntaxhighlighter{background-color:#0f192a !important;}
-.syntaxhighlighter .line.alt1{background-color:#0f192a !important;}
-.syntaxhighlighter .line.alt2{background-color:#0f192a !important;}
-.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#253e5a !important;}
-.syntaxhighlighter .line.highlighted.number{color:#38566f !important;}
-.syntaxhighlighter table caption{color:#d1edff !important;}
-.syntaxhighlighter .gutter{color:#afafaf !important;}
-.syntaxhighlighter .gutter .line{border-right:3px solid #435a5f !important;}
-.syntaxhighlighter .gutter .line.highlighted{background-color:#435a5f !important;color:#0f192a !important;}
-.syntaxhighlighter.printing .line .content{border:none !important;}
-.syntaxhighlighter.collapsed{overflow:visible !important;}
-.syntaxhighlighter.collapsed .toolbar{color:#428bdd !important;background:black !important;border:1px solid #435a5f !important;}
-.syntaxhighlighter.collapsed .toolbar a{color:#428bdd !important;}
-.syntaxhighlighter.collapsed .toolbar a:hover{color:#1dc116 !important;}
-.syntaxhighlighter .toolbar{color:#d1edff !important;background:#435a5f !important;border:none !important;}
-.syntaxhighlighter .toolbar a{color:#d1edff !important;}
-.syntaxhighlighter .toolbar a:hover{color:#8aa6c1 !important;}
-.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:#d1edff !important;}
-.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#428bdd !important;}
-.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#1dc116 !important;}
-.syntaxhighlighter .keyword{color:#b43d3d !important;}
-.syntaxhighlighter .preprocessor{color:#8aa6c1 !important;}
-.syntaxhighlighter .variable{color:#ffaa3e !important;}
-.syntaxhighlighter .value{color:#f7e741 !important;}
-.syntaxhighlighter .functions{color:#ffaa3e !important;}
-.syntaxhighlighter .constants{color:#e0e8ff !important;}
-.syntaxhighlighter .script{font-weight:bold !important;color:#b43d3d !important;background-color:none !important;}
-.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:#f8bb00 !important;}
-.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:white !important;}
-.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#ffaa3e !important;}
diff --git a/lib/vendor/PHPMailer/examples/styles/shCoreRDark.css b/lib/vendor/PHPMailer/examples/styles/shCoreRDark.css
deleted file mode 100644
index f5b7b47..0000000
--- a/lib/vendor/PHPMailer/examples/styles/shCoreRDark.css
+++ /dev/null
@@ -1,76 +0,0 @@
-.syntaxhighlighter a,.syntaxhighlighter div,.syntaxhighlighter code,.syntaxhighlighter table,.syntaxhighlighter table td,.syntaxhighlighter table tr,.syntaxhighlighter table tbody,.syntaxhighlighter table thead,.syntaxhighlighter table caption,.syntaxhighlighter textarea{-moz-border-radius:0 0 0 0 !important;-webkit-border-radius:0 0 0 0 !important;background:none !important;border:0 !important;bottom:auto !important;float:none !important;height:auto !important;left:auto !important;line-height:1.1em !important;margin:0 !important;outline:0 !important;overflow:visible !important;padding:0 !important;position:static !important;right:auto !important;text-align:left !important;top:auto !important;vertical-align:baseline !important;width:auto !important;box-sizing:content-box !important;font-family:"Consolas","Bitstream Vera Sans Mono","Courier New",Courier,monospace !important;font-weight:normal !important;font-style:normal !important;font-size:1em !important;min-height:inherit !important;min-height:auto !important;}
-.syntaxhighlighter{width:100% !important;margin:1em 0 1em 0 !important;position:relative !important;overflow:auto !important;font-size:1em !important;}
-.syntaxhighlighter.source{overflow:hidden !important;}
-.syntaxhighlighter .bold{font-weight:bold !important;}
-.syntaxhighlighter .italic{font-style:italic !important;}
-.syntaxhighlighter .line{white-space:pre !important;}
-.syntaxhighlighter table{width:100% !important;}
-.syntaxhighlighter table caption{text-align:left !important;padding:.5em 0 0.5em 1em !important;}
-.syntaxhighlighter table td.code{width:100% !important;}
-.syntaxhighlighter table td.code .container{position:relative !important;}
-.syntaxhighlighter table td.code .container textarea{box-sizing:border-box !important;position:absolute !important;left:0 !important;top:0 !important;width:100% !important;height:100% !important;border:none !important;background:white !important;padding-left:1em !important;overflow:hidden !important;white-space:pre !important;}
-.syntaxhighlighter table td.gutter .line{text-align:right !important;padding:0 0.5em 0 1em !important;}
-.syntaxhighlighter table td.code .line{padding:0 1em !important;}
-.syntaxhighlighter.nogutter td.code .container textarea,.syntaxhighlighter.nogutter td.code .line{padding-left:0em !important;}
-.syntaxhighlighter.show{display:block !important;}
-.syntaxhighlighter.collapsed table{display:none !important;}
-.syntaxhighlighter.collapsed .toolbar{padding:0.1em 0.8em 0em 0.8em !important;font-size:1em !important;position:static !important;width:auto !important;height:auto !important;}
-.syntaxhighlighter.collapsed .toolbar span{display:inline !important;margin-right:1em !important;}
-.syntaxhighlighter.collapsed .toolbar span a{padding:0 !important;display:none !important;}
-.syntaxhighlighter.collapsed .toolbar span a.expandSource{display:inline !important;}
-.syntaxhighlighter .toolbar{position:absolute !important;right:1px !important;top:1px !important;width:11px !important;height:11px !important;font-size:10px !important;z-index:10 !important;}
-.syntaxhighlighter .toolbar span.title{display:inline !important;}
-.syntaxhighlighter .toolbar a{display:block !important;text-align:center !important;text-decoration:none !important;padding-top:1px !important;}
-.syntaxhighlighter .toolbar a.expandSource{display:none !important;}
-.syntaxhighlighter.ie{font-size:.9em !important;padding:1px 0 1px 0 !important;}
-.syntaxhighlighter.ie .toolbar{line-height:8px !important;}
-.syntaxhighlighter.ie .toolbar a{padding-top:0px !important;}
-.syntaxhighlighter.printing .line.alt1 .content,.syntaxhighlighter.printing .line.alt2 .content,.syntaxhighlighter.printing .line.highlighted .number,.syntaxhighlighter.printing .line.highlighted.alt1 .content,.syntaxhighlighter.printing .line.highlighted.alt2 .content{background:none !important;}
-.syntaxhighlighter.printing .line .number{color:#bbbbbb !important;}
-.syntaxhighlighter.printing .line .content{color:black !important;}
-.syntaxhighlighter.printing .toolbar{display:none !important;}
-.syntaxhighlighter.printing a{text-decoration:none !important;}
-.syntaxhighlighter.printing .plain,.syntaxhighlighter.printing .plain a{color:black !important;}
-.syntaxhighlighter.printing .comments,.syntaxhighlighter.printing .comments a{color:#008200 !important;}
-.syntaxhighlighter.printing .string,.syntaxhighlighter.printing .string a{color:blue !important;}
-.syntaxhighlighter.printing .keyword{color:#006699 !important;font-weight:bold !important;}
-.syntaxhighlighter.printing .preprocessor{color:gray !important;}
-.syntaxhighlighter.printing .variable{color:#aa7700 !important;}
-.syntaxhighlighter.printing .value{color:#009900 !important;}
-.syntaxhighlighter.printing .functions{color:#ff1493 !important;}
-.syntaxhighlighter.printing .constants{color:#0066cc !important;}
-.syntaxhighlighter.printing .script{font-weight:bold !important;}
-.syntaxhighlighter.printing .color1,.syntaxhighlighter.printing .color1 a{color:gray !important;}
-.syntaxhighlighter.printing .color2,.syntaxhighlighter.printing .color2 a{color:#ff1493 !important;}
-.syntaxhighlighter.printing .color3,.syntaxhighlighter.printing .color3 a{color:red !important;}
-.syntaxhighlighter.printing .break,.syntaxhighlighter.printing .break a{color:black !important;}
-.syntaxhighlighter{background-color:#1b2426 !important;}
-.syntaxhighlighter .line.alt1{background-color:#1b2426 !important;}
-.syntaxhighlighter .line.alt2{background-color:#1b2426 !important;}
-.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#323e41 !important;}
-.syntaxhighlighter .line.highlighted.number{color:#b9bdb6 !important;}
-.syntaxhighlighter table caption{color:#b9bdb6 !important;}
-.syntaxhighlighter .gutter{color:#afafaf !important;}
-.syntaxhighlighter .gutter .line{border-right:3px solid #435a5f !important;}
-.syntaxhighlighter .gutter .line.highlighted{background-color:#435a5f !important;color:#1b2426 !important;}
-.syntaxhighlighter.printing .line .content{border:none !important;}
-.syntaxhighlighter.collapsed{overflow:visible !important;}
-.syntaxhighlighter.collapsed .toolbar{color:#5ba1cf !important;background:black !important;border:1px solid #435a5f !important;}
-.syntaxhighlighter.collapsed .toolbar a{color:#5ba1cf !important;}
-.syntaxhighlighter.collapsed .toolbar a:hover{color:#5ce638 !important;}
-.syntaxhighlighter .toolbar{color:white !important;background:#435a5f !important;border:none !important;}
-.syntaxhighlighter .toolbar a{color:white !important;}
-.syntaxhighlighter .toolbar a:hover{color:#e0e8ff !important;}
-.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:#b9bdb6 !important;}
-.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#878a85 !important;}
-.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#5ce638 !important;}
-.syntaxhighlighter .keyword{color:#5ba1cf !important;}
-.syntaxhighlighter .preprocessor{color:#435a5f !important;}
-.syntaxhighlighter .variable{color:#ffaa3e !important;}
-.syntaxhighlighter .value{color:#009900 !important;}
-.syntaxhighlighter .functions{color:#ffaa3e !important;}
-.syntaxhighlighter .constants{color:#e0e8ff !important;}
-.syntaxhighlighter .script{font-weight:bold !important;color:#5ba1cf !important;background-color:none !important;}
-.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:#e0e8ff !important;}
-.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:white !important;}
-.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#ffaa3e !important;}
diff --git a/lib/vendor/PHPMailer/examples/styles/shThemeAppleScript.css b/lib/vendor/PHPMailer/examples/styles/shThemeAppleScript.css
deleted file mode 100644
index 7881bad..0000000
--- a/lib/vendor/PHPMailer/examples/styles/shThemeAppleScript.css
+++ /dev/null
@@ -1,21 +0,0 @@
-.syntaxhighlighter.applescript{background:white;font-size:1em;color:black;}
-.syntaxhighlighter.applescript div,.syntaxhighlighter.applescript code{font:1em/1.25 Verdana,sans-serif !important;}
-.syntaxhighlighter.applescript .code .line{overflow:hidden !important;}
-.syntaxhighlighter.applescript .code .line.highlighted{background:#b5d5ff !important;}
-.syntaxhighlighter.applescript .color1{color:#000000 !important;}
-.syntaxhighlighter.applescript .color2{color:#000000 !important;}
-.syntaxhighlighter.applescript .color3{color:#000000 !important;font-weight:bold !important;}
-.syntaxhighlighter.applescript .keyword{color:#000000 !important;font-weight:bold !important;}
-.syntaxhighlighter.applescript .color4{color:#0000ff !important;font-style:italic !important;}
-.syntaxhighlighter.applescript .comments{color:#4c4d4d !important;}
-.syntaxhighlighter.applescript .plain{color:#408000 !important;}
-.syntaxhighlighter.applescript .string{color:#000000 !important;}
-.syntaxhighlighter.applescript .commandNames{color:#0000ff !important;font-weight:bold !important;}
-.syntaxhighlighter.applescript .parameterNames{color:#0000ff !important;}
-.syntaxhighlighter.applescript .classes{color:#0000ff !important;font-style:italic !important;}
-.syntaxhighlighter.applescript .properties{color:#6c04d4 !important;}
-.syntaxhighlighter.applescript .enumeratedValues{color:#4a1e7f !important;}
-.syntaxhighlighter.applescript .additionCommandNames{color:#0016b0 !important;font-weight:bold !important;}
-.syntaxhighlighter.applescript .additionParameterNames{color:#0016b0 !important;}
-.syntaxhighlighter.applescript .additionClasses{color:#0016b0 !important;font-style:italic !important;}
-.syntaxhighlighter.applescript .spaces{display:inline-block;height:0 !important;font-size:1.75em !important;line-height:0 !important;}
diff --git a/lib/vendor/PHPMailer/examples/styles/shThemeDefault.css b/lib/vendor/PHPMailer/examples/styles/shThemeDefault.css
deleted file mode 100644
index 8034517..0000000
--- a/lib/vendor/PHPMailer/examples/styles/shThemeDefault.css
+++ /dev/null
@@ -1,31 +0,0 @@
-.syntaxhighlighter{background-color:white !important;}
-.syntaxhighlighter .line.alt1{background-color:white !important;}
-.syntaxhighlighter .line.alt2{background-color:white !important;}
-.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#e0e0e0 !important;}
-.syntaxhighlighter .line.highlighted.number{color:black !important;}
-.syntaxhighlighter table caption{color:black !important;}
-.syntaxhighlighter .gutter{color:#afafaf !important;}
-.syntaxhighlighter .gutter .line{border-right:3px solid #6ce26c !important;}
-.syntaxhighlighter .gutter .line.highlighted{background-color:#6ce26c !important;color:white !important;}
-.syntaxhighlighter.printing .line .content{border:none !important;}
-.syntaxhighlighter.collapsed{overflow:visible !important;}
-.syntaxhighlighter.collapsed .toolbar{color:blue !important;background:white !important;border:1px solid #6ce26c !important;}
-.syntaxhighlighter.collapsed .toolbar a{color:blue !important;}
-.syntaxhighlighter.collapsed .toolbar a:hover{color:red !important;}
-.syntaxhighlighter .toolbar{color:white !important;background:#6ce26c !important;border:none !important;}
-.syntaxhighlighter .toolbar a{color:white !important;}
-.syntaxhighlighter .toolbar a:hover{color:black !important;}
-.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:black !important;}
-.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#008200 !important;}
-.syntaxhighlighter .string,.syntaxhighlighter .string a{color:blue !important;}
-.syntaxhighlighter .keyword{color:#006699 !important;}
-.syntaxhighlighter .preprocessor{color:gray !important;}
-.syntaxhighlighter .variable{color:#aa7700 !important;}
-.syntaxhighlighter .value{color:#009900 !important;}
-.syntaxhighlighter .functions{color:#ff1493 !important;}
-.syntaxhighlighter .constants{color:#0066cc !important;}
-.syntaxhighlighter .script{font-weight:bold !important;color:#006699 !important;background-color:none !important;}
-.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:gray !important;}
-.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff1493 !important;}
-.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:red !important;}
-.syntaxhighlighter .keyword{font-weight:bold !important;}
diff --git a/lib/vendor/PHPMailer/examples/styles/shThemeDjango.css b/lib/vendor/PHPMailer/examples/styles/shThemeDjango.css
deleted file mode 100644
index 5cb724f..0000000
--- a/lib/vendor/PHPMailer/examples/styles/shThemeDjango.css
+++ /dev/null
@@ -1,32 +0,0 @@
-.syntaxhighlighter{background-color:#0a2b1d !important;}
-.syntaxhighlighter .line.alt1{background-color:#0a2b1d !important;}
-.syntaxhighlighter .line.alt2{background-color:#0a2b1d !important;}
-.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#233729 !important;}
-.syntaxhighlighter .line.highlighted.number{color:white !important;}
-.syntaxhighlighter table caption{color:#f8f8f8 !important;}
-.syntaxhighlighter .gutter{color:#497958 !important;}
-.syntaxhighlighter .gutter .line{border-right:3px solid #41a83e !important;}
-.syntaxhighlighter .gutter .line.highlighted{background-color:#41a83e !important;color:#0a2b1d !important;}
-.syntaxhighlighter.printing .line .content{border:none !important;}
-.syntaxhighlighter.collapsed{overflow:visible !important;}
-.syntaxhighlighter.collapsed .toolbar{color:#96dd3b !important;background:black !important;border:1px solid #41a83e !important;}
-.syntaxhighlighter.collapsed .toolbar a{color:#96dd3b !important;}
-.syntaxhighlighter.collapsed .toolbar a:hover{color:white !important;}
-.syntaxhighlighter .toolbar{color:white !important;background:#41a83e !important;border:none !important;}
-.syntaxhighlighter .toolbar a{color:white !important;}
-.syntaxhighlighter .toolbar a:hover{color:#ffe862 !important;}
-.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:#f8f8f8 !important;}
-.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#336442 !important;}
-.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#9df39f !important;}
-.syntaxhighlighter .keyword{color:#96dd3b !important;}
-.syntaxhighlighter .preprocessor{color:#91bb9e !important;}
-.syntaxhighlighter .variable{color:#ffaa3e !important;}
-.syntaxhighlighter .value{color:#f7e741 !important;}
-.syntaxhighlighter .functions{color:#ffaa3e !important;}
-.syntaxhighlighter .constants{color:#e0e8ff !important;}
-.syntaxhighlighter .script{font-weight:bold !important;color:#96dd3b !important;background-color:none !important;}
-.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:#eb939a !important;}
-.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#91bb9e !important;}
-.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#edef7d !important;}
-.syntaxhighlighter .comments{font-style:italic !important;}
-.syntaxhighlighter .keyword{font-weight:bold !important;}
diff --git a/lib/vendor/PHPMailer/examples/styles/shThemeEclipse.css b/lib/vendor/PHPMailer/examples/styles/shThemeEclipse.css
deleted file mode 100644
index b089c5d..0000000
--- a/lib/vendor/PHPMailer/examples/styles/shThemeEclipse.css
+++ /dev/null
@@ -1,34 +0,0 @@
-.syntaxhighlighter{background-color:white !important;}
-.syntaxhighlighter .line.alt1{background-color:white !important;}
-.syntaxhighlighter .line.alt2{background-color:white !important;}
-.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#c3defe !important;}
-.syntaxhighlighter .line.highlighted.number{color:white !important;}
-.syntaxhighlighter table caption{color:black !important;}
-.syntaxhighlighter .gutter{color:#787878 !important;}
-.syntaxhighlighter .gutter .line{border-right:3px solid #d4d0c8 !important;}
-.syntaxhighlighter .gutter .line.highlighted{background-color:#d4d0c8 !important;color:white !important;}
-.syntaxhighlighter.printing .line .content{border:none !important;}
-.syntaxhighlighter.collapsed{overflow:visible !important;}
-.syntaxhighlighter.collapsed .toolbar{color:#3f5fbf !important;background:white !important;border:1px solid #d4d0c8 !important;}
-.syntaxhighlighter.collapsed .toolbar a{color:#3f5fbf !important;}
-.syntaxhighlighter.collapsed .toolbar a:hover{color:#aa7700 !important;}
-.syntaxhighlighter .toolbar{color:#a0a0a0 !important;background:#d4d0c8 !important;border:none !important;}
-.syntaxhighlighter .toolbar a{color:#a0a0a0 !important;}
-.syntaxhighlighter .toolbar a:hover{color:red !important;}
-.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:black !important;}
-.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#3f5fbf !important;}
-.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#2a00ff !important;}
-.syntaxhighlighter .keyword{color:#7f0055 !important;}
-.syntaxhighlighter .preprocessor{color:#646464 !important;}
-.syntaxhighlighter .variable{color:#aa7700 !important;}
-.syntaxhighlighter .value{color:#009900 !important;}
-.syntaxhighlighter .functions{color:#ff1493 !important;}
-.syntaxhighlighter .constants{color:#0066cc !important;}
-.syntaxhighlighter .script{font-weight:bold !important;color:#7f0055 !important;background-color:none !important;}
-.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:gray !important;}
-.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff1493 !important;}
-.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:red !important;}
-.syntaxhighlighter .keyword{font-weight:bold !important;}
-.syntaxhighlighter .xml .keyword{color:#3f7f7f !important;font-weight:normal !important;}
-.syntaxhighlighter .xml .color1,.syntaxhighlighter .xml .color1 a{color:#7f007f !important;}
-.syntaxhighlighter .xml .string{font-style:italic !important;color:#2a00ff !important;}
diff --git a/lib/vendor/PHPMailer/examples/styles/shThemeEmacs.css b/lib/vendor/PHPMailer/examples/styles/shThemeEmacs.css
deleted file mode 100644
index a3dcfc9..0000000
--- a/lib/vendor/PHPMailer/examples/styles/shThemeEmacs.css
+++ /dev/null
@@ -1,30 +0,0 @@
-.syntaxhighlighter{background-color:black !important;}
-.syntaxhighlighter .line.alt1{background-color:black !important;}
-.syntaxhighlighter .line.alt2{background-color:black !important;}
-.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#2a3133 !important;}
-.syntaxhighlighter .line.highlighted.number{color:white !important;}
-.syntaxhighlighter table caption{color:#d3d3d3 !important;}
-.syntaxhighlighter .gutter{color:#d3d3d3 !important;}
-.syntaxhighlighter .gutter .line{border-right:3px solid #990000 !important;}
-.syntaxhighlighter .gutter .line.highlighted{background-color:#990000 !important;color:black !important;}
-.syntaxhighlighter.printing .line .content{border:none !important;}
-.syntaxhighlighter.collapsed{overflow:visible !important;}
-.syntaxhighlighter.collapsed .toolbar{color:#ebdb8d !important;background:black !important;border:1px solid #990000 !important;}
-.syntaxhighlighter.collapsed .toolbar a{color:#ebdb8d !important;}
-.syntaxhighlighter.collapsed .toolbar a:hover{color:#ff7d27 !important;}
-.syntaxhighlighter .toolbar{color:white !important;background:#990000 !important;border:none !important;}
-.syntaxhighlighter .toolbar a{color:white !important;}
-.syntaxhighlighter .toolbar a:hover{color:#9ccff4 !important;}
-.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:#d3d3d3 !important;}
-.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#ff7d27 !important;}
-.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#ff9e7b !important;}
-.syntaxhighlighter .keyword{color:aqua !important;}
-.syntaxhighlighter .preprocessor{color:#aec4de !important;}
-.syntaxhighlighter .variable{color:#ffaa3e !important;}
-.syntaxhighlighter .value{color:#009900 !important;}
-.syntaxhighlighter .functions{color:#81cef9 !important;}
-.syntaxhighlighter .constants{color:#ff9e7b !important;}
-.syntaxhighlighter .script{font-weight:bold !important;color:aqua !important;background-color:none !important;}
-.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:#ebdb8d !important;}
-.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff7d27 !important;}
-.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#aec4de !important;}
diff --git a/lib/vendor/PHPMailer/examples/styles/shThemeFadeToGrey.css b/lib/vendor/PHPMailer/examples/styles/shThemeFadeToGrey.css
deleted file mode 100644
index d0b1c93..0000000
--- a/lib/vendor/PHPMailer/examples/styles/shThemeFadeToGrey.css
+++ /dev/null
@@ -1,31 +0,0 @@
-.syntaxhighlighter{background-color:#121212 !important;}
-.syntaxhighlighter .line.alt1{background-color:#121212 !important;}
-.syntaxhighlighter .line.alt2{background-color:#121212 !important;}
-.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#2c2c29 !important;}
-.syntaxhighlighter .line.highlighted.number{color:white !important;}
-.syntaxhighlighter table caption{color:white !important;}
-.syntaxhighlighter .gutter{color:#afafaf !important;}
-.syntaxhighlighter .gutter .line{border-right:3px solid #3185b9 !important;}
-.syntaxhighlighter .gutter .line.highlighted{background-color:#3185b9 !important;color:#121212 !important;}
-.syntaxhighlighter.printing .line .content{border:none !important;}
-.syntaxhighlighter.collapsed{overflow:visible !important;}
-.syntaxhighlighter.collapsed .toolbar{color:#3185b9 !important;background:black !important;border:1px solid #3185b9 !important;}
-.syntaxhighlighter.collapsed .toolbar a{color:#3185b9 !important;}
-.syntaxhighlighter.collapsed .toolbar a:hover{color:#d01d33 !important;}
-.syntaxhighlighter .toolbar{color:white !important;background:#3185b9 !important;border:none !important;}
-.syntaxhighlighter .toolbar a{color:white !important;}
-.syntaxhighlighter .toolbar a:hover{color:#96daff !important;}
-.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:white !important;}
-.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#696854 !important;}
-.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#e3e658 !important;}
-.syntaxhighlighter .keyword{color:#d01d33 !important;}
-.syntaxhighlighter .preprocessor{color:#435a5f !important;}
-.syntaxhighlighter .variable{color:#898989 !important;}
-.syntaxhighlighter .value{color:#009900 !important;}
-.syntaxhighlighter .functions{color:#aaaaaa !important;}
-.syntaxhighlighter .constants{color:#96daff !important;}
-.syntaxhighlighter .script{font-weight:bold !important;color:#d01d33 !important;background-color:none !important;}
-.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:#ffc074 !important;}
-.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#4a8cdb !important;}
-.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#96daff !important;}
-.syntaxhighlighter .functions{font-weight:bold !important;}
diff --git a/lib/vendor/PHPMailer/examples/styles/shThemeMDUltra.css b/lib/vendor/PHPMailer/examples/styles/shThemeMDUltra.css
deleted file mode 100644
index 6f712fd..0000000
--- a/lib/vendor/PHPMailer/examples/styles/shThemeMDUltra.css
+++ /dev/null
@@ -1,30 +0,0 @@
-.syntaxhighlighter{background-color:#222222 !important;}
-.syntaxhighlighter .line.alt1{background-color:#222222 !important;}
-.syntaxhighlighter .line.alt2{background-color:#222222 !important;}
-.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#253e5a !important;}
-.syntaxhighlighter .line.highlighted.number{color:white !important;}
-.syntaxhighlighter table caption{color:lime !important;}
-.syntaxhighlighter .gutter{color:#38566f !important;}
-.syntaxhighlighter .gutter .line{border-right:3px solid #435a5f !important;}
-.syntaxhighlighter .gutter .line.highlighted{background-color:#435a5f !important;color:#222222 !important;}
-.syntaxhighlighter.printing .line .content{border:none !important;}
-.syntaxhighlighter.collapsed{overflow:visible !important;}
-.syntaxhighlighter.collapsed .toolbar{color:#428bdd !important;background:black !important;border:1px solid #435a5f !important;}
-.syntaxhighlighter.collapsed .toolbar a{color:#428bdd !important;}
-.syntaxhighlighter.collapsed .toolbar a:hover{color:lime !important;}
-.syntaxhighlighter .toolbar{color:#aaaaff !important;background:#435a5f !important;border:none !important;}
-.syntaxhighlighter .toolbar a{color:#aaaaff !important;}
-.syntaxhighlighter .toolbar a:hover{color:#9ccff4 !important;}
-.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:lime !important;}
-.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#428bdd !important;}
-.syntaxhighlighter .string,.syntaxhighlighter .string a{color:lime !important;}
-.syntaxhighlighter .keyword{color:#aaaaff !important;}
-.syntaxhighlighter .preprocessor{color:#8aa6c1 !important;}
-.syntaxhighlighter .variable{color:aqua !important;}
-.syntaxhighlighter .value{color:#f7e741 !important;}
-.syntaxhighlighter .functions{color:#ff8000 !important;}
-.syntaxhighlighter .constants{color:yellow !important;}
-.syntaxhighlighter .script{font-weight:bold !important;color:#aaaaff !important;background-color:none !important;}
-.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:red !important;}
-.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:yellow !important;}
-.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#ffaa3e !important;}
diff --git a/lib/vendor/PHPMailer/examples/styles/shThemeMidnight.css b/lib/vendor/PHPMailer/examples/styles/shThemeMidnight.css
deleted file mode 100644
index e9c177e..0000000
--- a/lib/vendor/PHPMailer/examples/styles/shThemeMidnight.css
+++ /dev/null
@@ -1,30 +0,0 @@
-.syntaxhighlighter{background-color:#0f192a !important;}
-.syntaxhighlighter .line.alt1{background-color:#0f192a !important;}
-.syntaxhighlighter .line.alt2{background-color:#0f192a !important;}
-.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#253e5a !important;}
-.syntaxhighlighter .line.highlighted.number{color:#38566f !important;}
-.syntaxhighlighter table caption{color:#d1edff !important;}
-.syntaxhighlighter .gutter{color:#afafaf !important;}
-.syntaxhighlighter .gutter .line{border-right:3px solid #435a5f !important;}
-.syntaxhighlighter .gutter .line.highlighted{background-color:#435a5f !important;color:#0f192a !important;}
-.syntaxhighlighter.printing .line .content{border:none !important;}
-.syntaxhighlighter.collapsed{overflow:visible !important;}
-.syntaxhighlighter.collapsed .toolbar{color:#428bdd !important;background:black !important;border:1px solid #435a5f !important;}
-.syntaxhighlighter.collapsed .toolbar a{color:#428bdd !important;}
-.syntaxhighlighter.collapsed .toolbar a:hover{color:#1dc116 !important;}
-.syntaxhighlighter .toolbar{color:#d1edff !important;background:#435a5f !important;border:none !important;}
-.syntaxhighlighter .toolbar a{color:#d1edff !important;}
-.syntaxhighlighter .toolbar a:hover{color:#8aa6c1 !important;}
-.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:#d1edff !important;}
-.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#428bdd !important;}
-.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#1dc116 !important;}
-.syntaxhighlighter .keyword{color:#b43d3d !important;}
-.syntaxhighlighter .preprocessor{color:#8aa6c1 !important;}
-.syntaxhighlighter .variable{color:#ffaa3e !important;}
-.syntaxhighlighter .value{color:#f7e741 !important;}
-.syntaxhighlighter .functions{color:#ffaa3e !important;}
-.syntaxhighlighter .constants{color:#e0e8ff !important;}
-.syntaxhighlighter .script{font-weight:bold !important;color:#b43d3d !important;background-color:none !important;}
-.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:#f8bb00 !important;}
-.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:white !important;}
-.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#ffaa3e !important;}
diff --git a/lib/vendor/PHPMailer/examples/styles/shThemeRDark.css b/lib/vendor/PHPMailer/examples/styles/shThemeRDark.css
deleted file mode 100644
index 42d8710..0000000
--- a/lib/vendor/PHPMailer/examples/styles/shThemeRDark.css
+++ /dev/null
@@ -1,30 +0,0 @@
-.syntaxhighlighter{background-color:#1b2426 !important;}
-.syntaxhighlighter .line.alt1{background-color:#1b2426 !important;}
-.syntaxhighlighter .line.alt2{background-color:#1b2426 !important;}
-.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#323e41 !important;}
-.syntaxhighlighter .line.highlighted.number{color:#b9bdb6 !important;}
-.syntaxhighlighter table caption{color:#b9bdb6 !important;}
-.syntaxhighlighter .gutter{color:#afafaf !important;}
-.syntaxhighlighter .gutter .line{border-right:3px solid #435a5f !important;}
-.syntaxhighlighter .gutter .line.highlighted{background-color:#435a5f !important;color:#1b2426 !important;}
-.syntaxhighlighter.printing .line .content{border:none !important;}
-.syntaxhighlighter.collapsed{overflow:visible !important;}
-.syntaxhighlighter.collapsed .toolbar{color:#5ba1cf !important;background:black !important;border:1px solid #435a5f !important;}
-.syntaxhighlighter.collapsed .toolbar a{color:#5ba1cf !important;}
-.syntaxhighlighter.collapsed .toolbar a:hover{color:#5ce638 !important;}
-.syntaxhighlighter .toolbar{color:white !important;background:#435a5f !important;border:none !important;}
-.syntaxhighlighter .toolbar a{color:white !important;}
-.syntaxhighlighter .toolbar a:hover{color:#e0e8ff !important;}
-.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:#b9bdb6 !important;}
-.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#878a85 !important;}
-.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#5ce638 !important;}
-.syntaxhighlighter .keyword{color:#5ba1cf !important;}
-.syntaxhighlighter .preprocessor{color:#435a5f !important;}
-.syntaxhighlighter .variable{color:#ffaa3e !important;}
-.syntaxhighlighter .value{color:#009900 !important;}
-.syntaxhighlighter .functions{color:#ffaa3e !important;}
-.syntaxhighlighter .constants{color:#e0e8ff !important;}
-.syntaxhighlighter .script{font-weight:bold !important;color:#5ba1cf !important;background-color:none !important;}
-.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:#e0e8ff !important;}
-.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:white !important;}
-.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:#ffaa3e !important;}
diff --git a/lib/vendor/PHPMailer/examples/styles/shThemeVisualStudio.css b/lib/vendor/PHPMailer/examples/styles/shThemeVisualStudio.css
deleted file mode 100644
index 8ed369f..0000000
--- a/lib/vendor/PHPMailer/examples/styles/shThemeVisualStudio.css
+++ /dev/null
@@ -1,31 +0,0 @@
-.syntaxhighlighter{background-color:white !important;}
-.syntaxhighlighter .line.alt1{background-color:white !important;}
-.syntaxhighlighter .line.alt2{background-color:white !important;}
-.syntaxhighlighter .line.highlighted.alt1,.syntaxhighlighter .line.highlighted.alt2{background-color:#e0e0e0 !important;}
-.syntaxhighlighter .line.highlighted.number{color:black !important;}
-.syntaxhighlighter table caption{color:black !important;}
-.syntaxhighlighter .gutter{color:#afafaf !important;}
-.syntaxhighlighter .gutter .line{border-right:3px solid #6ce26c !important;}
-.syntaxhighlighter .gutter .line.highlighted{background-color:#6ce26c !important;color:white !important;}
-.syntaxhighlighter.printing .line .content{border:none !important;}
-.syntaxhighlighter.collapsed{overflow:visible !important;}
-.syntaxhighlighter.collapsed .toolbar{color:blue !important;background:white !important;border:1px solid #6ce26c !important;}
-.syntaxhighlighter.collapsed .toolbar a{color:blue !important;}
-.syntaxhighlighter.collapsed .toolbar a:hover{color:red !important;}
-.syntaxhighlighter .toolbar{color:white !important;background:#6ce26c !important;border:none !important;}
-.syntaxhighlighter .toolbar a{color:white !important;}
-.syntaxhighlighter .toolbar a:hover{color:black !important;}
-.syntaxhighlighter .plain,.syntaxhighlighter .plain a{color:black !important;}
-.syntaxhighlighter .comments,.syntaxhighlighter .comments a{color:#008200 !important;}
-.syntaxhighlighter .string,.syntaxhighlighter .string a{color:#d11010 !important;}
-.syntaxhighlighter .keyword{color:#006699 !important;}
-.syntaxhighlighter .preprocessor{color:gray !important;}
-.syntaxhighlighter .variable{color:#aa7700 !important;}
-.syntaxhighlighter .value{color:#009900 !important;}
-.syntaxhighlighter .functions{color:#ff1493 !important;}
-.syntaxhighlighter .constants{color:#0066cc !important;}
-.syntaxhighlighter .script{font-weight:bold !important;color:#006699 !important;background-color:none !important;}
-.syntaxhighlighter .color1,.syntaxhighlighter .color1 a{color:gray !important;}
-.syntaxhighlighter .color2,.syntaxhighlighter .color2 a{color:#ff1493 !important;}
-.syntaxhighlighter .color3,.syntaxhighlighter .color3 a{color:red !important;}
-.syntaxhighlighter .keyword{font-weight:bold !important;}
diff --git a/lib/vendor/PHPMailer/examples/styles/wrapping.png b/lib/vendor/PHPMailer/examples/styles/wrapping.png
deleted file mode 100644
index 6972c5e..0000000
Binary files a/lib/vendor/PHPMailer/examples/styles/wrapping.png and /dev/null differ
diff --git a/lib/vendor/PHPMailer/extras/EasyPeasyICS.php b/lib/vendor/PHPMailer/extras/EasyPeasyICS.php
deleted file mode 100644
index d8bfcfa..0000000
--- a/lib/vendor/PHPMailer/extras/EasyPeasyICS.php
+++ /dev/null
@@ -1,148 +0,0 @@
-
- * @author Manuel Reinhard
- *
- * Built with inspiration from
- * http://stackoverflow.com/questions/1463480/how-can-i-use-php-to-dynamically-publish-an-ical-file-to-be-read-by-google-calend/1464355#1464355
- * History:
- * 2010/12/17 - Manuel Reinhard - when it all started
- * 2014 PHPMailer project becomes maintainer
- */
-
-/**
- * Class EasyPeasyICS.
- * Simple ICS data generator
- * @package phpmailer
- * @subpackage easypeasyics
- */
-class EasyPeasyICS
-{
- /**
- * The name of the calendar
- * @var string
- */
- protected $calendarName;
- /**
- * The array of events to add to this calendar
- * @var array
- */
- protected $events = array();
-
- /**
- * Constructor
- * @param string $calendarName
- */
- public function __construct($calendarName = "")
- {
- $this->calendarName = $calendarName;
- }
-
- /**
- * Add an event to this calendar.
- * @param string $start The start date and time as a unix timestamp
- * @param string $end The end date and time as a unix timestamp
- * @param string $summary A summary or title for the event
- * @param string $description A description of the event
- * @param string $url A URL for the event
- * @param string $uid A unique identifier for the event - generated automatically if not provided
- * @return array An array of event details, including any generated UID
- */
- public function addEvent($start, $end, $summary = '', $description = '', $url = '', $uid = '')
- {
- if (empty($uid)) {
- $uid = md5(uniqid(mt_rand(), true)) . '@EasyPeasyICS';
- }
- $event = array(
- 'start' => gmdate('Ymd', $start) . 'T' . gmdate('His', $start) . 'Z',
- 'end' => gmdate('Ymd', $end) . 'T' . gmdate('His', $end) . 'Z',
- 'summary' => $summary,
- 'description' => $description,
- 'url' => $url,
- 'uid' => $uid
- );
- $this->events[] = $event;
- return $event;
- }
-
- /**
- * @return array Get the array of events.
- */
- public function getEvents()
- {
- return $this->events;
- }
-
- /**
- * Clear all events.
- */
- public function clearEvents()
- {
- $this->events = array();
- }
-
- /**
- * Get the name of the calendar.
- * @return string
- */
- public function getName()
- {
- return $this->calendarName;
- }
-
- /**
- * Set the name of the calendar.
- * @param $name
- */
- public function setName($name)
- {
- $this->calendarName = $name;
- }
-
- /**
- * Render and optionally output a vcal string.
- * @param bool $output Whether to output the calendar data directly (the default).
- * @return string The complete rendered vlal
- */
- public function render($output = true)
- {
- //Add header
- $ics = 'BEGIN:VCALENDAR
-METHOD:PUBLISH
-VERSION:2.0
-X-WR-CALNAME:' . $this->calendarName . '
-PRODID:-//hacksw/handcal//NONSGML v1.0//EN';
-
- //Add events
- foreach ($this->events as $event) {
- $ics .= '
-BEGIN:VEVENT
-UID:' . $event['uid'] . '
-DTSTAMP:' . gmdate('Ymd') . 'T' . gmdate('His') . 'Z
-DTSTART:' . $event['start'] . '
-DTEND:' . $event['end'] . '
-SUMMARY:' . str_replace("\n", "\\n", $event['summary']) . '
-DESCRIPTION:' . str_replace("\n", "\\n", $event['description']) . '
-URL;VALUE=URI:' . $event['url'] . '
-END:VEVENT';
- }
-
- //Add footer
- $ics .= '
-END:VCALENDAR';
-
- if ($output) {
- //Output
- $filename = $this->calendarName;
- //Filename needs quoting if it contains spaces
- if (strpos($filename, ' ') !== false) {
- $filename = '"'.$filename.'"';
- }
- header('Content-type: text/calendar; charset=utf-8');
- header('Content-Disposition: inline; filename=' . $filename . '.ics');
- echo $ics;
- }
- return $ics;
- }
-}
diff --git a/lib/vendor/PHPMailer/extras/README.md b/lib/vendor/PHPMailer/extras/README.md
deleted file mode 100644
index df8ca09..0000000
--- a/lib/vendor/PHPMailer/extras/README.md
+++ /dev/null
@@ -1,17 +0,0 @@
-# PHPMailer Extras
-
-These classes provide optional additional functions to PHPMailer.
-
-These are not loaded by the PHPMailer autoloader, so in some cases you may need to `require` them yourself before using them.
-
-## EasyPeasyICS
-
-This class was originally written by Manuel Reinhard and provides a simple means of generating ICS/vCal files that are used in sending calendar events. PHPMailer does not use it directly, but you can use it to generate content appropriate for placing in the `Ical` property of PHPMailer. The PHPMailer project is now its official home as Manuel has given permission for that and is no longer maintaining it himself.
-
-## htmlfilter
-
-This class by Konstantin Riabitsev and Jim Jagielski implements HTML filtering to remove potentially malicious tags, such as `