// ==UserScript==
// @id Affiliate_killer
// @name Affiliate killer
// @version 3.7
// @namespace https://gf.qytechs.cn/scripts/456
// @homepageURL https://gf.qytechs.cn/scripts/456
// @license https://creativecommons.org/licenses/by-nc/2.1/jp/
// @author noi
// @description No more Affiliate Link! Plz Original URL!
// @include http*
// @grant GM_log
// @grant GM_setValue
// @grant GM_getValue
// @grant GM_registerMenuCommand
// @grant unsafeWindow
// ==/UserScript==
/////////////////////////////////////////////////////
// The original script is below: //
// アフィリエイト殺し for greasemonkey //
// http://d.hatena.ne.jp/deraw/20060902/1157143806 //
// and //
// A Killer Mod //
// http://www7b.biglobe.ne.jp/~yamj/ //
// and require ecl.js autor:drk //
// http://www.drk7.jp/ //
// http://www.drk7.jp/pub/js/ecl_test/ecl_new.js //
/////////////////////////////////////////////////////
/************************************************************************
前書き
自分用のスクリプトですが、知人から欲しいという要望があったので公開。
勉強がてら追加してったので正直美しくないです。
このスクリプトの利用は各自の自己責任でお願いします。
当スクリプトを利用したことにより被ったあらゆる損害に対して免責とさせていただきます。
I made this script for myself.
and uploaded it, since my acquaintance wanted it.
Add to Original Script too much ,the source code is dirty.
Please use this script on each one of responsibility.
IN NO EVENT SHALL EITHER PARTY BE LIABLE TO THE OTHER PARTY.
アフィの修正取りこぼしの報告も受け付けています。
→体調が良ければ直します。
まだ実験段階のためブラウザごとフリーズする場合もあるかもしれないので報告ください。
→体調がry
※このスクリプトは、A Killer Mod作者様と連絡不可のため無断で引用しています。
万が一作者様から抗議があった場合、即刻公開停止します。
このソースは基本的に改変、再配布自由です。
「A Killer Mod」の引用部分は各自判断してください。
また、配布する場合は引用元として当方の名前を入れてくれるだけでOKです。
とはいえ悪質だったり詐欺などの用途での改変は当然NGです。
注意点はファイル保存の際、文字エンコードはUTF-8で保存してください。(文字化け回避)
*************************************************************************
前提条件
○必須
・クッキー(cookie)の削除、および定期的な削除
・ポイントサイトなど当スクリプトを動作させたくないサイトを設定する
例)アドオンのScriptishでTポイントサイトの除外を設定する場合
スクリプト管理画面からAffiliate_Killerの設定をクリックし
excludeに除外したいサイトのURLを指定する(正規表現が使えない?)
http://tmall.tsite.jp/*
https://tmall.tsite.jp/*
http://tsite.jp/*
https://tsite.jp/*
など(最後のアスタリスク(*)を忘れずに)
○以下は必須ではないけどやった方がいい
1、基本的にadblock系アドオンと併用推奨(定番)
大体のアフィリエイトはこれで抹殺されます。
日本語のフィルターを適当に購読しましょう。
誤爆(関係ないものまで非表示)もあるので注意
2、PeerBlockなどの通信フィルタリングソフト(初心者向き)
ipを遮断するため表示されなくなりスッキリ(ただしたまに関係ないのも遮断するので注意)
忍者adMaxのような広告が表示されるだけで報酬が発生する仕組みがあるので導入推奨
導入方法など:脱Google@wikiのPeerBlock解説ページ
http://www4.atwiki.jp/nogoogle/pages/19.html
3、可能ならアドオンNoRedirectと併用推奨(やや上級者向け)
リダイレクトをブロックして転送先URLを表示してくれるのでアフィリエイトリンクを修正します。
何故このアドオンかというと他のリダイレクトブロック系アドオンではスルーしてしまうような
metaタグやhttpリクエストなどのリダイレクトもブロック可能だからです。
要設定。(↓の方で簡易解説あります)
※文字化け問題が発生するページあり(403エラーなど)
これは海外のアドオンのため日本語のエンコード・デコードに失敗しているせい。
問題となっているURLへのリダイレクトを許可すると正しいURLへ飛びますが、
アフィリエイトリンクへの許可にならないよう考えて許可しましょう
4、可能ならReferrer Control系アドオンと併用推奨(やや上級者向け)
ツイッターやブログURLなどを登録し、リファラなどを元に報酬を払うアフィリエイトがある模様?
私は「RefControl」というアドオンを使っていますが、Firefox29でアドオンバーが削除されたので
現在のリファラURLが確認できなくなりました。(アドオンバー復活するアドオンを入れれば全機能使えます)
※こちらも文字化け問題あり。
※しっかり設定しないと画像が表示されない、ファイルがダウンロードできないなどの問題が発生します。
一応下の方でお勧め設定を載せます。
5、RSS系は「RSS広告削除社」などの広告削除を利用してください。
当スクリプトでは基本的にRSSのアフィリンクに対応しません。
(対応できない場合がほとんどのため)
○こだわりたい方用
下記サイトで色々とどうぞ
脱Google@wiki
http://www4.atwiki.jp/nogoogle/
*************************************************************************
アドオンのNoRedirectが良くわからない!正規表現って何?って人用(とはいえ自分も勉強中)
まず初期に登録されているものを全部削除
1、以下を追加すると全てのURLでリダイレクトをブロックしてくれるようになる。
^http
(↑転送元にだけチェックを入れる。ここが一番先頭であるという意味のキャレット(^)を忘れずに)
※↑これが絶対に一番下になるようにする。
2、許可したいリダイレクトURLは以下のように追加する。
ホワイトリストのようなもの。
※上記解説1の「^http」よりも上に追加すること
例:http://hogehoge.co.jpまたはhttps://hogehoge.co.jpを許可する場合
^https?://hogehoge.co.jp
(↑転送元と許可にチェックを入れる。キャレット(^)を忘れずに)
この場合指定したURLの後に何が来てもいいので
http://hogehoge.co.jp/homepage/index.htmlなども許可される
3、「転送元」にチェック入れると今表示されているURL(転送元)からのリダイレクトの設定
チェックを外すと”転送先”のURLに対する設定
※↑ここはかなり重要
4、「許可」にチェック入れるとリダイレクトを止めずに転送(パススルー)
チェックを外すとリダイレクトをブロックして転送先URLを表示
ホワイトリストのように使うので追加する場合は基本的に許可にチェックを入れる
例えば
^http://hoge.com/shop/ ブロック
^http://hoge.com/ 許可
^http ブロック
のように上から設定した場合はhttp://hoge.com/shop/のブロックが最優先で
それ以外のhttp://hoge.com/は許可(例えばhttp://hoge.com/store/index.htmlなどは許可)となり、
最後にhttp://hoge.com/以外のURLは全部ブロックとなる。
5、「DNS」に関しては基本的にチェックしなくてOK
※注意点
転送元にチェックを入れるかどうかはちゃんと考えないと
ブロックすべきところをスルーして意味ないことに。
可能ならばドメインだけでなく細かく指定する方が万全。
最低限覚えておくと便利な正規表現規則--------------------------------------------
前提として当然半角英数字です。
誤解覚悟で説明すると、文字を検索するための表現です。
^http
(↑先頭がhttpという意味。キャレット(^)はここが一番先頭であるという意味。)
https?
(↑httpまたはhttpsのどっちでもいいよという意味。クエスチョンマーク(?)の前1文字の有無の2パターン)
(co.jp|com|ne.jp)
(↑co.jpまたはcomまたはne.jpという意味。パイプライン(|)で区切ると何パターンにも対応可能。括弧で囲むのを忘れずに)
**************************************************************************
RefControlのおすすめ設定
【概要】
リファラとは今見ているサイトの前に見ていたサイトURLなどの履歴情報で、
その情報には検索した単語なども含まれる場合があります。
アドオンにより書き換えたり消してしまおうというわけです。
【設定】
1、最初に「一覧にないサイトに関する規定値」を「偽装」(推奨)あるいは「阻止」しよう。
・偽装・・・こちらを推奨。そのサイトのドメインURLをリファラ情報にする
・阻止・・・リファラ情報を消去し、まっさらな状態にする(一部サイトでリファラがまったく無いと表示できなくなる)
・通常・・・本来のリファラです。問題が出て確認するとき以外は選ばない方がいいです。
・カスタム・・・自由にリファラのURLを書き換えることができますが、普通の人は不要でしょう。
2、個別登録でエラー回避
表示されない・ダウンロードされない・変なエラーが出るなど問題が発生したら、
ステップ1で設定した全体のリファラ「偽装」を「通常」に設定して問題が解消されるか確認
もしそれで問題が解消したら以下のように個別追加しよう
問題のサイトで背景を右クリックして右クリックメニューを出す
「このサイトに関する RefControl オプション」をクリック
するとそのサイトのリファラ動作を指定できるのでそのままOKを押す。
※デフォルトで「通常」が選択されているはずです
終わったら忘れずに全体のリファラを「偽装」に戻そう。
3、おすすめ設定
以下のURLをリファラ「通常」で追加する。
※だたし追加は各自の自己責任でお願いします。
(実際に自分で確認してから追加をお勧めします)
・googleアカウント(確かyoutubeかアンドロイドマーケット)
accounts.google.com
・ニコニコ動画系
com.nicovideo.jp
nicoblomaga.jp
・pixiv
www.pixiv.net
・vectorのフリーソフトダウンロードなど
ftp.vector.co.jp
my.vector.co.jp
・ソフマップ
point.sofmap.com
・ソフトバンク系(多分プロバイダや電話料金系)
web-meisai.softbanktelecom.co.jp
webmeisai.jp
・ウェブ魚拓
megalodon.jp
・ちず丸
map.chizumaru.com
・もりたぽ
find.moritapo.jp
※上記以外でも表示されない・ダウンロードされない・変なエラーが出るなど
問題が発生するサイトはちらほらとあります。
その場合は再度ステップ2に戻ろう
*************************************************************************/
/**更新履歴**************************************************************
06/29/2014 - v3.7 fix:動作しなかったバグ修正
06/27/2014 - v3.6 fix:価格コムで修正途中で止まる症状修正。他
06/26/2014 - v3.5 add:海外のアフィに一部対応
06/25/2014 - v3.4 fix:要素継ぎ足しに対応(継ぎ足しの多いページなどは処理が重くなる場合あり)
06/21/2014 - v3.3 add:[killer]の文字非表示機能追加(スクリプトがリンクの修正ミスあっても気にしないなら非表示でどうぞ)
06/18/2014 - v3.2 fix:一部のサイトでおかしくなっていたのを修正
06/13/2014 - v3.1 del:@updateURL
06/12/2014 - v3.0 add:すべての要素をチェックするように変更。他色々
06/07/2014 - v2.11 add:googleトラッカー除去
06/07/2014 - v2.10 fix:並び順をアルファベット順に整理
04/16/2014 - v2.4 fix:ページ内スクロール用ボタンは除外
04/02/2014 - v2.3 fix:文字化け回避にecl.jsをrequireするように変更。他色々修正
03/25/2014 - v2.2 del:暫定的にスクリプト実行ディレイを削除
03/25/2014 - v2.1 add:Amazonのリダイレクト除去
03/23/2014 - v2.0 add:AmazonのスマートフォンURLに対応
03/22/2014 - v1.9 fix:GoogleImage検索は除外。onclick除去を修正したリンクのみ適応するように変更。
03/22/2014 - v1.8 fix:説明文吹っ飛んだので書き直し。Amazonの修正
03/14/2014 - v1.0 release
*************************************************************************/
/****************************************************
備忘録
・GoogleImage検索でうまく動かないので@excludeに追加。*tbm=isch*はGoogleImage検索用
詳細ウィンドウの右側サムネイル画像クリックで起動する特殊なスクリプトで、iframe内に要素を入れ込んでいる様子
F5リロードするとiframe内をコピーした要素の方(iframeじゃなくなる)に切り替わるなど色々挙動がおかしい
→addEventListenerで監視追加で対応
・デコードエラーはどうやらdecURIだとEUC-JPやShift-JISの文字列が来ると発生する模様?
→ecl.js(Escape Codec Library)をお借りすることに
→requireから埋め込みに変更(GreasyForkでrequire使うと色々と面倒なため)
・linkifierの種類(linkify plus)によってはディレイを100入れないと表示できない場合あり
→楽天の埋め込み型ブログツールの読み込みが遅いので500に変更
→facebookの楽天広告の読み込みが遅く800に変更(これでも読み込みが遅いと修正できないけどこれ以上はストレスのため妥協)
→my yahooのページが読み込みが遅く3000も必要なためディレイを廃止してメイン関数の起動をタイマーカウントにした
→addEventListenerに変更
・amazonの埋め込み型flashの場合、リダイレクト発生するのでNoRedirectでブロック後修正
・海外製アドオンのためかnoredirectがブロックすると日本語が文字化けを起こす模様(楽天などで確認)
→アフィリエイトリンクじゃない場合はリダイレクトを許可すると問題は解消する
→楽天を許可しちゃうとアフィリエイトリンクを踏んでしまうので事前に修正可能なものは修正した(まだ他にあるか調査中)
・amazonの定期おトク便ページでうまく表示されない事象を解決できないので
該当ページ(http://www.amazon.co.jp/l/2799399051)を除外@exclude
→対応完了
→他にもamazon内でこのメニュー欄を使ってるページがある模様。amazon自体を省くか検討中
・ブログパーツの埋め込み型スクリプト(.js系)に関するfunction killJSが頓挫中のため起動箇所をコメントアウト
・以下は閉鎖?ポート8080になったようだけど不安定なのでとりあえずgreasyforkへ移行
http://userscripts.org/scripts/show/411363
http://userscripts.org/scripts/source/411363.user.js
・@updateURLを削除(インストールしたときのサイトURLをアドオンが保持しているので更新可能な模様)
******************************************************/
//=============プログラム開始===========================================================
(function() {
//トラッキング除去
remTrack(document);
//ユーザー設定(killer表示設定)
var hideOriginLink = "one";
hideOriginLink = userCfg("hideOriginLink");
//文字エンコード用の関数読み込み
ecl();
//メイン処理実行
window.setTimeout( function() {main(document)}, 1200 ); //処理の2重化になるけどサイトごとに分けるよりマシかな?
//dom読み込み後(Noscriptで止めてる場合はdom読み込んでないっぽい。かといってこの起動を消すと読み込み遅延のあるサイトごとに分ける必要がある)
document.addEventListener("DOMContentLoaded", function(evt){
var node = evt.target;
window.setTimeout( function() {main(node)}, 1500 );
}, false);
//継ぎ足し要素対応
document.addEventListener("DOMNodeInserted", function(e) {
window.setTimeout( function() {main(e.target)}, 1500 );
}, false);
//メイン処理===============================================================================================
function main(document){
//alert(Object.prototype.toString.call(document));
try{
// var allLinks = document.getElementsByTagName("a");
var allLinks = document.getElementsByTagName("*");
var cutNum ="";
var strUrl = ""; //修正したURL
//埋め込み型javaスクリプト
// killJS(document);
for (i = 0; i < allLinks.length; i++){
//hrefを含まないリンクは除外
if(allLinks[i].getAttribute("href") == null
|| allLinks[i].href == undefined
|| allLinks[i].href == ""){
continue;
}
var href = allLinks[i].href; //元のURL(極力上書きしないこと!)
// strUrl = href;
strUrl = decURI(href);
//事前修正===================================================================================
//アマゾンのリダイレクト除去
if(href.match("amazon.co.jp") && href.match(/\/redirect/) ){
var params = createParamArray(href); //パラメータ格納
//http://www.amazon.co.jp/exec/obidos/redirect?tag=bestgate-22&path=http%3A%2F%2Fwww.amazon.co.jp%2Fgp%2Foffer-listing%2FB00CL7LC3O%2F%3Fcondition%3Dnew
if(href.match(/(\&|\?)path=http/)){
strUrl = getRedirectUrl(href,"path");
//http://www.amazon.co.jp/gp/redirect.html/ref=amb_link_68694429_2?ie=UTF8&location=http%3A%2F%2Fwww.amazon.co.jp%2Fgp%2Fhelp%2Fcustomer%2Fdisplay.html%3FnodeId%3D200505800&token=0AE1DFACC954F91986074504F57C1362C85FB6E8&pf_rd_m=AN1VRQENFRJN5&pf_rd_s=merchandised-search-left-2&pf_rd_r=0PW7G1RFAKKV592CEXCJ&pf_rd_t=101&pf_rd_p=157968649&pf_rd_i=2799399051
}else if(href.match("location=http")){
strUrl = getRedirectUrl(href,"location");
//http://www.amazon.co.jp/exec/obidos/redirect?link_code=ur2&camp=247&tag=naritanetmap-22&creative=1211&path=external-search%3Fsearch-type=ss%26keyword=%25E3%2583%25AA%25E3%2582%25B9%25E3%2583%2588%25E3%2583%25A9%25E6%2592%2583%25E9%2580%2580%25EF%25BC%25A1%25EF%25BC%25A2%25EF%25BC%25A3%25E3%2580%2580%26index=books-jp
//http://www.amazon.co.jp/exec/obidos/redirect?link_code=ur2&camp=247&tag=naritanetmap-22&creative=1211&path=external-search?search-type=ss&keyword=%E3%83%AA%E3%82%B9%E3%83%88%E3%83%A9%E6%92%83%E9%80%80%EF%BC%A1%EF%BC%A2%EF%BC%A3%E3%80%80&index=books-jp
}else if(href.match(/(\?|\&)path=/)){
var strKey = "";
if(params["keyword"] != undefined){
strKey = '&keyword=' + params["keyword"];
}
strUrl = href.replace(/(.*)redirect\?.*$/i,'$1' + getRedirectUrl(href,"path") + strKey);
}else{
}
setLink();
//正しいhttp://www.bestgate.net/go.phtml?productid=gigabytegbbxi74770r&id=3625063
//http://www.bestgate.net/go.phtml?siteid=A000001&categoryid=001006008000000&productid=gigabytegbbxi74770r&sort=epc1&orderNumber=1&pointPrice=105408&price=105408&id=3625063&type=b
//bestgateのリンクを可能な限り削除
}else if(location.href.indexOf("www.bestgate.net") < 10 && location.href.indexOf("www.bestgate.net") > 0){
if(href.match("productid=") && href.match("siteid=")){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(/(.*)go.phtml\?.*$/i,"$1go.phtml?") + "productid=" + params["productid"] + "&id=" + params["id"];
setLink();
//http://www.bestgate.net/hop_auction.php?url=http%3A%2F%2Fpage13.auctions.yahoo.co.jp%2Fjp%2Fauction%2Fr112484393&type=at
//bestgateにあるヤフオクリンク修正
}else if(href.match("hop_auction.php") && href.match("url=http")){
strUrl = getRedirectUrl(href,"url");
setLink();
}
//正しいhttp://www.coneco.net/goshop.asp?m_id=8a10cdab5989ac93eb1259042f9750a4&shop_id=1222
//http://www.coneco.net/goshop.asp?m_id=8a10cdab5989ac93eb1259042f9750a4&com_id=1131010179&shop_id=1222&c_id=01155022&goshop=1&ta=5.9
//conecoのリンクを可能な限り削除
}else if(location.href.indexOf("www.coneco.net") < 10 && location.href.indexOf("www.coneco.net") > 0
&& href.match("m_id=") && href.match("shop_id=") && href.match("com_id=")){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(/(.*)goshop.asp\?.*$/i,"http://www.coneco.net/goshop.asp?") + "m_id=" + params["m_id"] + "&shop_id=" + params["shop_id"];
setLink();
//conecoの価格比較リスト(レビューの下の方)
}else if(href.match(/^https?:\/\/www.coneco.net\/frames.asp/)){
var params = createParamArray(href);
//見やすく一度デコードhttp://www.coneco.net/frames.asp?MAIN_URL=AMdp/B008V6D5M0/ref=asc_df_B008V6D5M0977582/?tag=coneco-22&creative=9311&creativeASIN=B008V6D5M0&linkCode=df0&me=AN1VRQENFRJN5&CATEGORY_ID=2832000&SID=CO&SHOP_ID=2832&COMCAT_ID=01802080&COM_ID=1130627295&COM_NAME=%83L%83%84%83m%83%93+%83e%83%93%83L%81%5B%93d%91%EC+X+Mark+I+KRF+%83z%83%8F%83C%83g&ta=57
// http://www.coneco.net/frames.asp?MAIN_URL=AMdp%2FB008V6D5M0%2Fref%3Dasc%5Fdf%5FB008V6D5M0977582%2F%3Ftag%3Dconeco%2D22%26creative%3D9311%26creativeASIN%3DB008V6D5M0%26linkCode%3Ddf0%26me%3DAN1VRQENFRJN5&CATEGORY_ID=2832000&SID=CO&SHOP_ID=2832&COMCAT_ID=01802080&COM_ID=1130627295&COM_NAME=%2583L%2583%2584%2583m%2583%2593%2B%2583e%2583%2593%2583L%2581%255B%2593d%2591%25EC%2BX%2BMark%2BI%2BKRF%2B%2583z%2583%258F%2583C%2583g&ta=57
//amazonの埋め込み
if(getRedirectUrl(strUrl,"MAIN_URL").match(/^AMdp/)){
strUrl = getRedirectUrl(strUrl,"MAIN_URL").replace(/AMdp/,'http://www.amazon.co.jp/dp');
//http://www.coneco.net/frames.asp?MAIN_URL=RTc/001134ce.0fc3b133/_RTvrgj10000063?url=http%3A%2F%2Fitem.rakuten.co.jp%2Fdtc%2F4960999964164%2F&CATEGORY_ID=2683000&SID=CO&SHOP_ID=2683&COMCAT_ID=01802080&COM_ID=1130627295&COM_NAME=%83L%83%84%83m%83%93+%91%EC%8F%E3%93d%91%EC%81i10%8C%85%81jX+Mark+I+KRF%2DWH%81i%83z%83%8F%83C%83g%81j+%28XMARKIKRFWH%29%28%83%5C%83t%83%7D%83b%83v%8Ay%93V%8Es%8F%EA%93X%29+&ta=18
//http://www.coneco.net/frames.asp?MAIN_URL=RTc%2F001134ce%2E0fc3b133%2F%5FRTvrgj10000063%3Furl%3Dhttp%253A%252F%252Fitem%2Erakuten%2Eco%2Ejp%252Fdtc%252F4960999964164%252F&CATEGORY_ID=2683000&SID=CO&SHOP_ID=2683&COMCAT_ID=01802080&COM_ID=1130627295&COM_NAME=%2583L%2583%2584%2583m%2583%2593%2B%2591%25EC%258F%25E3%2593d%2591%25EC%2581i10%258C%2585%2581jX%2BMark%2BI%2BKRF%252DWH%2581i%2583z%2583%258F%2583C%2583g%2581j%2B%2528XMARKIKRFWH%2529%2528%2583%255C%2583t%2583%257D%2583b%2583v%258Ay%2593V%258Es%258F%25EA%2593X%2529%2B&ta=18
//楽天の埋め込み
}else if(getRedirectUrl(strUrl,"MAIN_URL").match(/^RTc/)){
if(getRedirectUrl(strUrl,"MAIN_URL").match(/(\?|\&)url=/)){
strUrl = getRedirectUrl(getRedirectUrl(strUrl,"MAIN_URL"),"url");
}
//http://www.coneco.net/frames.asp?MAIN_URL=LSfs%2Dbin%2Fclick%3Fid%3Dd7sAqGzcFmA%26offerid%3D261820%2E12%26subid%3D1%26type%3D10%26tmpid%3D10378%26RD%5FPARM1%3Dhttp%25253A%25252F%25252Fwww%25252Esofmap%25252Ecom%25252Fproduct%25255Fdetail%25252Fexec%25252F%25255F%25252Fsku%25253D12052471%25252F%25252D%25252Fgid%25253DPS05020000&CATEGORY_ID=1215000&SID=CO&SHOP_ID=1215&COMCAT_ID=01506010&COM_ID=1120820693&COM_NAME=Fractal%2BDesign%2BDefine%2BR4%2BBlack%2BPearl%2B%2528FD%252DCA%252DDEF%252DR4%252DBL%252FZ1%2529&ta=15.3
//linkshare埋め込み
}else if(getRedirectUrl(strUrl,"MAIN_URL").match(/^LSfs/)){
if(strUrl.match(/(\?|\&)RD_PARM1=/)){
//何故か2重エンコードされている
strUrl = decURI(getRedirectUrl(strUrl,"RD_PARM1"));
}
//http://www.coneco.net/frames.asp?MAIN_URL=VCservlet%2Freferral%3Fsid%3D13940%26pid%3D877084383%26vc%5Furl%3Dhttp%253A%252F%252Fwww%252Edospara%252Eco%252Ejp%252F5shopping%252Fdetail%255Fparts%252Ephp%253Fic%253D385119%2526waad%253Dvx2bADUp&CATEGORY_ID=1105000&SID=CO&SHOP_ID=1105&COMCAT_ID=01506010&COM_ID=1131228052&COM_NAME=Fulmo%2BQ%2BECA3360B%252DBT%2528U3%2529&ta=29.6
//netmng埋め込み
}else if(getRedirectUrl(strUrl,"MAIN_URL").match(/^VCservlet/)){
if(strUrl.match(/(\?|\&)vc_url=/)){
strUrl = getRedirectUrl(strUrl,"vc_url");
}
//http://www.coneco.net/frames.asp?MAIN_URL=http%3A%2F%2Fshop%2Ehikaritv%2Enet%2Fshopping%2Fcommodity%2Fplala%2F5412674753%2F%3Fsid%3Dc%26cid%3Dc&CATEGORY_ID=3425000&SID=CO&SHOP_ID=3425&COMCAT_ID=01802080&COM_ID=1130627295&COM_NAME=%25C3%25DD%25B7%25B0%2593d%2591%25ECXMarkIKRF%252DWH%2528%25CE%25DC%25B2%25C4%2529%2B5094B005&ta=18
//通常のURL
}else if(getRedirectUrl(href,"MAIN_URL").match(/^http/)){
strUrl = getRedirectUrl(href,"MAIN_URL");
}
setLink();
//http://l.facebook.com/l.php?u=リダイレクトURL&h=-AQGihBRZ&enc=AZMU0R7z01C_T_ISMpmAMHLyRpW7Wqjdb8Im3TPkOb9Y8XJ3xZJd6mtcIqMzeFiq1f4wvvhbuXdx9TfoAqt46mqa0pAWAa2JjNbYHbfZ2PMnPIKvV-QYbQbi1-VS-2ZSWGBrEzEqijhEL2QJNxT9sHVY&s=1
//facebookリダイレクト除去
}else if(href.indexOf("facebook.com/l.php?u=") > -1 ){
strUrl = getRedirectUrl(href,"u");
setLink();
//http://c.kakaku.com/forwarder/forward.aspx?ShopCD=3904&PrdKey=K0000616989&Url=http%3A%2F%2Fkakaku%2Ecom%2Fjump%2Faf%2F0051%2Foutside%5F30993%2Ehtml&Hash=3f6d5b0c9f3989d76acd2e1697ada044
//価格コムのURLを事前に修正
}else if(location.href.indexOf("kakaku.com/") > -1 && href.indexOf("kakaku.com/") < 10 && href.indexOf("kakaku.com/") > -1){
if(href.match(/(\?|\&)Url=http/)){
strUrl = getRedirectUrl(href,"Url");
setLink();
//http://kakaku.com/ksearch/redirect.asp?u=http%3A%2F%2Fhb%2Eafl%2Erakuten%2Eco%2Ejp%2Fhgc%2Fg00pukw1%2E4f3hl703%2Eg00pukw1%2E4f3hme41%2F%5FRTkcom10000111%3Fpc%3Dhttp%253A%252F%252Fitem%2Erakuten%2Eco%2Ejp%252Fjism%252F4953103168619%2D42%2D4479%2Dn%252F%26amp%3Bm%3Dhttp%253A%252F%252Fm%2Erakuten%2Eco%2Ejp%252Fjism%252Fi%252F10177711%252F&h=81bdf420e29289c4c563172c6ba7eccd
}else if(href.indexOf("redirect.asp") > -1 && href.match(/(\?|\&)u=http/)){
strUrl = getRedirectUrl(href,"u");
setLink();
}
}else{
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//リンク修正開始-----------------------------------------------------------
//アフィリエイト関連(アフィリエイト専門系)-----------------------------------------------------------
//http://a5.tuhan.ne.jp/r.php?site=coneco&ec=1715&pagetype=coneco&sku=4549210020560&cat=01011010&price=59886&op=category_name%3D%2583%2566%2583%2558%2583%254E%2583%2567%2583%2562%2583%2576%2583%2570%2583%255C%2583%2552%2583%2593%26item_id%3D1130829060%26ta%3D20%26item_name%3DFMVD0502NP%2BESPRIMO%2BD551%252FGX%2BSP%2528Celeron%2BG1610%252F2GB%252F500GB%252FDVD%252FWin7%2BPro%2529&url=http%3A%2F%2Fwww.coneco.net%2Fgoshop.asp%3Fm_id%3Dea2fafcdb4251e13f7c9172f0d089e98%26com_id%3D1130829060%26shop_id%3D1715%26c_id%3D01011010%26goshop%3D1%26ta%3D20
//a5.tuhan(conecoで確認)==============================================================================
if(href.indexOf("a5.tuhan.ne.jp") > -1 && href.match("&url=http")){
// strUrl = href.replace(/ *[\s\S]*&url=http/,"http");
strUrl = getRedirectUrl(href,"url");
setLink();
// allLinks[i].setAttribute("style", "height:auto!important;background:none;");
//sample
//http://px.a8.net/svt/ejp?a8mat=10FZ8L+9U8XPU+5WS+C28PV&a8ejpredirect=http%3A%2F%2Fitem.rakuten.co.jp%2Ftv-ya%2商品%2F
//a8.net=========================================================================================
}else if(href.indexOf(".a8.net")>-1){
if(href.indexOf("a8ejpredirect")>-1){
strUrl = getRedirectUrl(href,"a8ejpredirect");
setLink();
//http://www.a8.net/cgi-bin/redirect?ar=http%3a%2f%2fwww.a8.net%2fas%2fas_promo%2f&a8=gXUI7X-RfAkcnoEcnoU6sRs0XM1RfoURBo4RNolLmpjEY3Bxx
}else if(href.match(/redirect\?ar=/)){
strUrl = getRedirectUrl(href,"ar");
setLink();
//http://px.a8.net/svt/ejp?a8mat=10BM2M+7QMVW2+MZI+15UZJL
//修正http://px.a8.net/svt/ejp?a8mat=++MZI+15UZJL
}else if(href.match("a8mat=") && href.match(/\+/)){
strUrl = href.replace(/a8mat=.*?\+.*?\+/,"a8mat=?++");
setLink();
}
//http://www.accesstrade.net/at/c.html?rk=英数字&url=http%3A%2F%2Fwww.サイト.html%3Fsort%3D5d%26page%3D1
//accesstrade==========================================================================
}else if(href.indexOf("accesstrade.net/") > -1){
if(strUrl.match("&url=http")){
strUrl = getRedirectUrl(href,"url");
setLink();
}
//http://is.accesstrade.net/cgi-bin/isatV2/AccessTradeP/entryV2.cgi?rk=01004s1s007xy1&nid=g1355613504&rurl=http%3A%2F%2Fwww.accesstrade.ne.jp%2F&media=http%3A%2F%2Fh.accesstrade.net%2F&atss=01004s1s007xy1-3de5b4e75a5ef7f5a8caa975196efb9a
if(href.match("&rurl=http")){
strUrl = getRedirectUrl(href,"rurl");
setLink();
}
//http://click.adlantis.jp/ad/click?aid=NzQ2MDcw%250A&at=2&cid=NTAwNDY%253D%250A&conv_id=NDQxNDY%253D%250A&url=http%253A%252F%252Fadf.shinobi.jp%252Fr%252F72b87d467739fce5e46f7177eb014e37%253Futm_source%253Dadmcmpny%2526utm_medium%253Dbanner%2526utm_campaign%253D72890&zid=mYt9U98u5Bc79OQYsdPtXw%3D%3D
//adlantis==============================================================================
}else if(href.indexOf("adlantis.jp") > -1 && href.indexOf("url=") > -1){
strUrl = getRedirectUrl(href,"url");
setLink();
//http://amanaimages.com/lsgate?lstid=pM6b0jdQgVM-Y9ibFgTe6Zv1N0oD2nYuMA&lsurl=http%3A%2F%2Famanaimages.com%2Flp%2Fcreative%2Fafpl130225.html%3Frtm%3Dad_ls%26waad%3DJGpD1ReZ
//amanaimages==============================================================================
}else if(href.indexOf("amanaimages.com") > -1 && href.indexOf("lsurl=http") > -1){
strUrl = getRedirectUrl(href,"lsurl");
setLink();
//fc2==================================================================================
}else if(href.indexOf("blog.fc2.com/goods/") > -1){
strUrl = href.replace(/(blog\.fc2\.com\/goods\/\w+\/).+$/i, "$1");
setLink();
//http://www.google.co.jp/aclk?sa=l&ai=CscvKshs4U-e6JMHAlAXf74G4BK-Lq5cEv72pjHHHvvOyvgEIBBABKAVQ0tL2oANgicvBhOwToAGZis3bA8gBB6kCxOgqt9HjRD6qBCVP0NYfuJc3xTwD_YPY33CG2FOeBMEPRY4tchOkmx_9saBJpN8wwAUFoAYmgAfP9bIkkAcB4BKqgKnV-7C6z58B&sig=AOD64_1ERLIr2li_OU5jev_gF23LyMkuAw&ctype=5&rct=j&q=%E3%82%AD%E3%83%BC%E3%83%9C%E3%83%BC%E3%83%89%E3%81%AE%E9%AB%98%E3%81%95&ved=0CCsQwg8&adurl=http://product.rakuten.co.jp/product/-/9ed6c7ead94e3d087fa4f88896cd725c/%3Fsc2id%3Dgmc_211213_9ed6c7ead94e3d087fa4f88896cd725c%26scid%3Ds_kwa_pla&cad=rja
//googleAd==================================================================================
// }else if(href.indexOf("googleads.g.doubleclick.net/aclk?") > -1 && href.indexOf("adurl=http") > -1){
}else if(href.match(/https?:\/\/(www.)?google(ads)?./)){
if(href.indexOf("&adurl=http") > -1){
strUrl = getRedirectUrl(href,"adurl");
strUrl = strUrl.replace(/\?adid=.*$/,"");
setLink();
//https://www.google.co.jp/url?sa=i&rct=j&q=&esrc=s&source=images&cd=&cad=rja&uact=8&docid=P5Srr3ocO7LUlM&tbnid=dwrfHg15I_WHmM:&ved=0CAEQjxw&url=http%3A%2F%2Fwww.amazon.co.jp%2FT-mart%25E6%2597%25A5%25E6%259C%25AC-%25E3%2582%25AD%25E3%2583%25BC%25E3%2583%259C%25E3%2583%25BC%25E3%2583%2589%25E3%2582%25B9%25E3%2582%25BF%25E3%2583%25B3%25E3%2583%2589-%25E9%25AB%2598%25E3%2581%2595%25E8%25AA%25BF%25E7%25AF%2580%25E4%25BB%2598%25E3%2581%258D-%25E6%25A5%25BD%25E5%2599%25A8-%25E3%2582%25B7%25E3%2583%25B3%25E3%2582%25BB%25E3%2582%25B5%25E3%2582%25A4%25E3%2582%25B6%25E3%2583%25BC%25E4%25B8%25A6%25E8%25A1%258C%25E8%25BC%25B8%25E5%2585%25A5%25E5%2593%2581%2Fdp%2FB00HV8GIPU&ei=VC84U-u_CYTVkAWI3IDgDw&psig=AFQjCNEwf895lq12uQpb-yS7nneXGbr8aQ&ust=1396277458397147
}else if(href.indexOf("&url=http") > -1){
strUrl = getRedirectUrl(href,"url");
setLink();
}
//http://refer.istockphoto.com/ta.php?lc=076750041038004651&atid=124071%7CBannerID%3D124071%7CReferralMethod%3DBanner&url=http%3A%2F%2Fnihongo.istockphoto.com
//istockphoto=======================================================================================
}else if(href.indexOf(".istockphoto.") > -1 && href.match(/(\?|\&)url=http/)){
strUrl = getRedirectUrl(href,"url");
setLink();
//http://ls.j-a-net.jp/?a=36882&d=494714&url=http%3A%2F%2Fwww%2E10keiya%2Ecom%2Fitem%2F5083%2Ehtml
//Janet(conecoで確認)==============================================================================
}else if(href.indexOf(".j-a-net.jp") > -1 && href.match("&url=http")){
strUrl = getRedirectUrl(href,"url");
setLink();
//http://www.linkshare.ne.jp/scland/mgm/?id=gzfSX9*DI5k
//linkshare================================================================================================
}else if(href.indexOf(".linkshare.") > -1 && href.indexOf("id=") > -1){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(params["id"],"").replace("id=","");
setLink();
//linksynergy linkshareらしい(conecoなどで確認)==============================================================================
}else if(href.indexOf(".linksynergy.") > -1 && href.indexOf("RD_PARM1=") > -1){
strUrl = getRedirectUrl(href,"RD_PARM1");
setLink();
//https://www2.liveads.jp/widgets_src/cc.php?c=vs%3D2439871%26amp%3Bvp%3D876489954%26amp%3Bvcptn%3Dfeb92ec1_2_106001%26amp%3Bvc_url%3Dhttp%253A%252F%252F
//liveads.jp==================================================================================
}else if(href.indexOf("www2.liveads.jp") > -1 && href.indexOf("vc_url") > -1){
strUrl = href.replace(/&/g, "&");
strUrl = getRedirectUrl(strUrl,"vc_url");
setLink();
//http://altfarm.mediaplex.com/ad/ck/10591-62045-26616-588?ACD=XQu4C3KR0Oc-QSMuOOkWxZkxzlLa6Riubw&DURL=http%3A%2F%2Falienware.jp%2F
//http://adfarm.mediaplex.com/ad/ck/10591-173392-30165-0?ACD=10591173392301650&!mpro=http://lt.dell.com/lt/lt.aspx?CID=21501&LID=4996848&DGC=LS&DGSeg=DHS&ACD=GSAXENiMcvI-CV438pQz9B3coGmNm0VKeg&DURL=http%3A%2F%2Fwww.dell.com%2Fjp%2Fp%2Fdeals%23!dlpgid%3Dmobility-laptop-deals
//mediaplex.com(検索するとウィルスがどうのとか出てくるリダイレクトサイト)=========================================
}else if(href.match(".mediaplex.com")){
if(href.match("DURL=")){
strUrl = getRedirectUrl(href,"DURL");
}
setLink();
//http://c.af.moshimo.com/af/c/click?a_id=420859&p_id=170&pc_id=185&pl_id=4062&url=http://www.amazon.co.jp/dp/B000MGBPNI
//もしもアフィリエイト==============================================================================
}else if(href.match("c.af.moshimo.com") && href.match("url=")){
strUrl = getRedirectUrl(href,"url");
setLink();
//http://intr.shinobi.jp/LandingHandler?nm=46095&commercial_id=2
//忍者admax======================================================================================
}else if(href.match("shinobi.jp/LandingHandler")){
strUrl = href.replace(/\?.*$/,"");
setLink();
//trafficgate==============================================================================
}else if(strUrl.indexOf("trafficgate.net") > -1){
//http://ad2.trafficgate.net/t/r/18/702/44662/0/-/https://shop.elecom.co.jp/Store/Product.aspx?JanCd=4953103062849
if(href.match("/-/http")){
strUrl = href.replace(/.*\/-\/http/,"http");
setLink();
//http://ad2.trafficgate.net/t/r/1/45/175962_199702/0/TSTOXPz14TNbPnh19Y2tV_oDFr6RLlN
//修正http://ad2.trafficgate.net/t/r/1/45/175962_199702/0/
}else if(href.match(/trafficgate.net\/t\/r\//)){
strUrl = href.replace(/(.*trafficgate.net\/t\/r\/.*?\/.*?\/.*?\/.*?\/).*$/i,"$1");
setLink();
}
//trafficgateのwebantenna(gaが広告主情報)==============================================================================
//http://tr.webantenna.info/rd?waad=vOAmxCtv&ga=WAylLT-1
}else if(href.match("tr.webantenna.info")){
if(href.match("&ga=")){
//何故かパラメータごと消すとエラーが出るので数値だけ削除
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(params["ga"],"");
setLink();
}
//http://ck.jp.ap.valuecommerce.com/servlet/referral?sid=13940&pid=877084383&vc_url=http://www.dospara.co.jp/5shopping/detail_parts.php?ic=80552&waad=vx2bADUp
//http://atq.ck.valuecommerce.com/servlet/atq/referral?sid=2219441&pid=877510753&vcptn=auct/p/lvqz8ovHd60uhKFgupcFng--&vc_url=http%3A%2F%2Fpage3.auctions.yahoo.co.jp%2Fjp%2Fauction%2Fc424445646
//valuecommerce(conecoで確認)==============================================================================
}else if(href.indexOf("valuecommerce.com/") > -1){
var params = createParamArray(href); //パラメータ格納
if(href.indexOf("vc_url") > -1){
strUrl = getRedirectUrl(href,"vc_url");
}
//http://ck.jp.ap.valuecommerce.com/servlet/referral?va=2266773&sid=3091344&pid=882260177&vcid=bGmU_AHjllv84Mt-fZ4weDItjcOmmGcAFaJssucpwdz9kF75jqBDmQ&vcpub=0.621401729893042
//valuecommerce不完全(無駄だけど不要なパラメータを削除)==============================
//vc_urlの指定がないものはpid(ユーザーID?)とofferid(商店ID?)によってオリジナルリンクへ飛ぶ模様
if(href.indexOf("va=") > -1){
strUrl = href.replace(params["va"],"");
}
if(href.indexOf("vcid=") > -1){
strUrl = href.replace(params["vcid"],"");
}
if(href.indexOf("vcpub=") > -1){
strUrl = href.replace(params["vcpub"],"");
}
setLink();
//http://itrack2.valuecommerce.ne.jp/cgi-bin/2507165/vc_entry.pl?ITRACK_INFO=088226016302392627140602095214&COOKIE_PATH=/cgi-bin/2507165/&COOKIE_DOMAIN=.valuecommerce.ne.jp&VIEW_URL=http%3A%2F%2Fwww.takashimaya.co.jp%2Fshopping%2Ffood%2F0400000115%2F&REFERRER=aHR0cDovL2NrLmpwLmFwLnZhbHVlY29tbWVyY2UuY29tLw&COOKIE_EXPIRES=Fri,%2001%20Aug%202014%2009:52:14%20GMT&va=2392627&vs=3091344&vp=882260163
//http://www.daimaru-matsuzakaya.jp/vcentry/?ITRACK_INFO=088226017702266773140602095722&COOKIE_PATH=/&COOKIE_DOMAIN=www.daimaru-matsuzakaya.jp&VIEW_URL=http%3A%2F%2Fwww.daimaru-matsuzakaya.jp%2F&REFERRER=aHR0cDovL2FkLmpwLmFwLnZhbHVlY29tbWVyY2UuY29tLw&COOKIE_EXPIRES=Fri,%2001%20Aug%202014%2009:57:22%20GMT&vs=3091344&vp=882260177&va=2266773
//valuecommerce==============================================================================
}else if(href.indexOf("valuecommerce.ne.jp") > -1
|| href.indexOf("daimaru-matsuzakaya") > -1){
if(href.indexOf("VIEW_URL") > -1){
strUrl = getRedirectUrl(href,"VIEW_URL");
setLink();
}
}else{
}
//RSS-------------------------------------------------------------------
//基本的には対応しない(「RSS広告削除社」などすでに広告削除してくれるサービスがあるため)
//http://psrd.yahoo.co.jp/PAGE=P/LOC=PRD/R=1/O=P/MID=store-wax/TBID=/SIG=1243tval6/EXP=1206101243/*-http%3A//rd.store.yahoo.co.jp/wax/fu-esa-10ce.html
//yahooのRSS?==============================================================================
if(href.indexOf("yahoo.co.jp") > 0){
if(href.match("/*-http")){
strUrl = href.replace(/.*\/\*\-http/,"http");
setLink();
}
//その他::::::::::::::::::::::::::::::::::::::::::::::::
}else{
}
//サイト別----------------------------------------------------------------
//Shop系::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//amazon==============================================================================
if(href.match(/^https?:\/\/(www.)?amazon.(jp|co.jp|com|ca|com.br|com.mx|co.uk|de|fr|it|es|cn|in|com.au)/)){
//http://www.amazon.co.jp/gp/product/images/4048919377/ref=dp_otherviews_z_0?ie=UTF8&img=0&s=books
//商品画像の切り替えURLだったら除外
if(href.match("/gp/product/images/")){
//何もしない
//http://www.amazon.co.jp//ref=as_sl_pd_tf_lc?tag=a8-affi-62498-22&camp=1&creative=1&linkCode=ur1&ref-refURL=http%3A%2F%2Frcm-jp.amazon.co.jp%2F
//rcm-jp.amazon
}else if(href.match(/amazon.(jp|co.jp|com|ca|com.br|com.mx|co.uk|de|fr|it|es|cn|in|com.au)\/\//)){
strUrl = href.replace(/(.*.amazon..*?\/)\/(.*$)/i,"$1");
//http://affiliate.amazon.co.jp/gp/redirect.html/ref=amb_link_84393496_1?_encoding=UTF8&location=http%3A%2F%2Fwww.amazon.co.jp%2Fb%3Fnode%3D465392&token=0AE1DFACC954F91986074504F57C1362C85FB6E8&pf_rd_m=AN1VRQENFRJN5&pf_rd_s=center-3&pf_rd_r=&pf_rd_t=501&pf_rd_p=&pf_rd_i=assoc_main
//affiliate.amazon.co.jp
}else if(href.match("affiliate.amazon") && href.match("location=")){
strUrl = getRedirectUrl(href,"location");
//http://www.amazon.co.jp/s/ref=nb_sb_noss?__mk_ja_JP=カタカナ&url=search-alias=videogames&pct-off=20-&field-keywords=モンハン
//最小URLhttp://www.amazon.co.jp/gp/feature.html/?docId=3077105266
//http://www.amazon.co.jp/gp/feature.html/ref=amb_link_62524409_1?ie=UTF8&docId=3077105266&pf_rd_m=AN1VRQENFRJN5&pf_rd_s=right-3&pf_rd_r=15JXRW95NTA1HR1HTFBJ&pf_rd_t=1401&pf_rd_p=108877009&pf_rd_i=3077105566&tag=jgpto1-22
//今年一番売れたランキング
}else if(href.match("gp/feature.html") && href.match(/\?/)){
var params = createParamArray(href); //パラメータ格納
strUrl=href.replace(/(feature.html).*$/i, "$1/?docId=" + params["docId"]);
//http://www.amazon.co.jp/gp/offer-listing/4047318752/ref=as_li_tf_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=4047318752&linkCode=アフィリエイトIDかもしれない&tag=タグ名
//オファーリスト
}else if(href.match("gp/offer-listing/")){
var setPage = "";
var setCond = "";
var setSPFilter = "";
strUrl=href.replace(/(offer-listing)\/(\w+).*$/i, "$1/$2/");
//ページ移動用パラメータ
if(href.match("startIndex")){
var params = createParamArray(href); //パラメータ格納
setPage = "?startIndex=" + params["startIndex"];
strUrl = strUrl + setPage;
}
//正しいhttp://www.amazon.co.jp/gp/offer-listing/B00CS9LOMY/?condition=used
//正しいhttp://www.amazon.co.jp/gp/offer-listing/B00CS9LOMY/?condition=new
//http://www.amazon.co.jp/gp/offer-listing/B00CS9LOMY/sr=/qid=/ref=olp_tab_new?ie=UTF8&colid=&coliid=&condition=new&me=&qid=&seller=&sr=
//http://www.amazon.co.jp/gp/offer-listing/B00CS9LOMY/sr=/qid=/ref=olp_tab_all?ie=UTF8&colid=&coliid=&condition=all&me=&qid=&seller=&shipPromoFilter=&sort=sip&sr=
//すべて、新品、中古の切り替えcondition=used
if(href.match(/(\?|\&)condition=/)){
var params = createParamArray(href); //パラメータ格納
if(strUrl.match(/\?/)){
setCond = "&condition=" + params["condition"];
}else{
setCond = "?condition=" + params["condition"];
}
strUrl = strUrl + setCond;
}
//正しいhttp://www.amazon.co.jp/gp/offer-listing/B00CS9LOMY/?condition=all&shipPromoFilter=1
//http://www.amazon.co.jp/gp/offer-listing/B00CS9LOMY/sr=/qid=/ref=olp_sss_all?ie=UTF8&colid=&coliid=&condition=all&me=&qid=&seller=&shipPromoFilter=1&sort=sip&sr=
//amazonのみ表示(shipPromoFilterが1だとamazon発送のみの模様)
if(href.match(/(\?|\&)shipPromoFilter/)){
var params = createParamArray(href); //パラメータ格納
if(strUrl.match(/\?/)){
setSPFilter = "&shipPromoFilter=" + params["shipPromoFilter"];
}else{
setSPFilter = "?shipPromoFilter=" + params["shipPromoFilter"];
}
strUrl = strUrl + setSPFilter;
}
//http://www.amazon.co.jp/gp/bestsellers/videogames/ref=pd_ts_zgc_vg_videogames_more?pf_rd_p=124383849&pf_rd_s=right-5&pf_rd_t=101&pf_rd_i=489986&pf_rd_m=AN1VRQENFRJN5&pf_rd_r=17WR411NGHX711WEVSTF
//ベストセラー
}else if(href.match("/bestsellers/") && href.match("ref=")){
var strPg = "";
if(href.match(/(\?|\&)pg=/)){
var params = createParamArray(href); //パラメータ格納
strPg = "?pg=" + params["pg"];
}
strUrl = href.replace(/ref=.*$/, "");
strUrl = strUrl + strPg;
//http://www.amazon.co.jp/OUTDOOR-PRODUCTS(%E3%82%A2%E3%82%A6%E3%83%88%E3%83%89%E3%82%A2%E3%83%97%E3%83%AD%E3%83%80%E3%82%AF%E3%83%84)/b/ref=dp_apparel_byline_ety?_encoding=UTF8&node=2331646051
//該当店舗の商品一覧
}else if(href.match(/\/b\//) && href.match(/(\?|\&)node=/)){
var params = createParamArray(href); //パラメータ格納
strUrl=href.replace(/(\/b\/).*$/i, "$1?node=" + params["node"]);
//http://www.amazon.co.jp/s/ref=s9_dnav_bw_ir03_s?__mk_ja_JP=%83%4A%83%5E%83%4A%83%69&node=2386870051&search-alias=mobile-apps&field-theme_browse-bin=2388060051&pf_rd_m=AN1VRQENFRJN5&pf_rd_s=center-10&pf_rd_r=0D2D7D8MBH9D6RRBWA3X&pf_rd_t=101&pf_rd_p=152649609&pf_rd_i=2381130051
//http://www.amazon.co.jp/s/ref=s9_dnav_bw_ir02_s?__mk_ja_JP=%83%4A%83%5E%83%4A%83%69&node=2386870051&search-alias=mobile-apps&field-theme_browse-bin=2388059051&pf_rd_m=AN1VRQENFRJN5&pf_rd_s=center-10&pf_rd_r=0D2D7D8MBH9D6RRBWA3X&pf_rd_t=101&pf_rd_p=152649609&pf_rd_i=2381130051
//アマゾンアプリのジャンル?
}else if(href.match(/\/s\//) && href.match(/(\?|\&)node=/)){
var params = createParamArray(href); //パラメータ格納
var strAmzField = "";
if(href.match(/field-theme_browse-bin=/)){
strAmzField = "&field-theme_browse-bin=" + params["field-theme_browse-bin"];
}
strUrl=href.replace(/(\/s\/).*$/i, "$1?node=" + params["node"] + strAmzField);
//正しいアドレスhttp://www.amazon.co.jp/gp/aw/d/B003YU3XUM
//http://www.amazon.co.jp/gp/aw/rd.html?uid=アフィIDらしきもの&at=アフィIDらしきもの&a=B003YU3XUM&url=%2Fgp%2Faw%2Fd.html&lc=msn
//スマホ用アドレス(暫定対応)
}else if(href.match(/\/gp\/aw\//)){
if(href.match(/(\?|\&)uid=/) || href.match(/(\?|\&)at=/)){
var params = createParamArray(href); //パラメータ格納
strUrl=href.replace(/(amazon\.(jp|co.jp|com|ca|com.br|com.mx|co.uk|de|fr|it|es|cn|in|com.au))\/.*$/i, "$1" + "/gp/aw/d/" + params["a"]);
}
//「amazon.co.jp/dp/商品ID/?tag=色々」用に念のため対応
strUrl=strUrl.replace(/(\/gp\/aw\/d\/)(.*(\/|))?tag=.*$/i, "$1" + "$2");
//「amazon.co.jp/gp/aw/d/商品ID/ref=リファラ/?tag=色々」の場合取りこぼすようなので対応
strUrl=strUrl.replace(/(\/gp\/aw\/d\/)(.*)\/ref.*$/i, "$1" + "$2/");
//「amazon.co.jp/文字/dp/商品ID」用に念のため対応
strUrl=strUrl.replace(/(amazon\.(jp|co.jp|com|ca|com.br|com.mx|co.uk|de|fr|it|es|cn|in|com.au))\/.*(\/gp\/aw\/d\/.*$)/i, "$1" + "$3");
//商品説明のリンクで必要なパラメータまで消すので補てん
if(!strUrl.match("dsc=") && href.match("dsc=")){
var params = createParamArray(href); //パラメータ格納
strUrl = strUrl + "?dsc=" + params["dsc"];
}
//詳細説明のリンクで必要なパラメータまで消すので補てん
if(!strUrl.match("pd=") && href.match("pd=")){
var params = createParamArray(href); //パラメータ格納
strUrl = strUrl + "?pd=" + params["pd"];
}
//http://www.amazon.co.jp/s/?ie=UTF8&keywords=%EF%BD%88%EF%BD%84%EF%BC%95%EF%BC%99%EF%BC%98&tag=yahhyd-22&index=aps&jp-ad-ap=0&hvadid=38791875337&hvdev=c&ref=pd_sl_5gvni8sdbi_b
//http://www.amazon.co.jp/gp/search?keywords=SD-ANW1475P81&__mk_ja_JP=%83J%83%5E%83J%83i&tag=memotora-22
}else if(href.match(/\/s\//)
|| href.match(/\/search\?/)){
//keywords(keywordsとfield-keywordsの2種類ある模様)
if(href.match(/(\?|\&)keywords=/)){
var strPage = ""; //表示ページ数
var strPriceOff = ""; //割引率
var params = createParamArray(href); //パラメータ格納
if(href.match("page=")){
strPage = "&page=" + params["page"];
}
if(href.match("pct-off=")){
strPriceOff = "&pct-off=" + params["pct-off"];
}
strUrl=href.replace(/(.*\/(s\/|search)).*$/i, "$1?keywords=" + params["keywords"] + strPage + strPriceOff);
//field-keywords
}else if(href.match(/(\?|\&)field-keywords=/)){
var strPage = ""; //表示ページ数
var strPriceOff = ""; //割引率
var params = createParamArray(href); //パラメータ格納
if(href.match("page=")){
strPage = "&page=" + params["page"];
}
if(href.match("pct-off=")){
strPriceOff = "&pct-off=" + params["pct-off"];
}
strUrl=href.replace(/(.*\/(s\/|search)).*$/i, "$1?field-keywords=" + params["field-keywords"] + strPage + strPriceOff);
}else if(href.match(/(\?|\&)rh=/)){
var params = createParamArray(href); //パラメータ格納
strUrl=href.replace(/(.*\/s\/).*$/i, "$1?rh=" + params["rh"]);
}
//http://www.amazon.co.jp/G246%E3%82%B7%E3%83%AA%E3%83%BC%E3%82%BA-24%E5%9E%8B%E3%83%AF%E3%82%A4%E3%83%89%E6%B6%B2%E6%99%B6%E3%83%A2%E3%83%8B%E3%82%BF%E3%83%BC-1920%C3%971080-%E5%85%A5%E5%8A%9B%E7%AB%AF%E5%AD%90%E3%83%9F%E3%83%8BD-Sub15%E3%83%94%E3%83%B3%E3%83%BBDVI-D%E2%80%BBHDCP%E5%AF%BE%E5%BF%9C%E3%83%BBHDMI-G246HLABID/dp/B00ADGM1A8%3FSubscriptionId%3D0571BBGTQZ5YYPEDSY02%26tag%3Dkakaku-pc-pcother-22%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB00ADGM1A8%26me%3dAN1VRQENFRJN5
//通常の商品URL
}else {
var strNewUrl=href.replace(/(amazon\.(jp|co.jp|com|ca|com.br|com.mx|co.uk|de|fr|it|es|cn|in|com.au))\/.*\/(ASIN|product|dp)\/(\w+)(\/|\?|\%3F).*$/i, "$1/" + "dp/" + "$4/");
if (href == strNewUrl) {
//「amazon.co.jp/文字/dp/商品ID/?tag=色々」の場合の除去
strUrl=href.replace(/(amazon\.(jp|co.jp|com|ca|com.br|com.mx|co.uk|de|fr|it|es|cn|in|com.au))\/.*\/(ASIN|product|dp)\/(\w+)$/i, "$1/" + "dp/" + "$4");
//「amazon.co.jp/dp/商品ID/?tag=色々」の場合取りこぼすようなので対応
strUrl=strUrl.replace(/(\/dp\/)(.*(\/|))\?tag=.*$/i, "$1" + "$2");
//「amazon.co.jp/dp/商品ID/ref=リファラ/?tag=色々」の場合取りこぼすようなので対応
strUrl=strUrl.replace(/(\/dp\/)(.*)\/ref.*$/i, "$1" + "$2/");
//「amazon.co.jp/文字/dp/商品ID」文字が残るので削除
//Amazon定期おトク便は除外
if(!strUrl.match("/gp/subscribe-and-save/")){
strUrl=strUrl.replace(/(amazon\.(jp|co.jp|com|ca|com.br|com.mx|co.uk|de|fr|it|es|cn|in|com.au))\/.*(\/dp\/.*$)/i, "$1" + "$3");
}
}else{
strUrl = strNewUrl;
}
}
//http://www.amazon.co.jp/exec/obidos/external-search?search-type=ss&tag=アフィリエイトID&keyword=検索ワード&index=books-jp
//それでもアフィリエイトtagが残ってたら削除
if(strUrl.match(/(\?|\&)tag=/)){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(params["tag"],'');
}
//消し過ぎたパラメータを追加
if(href.match(/\?/)){
var params = createParamArray(href); //パラメータ格納
//カテゴリ(ジャンル)
if(href.match("index=") && !strUrl.match("index=")){
if(strUrl.match(/\?/)){
strUrl = strUrl + "&index=" + params["index"];
}else{
strUrl = strUrl + "?index=" + params["index"];
}
}
}
//URL修正
if(strUrl.indexOf("amazon.jp") > -1){
strUrl = strUrl.replace(/amazon.jp/,"amazon.co.jp");
}
setLink(); //リンク変更
//AppleStore==============================================================================
}else if(href.match("aos.prf.hn")){
//http://aos.prf.hn/click/camref:10ld4j/pubref:Orbotix%20Sphero/destination:http%3A%2F%2Fstore.apple.com%2Fjp%2Fproduct%2FHD162LL%2FA%2Forbotix-sphero-20-%25E3%2583%25AD%25E3%2583%259C%25E3%2583%2586%25E3%2582%25A3%25E3%2583%2583%25E3%2582%25AF%25E3%2583%259C%25E3%2583%25BC%25E3%2583%25AB%3Ffnode%3D43
//デコードhttp://aos.prf.hn/click/camref:10ld4j/pubref:Orbotix Sphero/destination:http://store.apple.com/jp/product/HD162LL/A/orbotix-sphero-20-ロボティックボール?fnode=43
//http://aos.prf.hn/click/camref:10ldan/pubref:Iphone%205s%20Case/destination:http%3A%2F%2Fstore.apple.com%2Fjp%2Fproduct%2FMF041FE%2FA%2Fiphone-5s-case-%E3%83%96%E3%83%A9%E3%82%A6%E3%83%B3%3Ffnode%3D47
//デコードhttp://aos.prf.hn/click/camref:10ldan/pubref:Iphone 5s Case/destination:http://store.apple.com/jp/product/MF041FE/A/iphone-5s-case-ブラウン?fnode=47
strUrl = href.replace(/.*destination:/,"").replace(/\?fnode=.*$/,"");
setLink();
//https://itunes.apple.com/jp/app/camera+/id329670577?mt=8&uo=4&at=11lc2w
//https://widgets.itunes.apple.com/widget.html?c=jp&brc=FFFFFF&blc=FFFFFF&trc=FFFFFF&tlc=FFFFFF&d=&t=&m=music&e=album&w=250&h=300&ids=660107804&wt=discovery&partnerId=&affiliate_id=&at=11lc2w&ct=
//itunes(パラメータatがアフィリエイトID。uoはついでに削除)==============================================================================
}else if(href.match("itunes.apple.com") && href.match(/(\?|\&)at=/)
|| href.match("tunes.apple.com") && href.match(/(\?|\&)uo=/)
|| href.match("itunes.apple.com") && href.match(/(\?|\&)aId=/)){
if(href.match(/(\?|\&)at=/)){
strUrl = href.replace(/(\?|\&)at=.*/,"");
}
if(href.match(/(\?|\&)uo=/)){
strUrl = strUrl.replace(/(\?|\&)uo=.*/,"");
}
//https://banners.itunes.apple.com/banner.html?partnerId=&aId=11lc2w&id=660107804&c=jp&l=ja-JP&bt=catalog&t=catalog_black&w=300&h=250
//itunesバナー(パラメータaIdがアフィリエイトID)
if(strUrl.match(/(\?|\&)aId=/)){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(params["aId"],"");
}
setLink();
//http://www.ark-pc.co.jp/i/20104755/?cid=kakaku
//ark-pcのトラッカー==============================================================================
}else if(href.indexOf("ark-pc.co.jp") > -1 && href.indexOf("?cid=") > -1){
strUrl = href.replace(/\?cid=.*$/,"");
setLink();
//正しいhttp://www.askul.co.jp/p/商品ID/
//http://www.askul.co.jp/stn?mode=affiliate&tool=215&frameURL=/p/商品ID/&sc_e=cp_a_as_vc_ps_a_p_kakaku
//askul==============================================================================
}else if(href.indexOf("www.askul.co.jp") > -1 && href.indexOf("/p/") > -1){
strUrl = href.replace(/(www.askul.co.jp)\/.*(\/p\/)(.*\/).*$/i,"$1"+ "$2" + "$3");
setLink();
//http://askulcorporation.tt.omtrdc.net/m2/askulcorporation/ubox/page?mbox=Lohaco_pc_yshppoint_redirect&mboxDefault=http%3A%2F%2Flohaco.jp%2Fevent%2Fbonus_winter%2F%3Fbk%3Dy%26sc_e%3Dj_as_ya_pc_n_pc
//http://askulcorporation.tt.omtrdc.net/m2/askulcorporation/ubox/page?mbox=Lohaco_pc_yshppoint_redirect&mboxDefault=http://lohaco.jp/event/bonus_winter/?bk=y
//askulcorporation==============================================================================
}else if(href.match(/askulcorporation.tt.omtrdc.net/) && href.match(/mboxDefault/)){
strUrl = getRedirectUrl(href,"mboxDefault");
strUrl = href.replace(/(\?|\&)bk=.*$/,'');
setLink();
//http://www.dena-ec.com/item/167425291?aff_id=ckk
//dena==============================================================================
}else if(href.indexOf("dena-ec.com") > -1 && href.indexOf("?aff_id=") > -1){
cutNum = href.indexOf("?aff_id=");
strUrl=href.slice(0,cutNum);
setLink();
//https://www.mydocomo.com/onlineshop/products/smart_phone/SO02F.html?cid=OLS_PRD_SO02F_from_kdc_PRD_SO02F
//docomo==============================================================================
}else if(href.indexOf("mydocomo.com") > -1 && href.indexOf(".html?") > -1){
strUrl = href.replace(/.html?.*$/,".html");
setLink();
//http://www.dominos.jp/affiliate/lsdlp.php?siteID=2xz7U9Rg3UU-EQa7KfIyfr1jMEoV07nNfw
//dominos==============================================================================
}else if(href.indexOf("dominos.jp") > -1 && href.indexOf("siteID=") > -1){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(params["siteID"],"");
setLink();
//http://www.dospara.co.jp/5shopping/detail_parts.php?bg=2&br=98&sbr=529&ic=356714/
//dosparaの不要で不明なパラメータ削除==============================================================================
}else if(href.indexOf("dospara.co.jp") > -1 && href.indexOf("ic=") > -1){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(/.php.*$/,".php?ic=") + params["ic"] + "&lf=0";
setLink();
//http://rover.ebay.com/rover/1/711-53200-19255-0/1?ff3=4&pub=5575046443&toolid=10001&campid=5337310214&customid=&mpre=http%3A%2F%2Fwww.ebay.com%2Fitm%2FBULK-WHOLESALE-ARACHNOPHOBIA-ALUMINIUM-METAL-CASE-COVER-BUMPER-FOR-IPHONE-5-%2F111042804375%3Fpt%3DUK_MobilePhones_MobilePhonesCasesPouches%26var%3D%26hash%3Ditem19daaaba97
//ebay===============================================================================
}else if(href.indexOf(".ebay.com") > -1 ){
var params = createParamArray(href); //パラメータ格納
if(href.indexOf("mpre=http") > -1){
strUrl = getRedirectUrl(href,"mpre");
setLink();
}
//http://www.ebay.com/rpp/verabradley/vera-bradley-on-ebay/?customid=wKpbcDqpEeOGLorIgZYqDQ1xf4_s7wk3_0_0_0&pub=5574652453&afepn=5337259887&campid=5337259887&_trksid=p2050601.m1256&_ipg=192&_trkparms=%26clkid%3D2130385891313813204&afepn=5337259887
if(href.indexOf("customid=") > -1){
strUrl = href.replace(params["customid"],"").replace("customid=","");
}
if(href.indexOf("_trksid=") > -1){
strUrl = href.replace(params["_trksid"],"").replace("_trksid=","");
}
//http://www.ksdenki.com/ec/commodity/00000000/4905524811384&vcptn=DPF-C70A%20W/
//ks電気の不要で不明なパラメータ削除==============================================================================
}else if(href.indexOf("vcptn") > -1){
strUrl = href.replace(/(\&|\?)vcptn.*$/,"");
setLink();
//http://lohaco.jp/product/2690832/?sc_e=a_as_vc_ps_a_kakaku
//http://lohaco.jp/lksearch/?categoryLl=&categoryL=&categoryM=&categoryS=&searchWord=%E6%8E%83%E9%99%A4%E6%A9%9F&andOr=&itemExpl=0&resultType=&resultCount=&itemSpec=&sortDir=&sc_e=l_dt_ya_se_c_pc_58000000000_458653&ioneid=SI_692255038__1&sissr=1
//lohaco==============================================================================
}else if(href.indexOf("lohaco.jp") > -1){
if(strUrl.indexOf("sc_e=") > -1){
strUrl=href.replace(/(.*)(\?|\&)sc_e=.*$/i,'$1');
setLink();
}
//http://www.necdirect.jp/redir/ndentryls.asp?lstid=CBTtYXMkwwI-TaKj1VZm5Y78w0wJpYbXYg&lsurl=http%3A%2F%2Fwww.necdirect.jp%2Fshop%2Fnote%2Flavie%2Fsh%2Findex.html
//NEC==================================================================================
}else if(href.indexOf("necdirect.jp") > -1 && href.match(/(\?|\&)lsurl=http/)){
strUrl = getRedirectUrl(href,"lsurl");
setLink();
//http://www.nissen.co.jp/sho_item/regular/6400/6400_12861.asp?book=6400&cat=other003/
//ニッセンの不要で不明なパラメータ削除==============================================================================
}else if(href.indexOf("nissen.co.jp") > -1 && href.indexOf(".asp") > -1){
strUrl = href.replace(/.asp.*$/,".asp");
setLink();
//http://www.e-nls.com/access_prod.php?agency_id=af739546-o08&pcode=7713
//nls===============================================================================
}else if(href.match("e-nls.com") && href.match("agency_id=") ){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(params["agency_id"],"").replace(/agency_id=/,"");
setLink();
//http://comic.pixiv.net/works/59?ads=tx-w59
//pixiv=============================================================================
}else if(href.indexOf("pixiv.net")>0 && href.match("ads=")){
strUrl = href.replace(/\?.*$/,"");
setLink();
//http://pt.afl.rakuten.co.jp/c/数字/_RTvrgj数字?url=http%3A%2F%2Fitem.rakuten.co.jp%2Fサイト名とか
//楽天==============================================================================
}else if(href.indexOf("rakuten.co.jp")>0){
// var raktenPrms = "";
//http://item.rakuten.co.jp/jet-pc/4300_15/--hybrid--http://item.rakuten.co.jp/jet-pc/4300_15/&subid=&type=10&tmpid=11045
//楽天のリダイレクト除去
if(href.indexOf("--hybrid--http") > -1){
cutNum = href.indexOf("--hybrid--");
strUrl = href.slice(cutNum+10);
strUrl = strUrl.replace(/(\?|\&)subid=.*$/,'');
}
//アフィリエイト除去
if(href.indexOf("pt.afl.rakuten.co.jp")>-1 && href.match(/(\?|\&)url=/)){
strUrl = getRedirectUrl(href,"url");
}else if(href.indexOf("hb.afl.rakuten.co.jp")>-1 && href.match(/(\?|\&)pc=/)){
strUrl = getRedirectUrl(href,"pc");
}
//http://rd.rakuten.co.jp/a/?R2=http://ranking.rakuten.co.jp/daily/gender=female/?scid=s_kwa_dsa&lsid=000006
if(href.match("rd.rakuten.co.jp") && href.match("R2=")){
strUrl = getRedirectUrl(href,"R2");
}
/*
//http://esearch.rakuten.co.jp/rms/sd/esearch/vc?sv=2&v=2&e=0&s=28&sub=0&k=0&oid=000&c=2836&sitem=%A5%D1%A5%BD%A5%B3%A5%F3%A5%C7%A5%B9%A5%AF+180cm+BON&f=A&nitem=&g=0&min=&max=&p=0
//esearchはパラメータの文字エンコードUTF8(?)をデコードするらしい
if(href.match("/esearch.rakuten.co.jp") && href.match("sitem=")){
var params = createParamArray(href); //パラメータ格納
raktenPrms = rakutenParam();
strUrl = "http://esearch.rakuten.co.jp/rms/sd/esearch/vc?" + raktenPrms;
}
//http://search.rakuten.co.jp/search/mall?v=2&s=1&p=1&min=&max=&g=101164&sitem=web+money&st=A&nitem=%92%99%8B%E0%94%A0+%82%A0%82%C2%82%DC%82%EA+Confidential++Fallout
if(href.match("/search.rakuten.co.jp") && href.match("sitem=")){
var params = createParamArray(href); //パラメータ格納
raktenPrms = rakutenParam();
strUrl = "http://search.rakuten.co.jp/search/mall?sitem=" + raktenPrms;
}
//http://search.books.rakuten.co.jp/bksearch/nm?sitem=%BF%B7%CA%A1%CA%DD%CE%B4&sv=30&v=2&spv=2
if(href.match("/search.books.rakuten.co.jp") && href.match("sitem=")){
var params = createParamArray(href); //パラメータ格納
raktenPrms = rakutenParam();
strUrl = "http://search.books.rakuten.co.jp/bksearch/nm?sitem=" + raktenPrms + "&spv=2";
}
*/
//おそらくパラメータのscidはトラッカーでsc2idがアフィIDと思われるのでまとめて削除
strUrl = strUrl.replace(/(\/|\?|\&)scid=.*$/,"").replace(/(\/|\?|\&)sc2id=.*$/,"");
setLink();
//http://www.sekaimon.com/itrack/vcurl_entry.pl?ITRACK_INFO=087867214402356511140625234512&COOKIE_PATH=/&COOKIE_DOMAIN=.sekaimon.com&VIEW_URL=http%3A%2F%2Fwww.sekaimon.com%2FValueCommerce%2F&REFERRER=aHR0cDovL2NrLmpwLmFwLnZhbHVlY29tbWVyY2UuY29tLw&COOKIE_EXPIRES=Sun,%2024%20Aug%202014%2023:45:12%20GMT&vs=2254237&vp=878672144
//sekaimon=============================================================================
}else if(href.match(".sekaimon.com") && href.match("VIEW_URL=http")){
strUrl = getRedirectUrl(href,"VIEW_URL");
setLink();
//駿河屋==============================================================================
}else if(href.match("suruga-ya.jp")){
//http://affiliate.suruga-ya.jp/modules/af/af_jump.php?user_id=227&goods_url=http%3A%2F%2Fwww.suruga-ya.jp%2Fgame.html
if(href.match("goods_url=")){
if(getRedirectUrl(href,"goods_url") != ""){
strUrl = getRedirectUrl(href,"goods_url");
setLink();
}
}
//ツクモのトラッカー==============================================================================
}else if(href.indexOf("tsukumo.co.jp") > -1 && href.indexOf("?cid=") > -1){
strUrl = href.replace(/\?cid=.*$/,"");
setLink();
//yahoo=============================================================================================
}else if(href.indexOf("yahoo.co.jp") > 0){
//http://rd.listing.yahoo.co.jp/o/shop/FOR=S1i43IwqjlY6D7pQe57uxmGLnstXXQo1xbvXhyeuVhgpSb9J7jjgtHs1.cDrqA--;/aclk;_ylt=A3JvdlJIaDFTX34AMlOkKdhE;_ylu=X3oDMTRkZTBza3F0BE9WTANOBFIDMQRhZGdyaWQDOTI1MTE5NDAxMwRjb3N0A29aLllOSHhLaFd2awRjcnR2aWQDMzA1NzM2NTc2NTMEZ2NsbnRpZANleHRlcm5hbC15ai1wYXJ0bmVyLWczLWFkLTAwMDA0MARvbW0DZQRzZWMDb3YtdG9wBHNwYWNlaWQDMTE1NTAxNzEyNA--?sa=l&ai=CbBULSGgxU8-OLNHB-QOe8IC4Br3T8t4EzYnri3KbnsnhUAgAEAEgiq3GGygCUOOCuL35_____wFgicvBhOwToAG7jvPZA8gBAakCobEkFGAGRT6qBCBP0PlWubvcavx2c1oHxugF_cK0CWlnZeNXj4yL7OLhyKoGAIAHrfGMJpAHAQ&sig=zOu8r1I75B6If2Q8VWzjkkTKFV4_a1yaiXW_2MQWxJ4geCFv5_y7/**http://www.yodobashi.com/ec/category/index.html%3Fword%3DHD598%26yad1%3De%26yad3%3Dhd598%26yad4%3D30573657653%26xfr%3Dyad%26utm_source%3Dyahoo%26utm_medium%3Dcpc%26utm_term%3DHD598
//yahoo広告 スポンサードサーチ
if(href.match(/\*\*http/)){
strUrl = strUrl.replace(/.*\/\*\*http(.*$)/i,'http$1' );
setLink();
}
//http://rd.yahoo.co.jp/shopping/adwords/evt=71758/0bc80r6/*http://rd.yahoo.co.jp/shp/listing/ad/evt=86270/evj=0bc80r6/?http://store.shopping.yahoo.co.jp/eastnoboru/y00119.html
//yahoo広告(ヤフオクのカレンダー追加が文字化けのため調整中。
//アフィIDが含まれるかもわからないので一時凍結)→/ad/のURLのみに変更で様子見
if(href.match(/\?http/) && href.match(/\/ad\//)){
strUrl = href.replace(/.*\/\?http/,"http");
setLink();
}
//http://ard.yahoo.co.jp/SIG=159riqdlj/M=300839622.301691697.303279450.312101179/D=jp_auc_sjp/S=2084231756:SQB/_ylt=A7dPeB51J4VTtSoAerBM2jp8/Y=jp/EXP=1401242517/L=mQR8z7dPe_IFrZpbUytdIwJHdvB8IlOFJ3UACIjt/B=OsbWALdPhAs-/J=1401235317631220/SIG=12469dh71/A=301897421/R=0/*http://8190.co.jp/rd/rd.php?aid=yau_south_140526_3
//http://ard.yahoo.co.jp/SIG=159f1c93q/M=300842054.301694579.303279426.312441763/D=jp_auc_dir/S=2084000003:YSP/Y=jp/EXP=1401243943/L=7v8Go7dPF9kFrZpbUytdIwAjdvB8IlOFLQcABB.a/B=DVX9ALdPhAs-/J=1401236743377411/SIG=11j2mllb9/A=301897373/R=0/*http://card.yahoo.co.jp/campaign/
//yahoo広告
if(href.match(/\/\*http/)){
strUrl = strUrl.replace(/.*\/\*http/,"http");
setLink();
}
//http://rd.ane.yahoo.co.jp/rd?ep=Zu8M71vT9mdngAGwggXc7XSnf9kuszvHyFc5TZbjl2TngsfCpch0pxpjcag_g.93uqTr2ZyM1ZNOlxs2LxSkPO1NdV.l3tpu9e6mhYL8G9wqOKRxhOJW4xj3XQKKxQvtqyqtUJKeifRur24Svte1UnOJ_0KWk0JT8NNDyGpvrdMGYw--&a=hY1Vje8_xD5MDIo7Jw--&s=FSi8Pp49lQ--&t=DpEYQJl6yQAvrid1soQ834am&C=9&D=1&I=&RI=b819b94c4e16443476c39e842f1bc244&S=124a3ff80a84&as=1&f=1&ff=0&fq_d=1,1,1,0&fq_m=3,3,3,0&fq_w=1,1,1,0&g=4&lp=http%3a//promotionalads.yahoo.co.jp/ads/listing04/%3fo=JP1000&maf=0&mid=0&o=9&p=9&qfid=&r=0&rfm=&sfid=0&skwid=0&F=0&tlid=0&u=detail.chiebukuro.yahoo.co.jp/qa/question_detail/
//yahoo広告 Yahoo!ディスプレイアドネットワーク(YDN)
if(href.match(/lp=http/)){
strUrl = getRedirectUrl(href,"lp");
setLink();
}
//http://openuser.auctions.yahoo.co.jp/jp/show/auctions?userID=ユーザーID&u=ユーザーID
//yahooオークションのアフィトラッカーらしきもの
if(href.match("auctions.yahoo.co.jp") && href.match(/(\?|\&)u=/)){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace("u=" + params["u"],"");
setLink();
}
/*必須のため除去不可。コメントアウト
//http://navi.auctions.yahoo.co.jp/jp/config/remember?aID=185394159&.crumb=g//sIm7P2rd&.done=http://auctions.search.yahoo.co.jp/search?ei=UTF-8&p=roventa&auccat=0&tab_ex=commerce&ei=UTF-8
//yahooのセキュリティ用のトラッカーというかリファラみたいなもの(個人情報確認のログインで必須のため除去不可)
//.doneというパラメータはリファラ的なものと思われる
if(href.match(/done=http/)){
strUrl = href.replace(/\&.done=http.*$/,"");
// setLink();
}
*/
//http://www.yodobashi.com/ec/category/index.html?word=HD598&yad1=e&yad3=hd598&yad4=30573657653&xfr=yad
//ヨドバシ==============================================================================
}else if(href.indexOf("yodobashi.com") > -1 && href.indexOf("yad") > -1){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(/(.*index.html\?word=).*$/i,"$1") + params["word"];
setLink();
//http://tracking.yourguide.co.jp/in/ya-575042/http://shopping.yourguide.co.jp/word/HD598/
//tracking.yourguide==============================================================================
}else if(href.indexOf("tracking.yourguide.co.jp/in/") > -1){
strUrl = href.replace(/.*tracking.yourguide.co.jp\/in\/.*\/(http.*$)/i,"$1");
setLink();
//同人系::::::::::::::::::::::::::::::::::::::::::::::::::::::::
//http://www.akibain.com/afbc.php?afid=アフィリエイトID(数字)&url=d6/
//http://www.akibain.com/affiliate.php?afbid=商品ID&type=0&link=1&dir=1&afid=2
//アキバイン========================================================================
}else if(href.indexOf("akibain.com")>-1 && href.indexOf("afid=") > -1){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(params["afid"],"");
//http://www.akibain.com/afb.php?afbid=商品ID&type=4&link=0&dir=1(←カテゴリ)&afid=アフィリエイトID(数字)
//正しいURLhttp://www.akibain.com/d1(←カテゴリ)/?cls=cntdtl&cid=商品ID
if(href.match("afbid=") && href.match("dir=")){
strUrl = "http://www.akibain.com/d" + params["dir"] + "/?cls=cntdtl&cid=" + params["afbid"];
}
setLink();
//http://www.digiket.com/index/_data/AFID=dldoujin/
//http://www.digiket.com/work/show/_data/ID=ITM0099465/AFID=dldoujin/
if(href.indexOf("AFID=") > -1){
strUrl = href.replace(/AFID=.*\//,"");
setLink();
}
//http://www.d-drops.com/?af_cd=AF12696
//d-drop(閉鎖→再開?)========================================================================
}else if(href.match("d-drops.com")){
if(href.match("af_cd=")){
strUrl = href.replace(/(\?|\&)af_cd=.*$/,"");
setLink();
}
//http://www.dd-style.com/index.php?ad=2041
//dd-Style========================================================================
}else if(href.match("dd-style.com")){
if(href.match("ad=")){
strUrl = href.replace(/(\?|\&)ad=.*$/,"");
setLink();
}
//デジケット========================================================================
}else if(href.indexOf("digiket.com")>-1){
//http://www.digiket.com/p/aflink/_data/AFID=dldoujin/?URL=http%3A%2F%2Fwww.digiket.com%2Fcommon%2Faffiliate%2F
if(href.indexOf("URL=") > -1){
strUrl = getRedirectUrl(href,"URL");
setLink();
}
//http://www.digiket.com/work/show/_data/ID=ITM0092020/AFID=k1040041/
if(href.match(/\/AFID=/)){
strUrl = href.replace(/\AFID=.*?\//,"");
setLink();
}
//DLげっちゅ========================================================================
}else if(href.indexOf("getchu.com")>-1 && href.indexOf("af") > -1){
//念のため先にアフィID消去
if(href.indexOf("aff=") > -1){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(params["aff"],"");
}
//http://order.getchu.com/r.php?aff=001560-01-00&t=2&gcd=D0025474
//正しいURLhttp://dl.getchu.com/index.php?action=gd&gcd=D0028859
if(href.indexOf("gcd=") > -1){
var params = createParamArray(href); //パラメータ格納
strUrl = "http://dl.getchu.com/index.php?action=gd&gcd=" + params["gcd"];
}
//正しいURLhttp://dl.getchu.com/index.php?action=mStatic&tno=StgPLog_NEW
//デコードURLhttp://order.getchu.com/r.php?aff=&url=http://dl.getchu.com/index.php?action=mStatic&tno=StgPLog_NEW+
//http://order.getchu.com/r.php?aff=000010-02-00&url=http%3A%2F%2Fdl.getchu.com%2Findex.php%3Faction%3DmStatic%26tno%3DStgPLog_NEW+
//URLリダイレクトの場合
if(href.match("url=")){
strUrl = getRedirectUrl(href,"url");
//不要な最後の+を削除
if(strUrl.charAt(strUrl.length - 1) == "+"){
strUrl = strUrl.slice(0,-1);
}
}
//http://image.getchu.com/api/geturl.phtml/id/769002/af/601/aftype/1/sid/851/url/soft.phtml-/?id=769002
//正しいURLhttp://www.getchu.com/soft.phtml?id=769002
if(href.match("/af/") && href.match("/aftype/") && href.match("/sid/")){
strUrl = href.replace(/\/af\/.*?\//,"/");
strUrl = strUrl.replace(/\/aftype\/.*?\//,"/");
strUrl = strUrl.replace(/\/sid\/.*?\//,"/");
strUrl = "http://www.getchu.com/" + strUrl.replace(/.*\/url\/(.*?)-\//i,"$1");
}
setLink();
//Dlsite==============================================================================
}else if(href.indexOf(".dlsite.com") > -1 && href.match(/(\/|%2F)dlaf(\/|%2F)/)){
//正しいURL http://www.dlsite.com/maniax(←ジャンル)/work/=/product_id/RJ番号/
//http://www.dlsite.com/home/dlaf/=/aid/ユーザーID/url/http://www.dlsite.com/maniax/work/=/product_id/RJ番号.html/?medium=blog&program=on_sale&source=blogparts_v_ranking
//http://www.dlsite.com/maniax/work/=/product_id/RJ番号/?medium=blog&program=on_sale&source=blogparts_RankingParts&unique_op=af
//商品ページへのジャンプクッションを削除
if(href.indexOf("/url/http") > -1){
cutNum=href.indexOf("/url/http");
strUrl=href.slice(cutNum+5);
strUrl=strUrl.replace(/.html.*$/,"/");
strUrl = strUrl.replace(/\?.*$/,"/");
//正しいURL http://www.dlsite.com/maniax/work/=/product_id/RJ番号/
//http://www.dlsite.com/maniax/dlaf/=/link/work/aid/ユーザーID/id/RJ番号.html
//http://maniax.dlsite.com/dlaf/=/link/work/aid/ユーザーID/id/RJ番号.html
//商品ページ
}else if(href.match(/id\/(R|B|V)J/) ){
strUrl=href.replace(/.html.*$/,"/").replace(/aid\/ *[\s\S]*\/id/,'=/product_id').replace(/\/dlaf\/=\/link/,'');
//正しいURLhttp://www.dlsite.com/maniax/circle/profile/=/maker_id/RG番号.html
//http://www.dlsite.com/maniax/dlaf/=/link/profile/aid/ユーザーID/maker/RG番号.html
//出版グループ
}else if(href.match(/maker\/(R|B)G/)){
strUrl=href.replace(/dlaf\/ *[\s\S]*\/maker/,'maker');
//http://www.dlsite.com/maniax/dlaf/=/aid//url/http://www.dlsite.com/home/welcome
//トップページとか・・・一度ユーザーIDのURL開くとクッキーが残るっぽい
}else if(href.match("/url/")){
if(href.indexOf("/url/") > -1){
strUrl=href.replace(/\/url\/http:\/\/.*$/,"").replace(/.htm/,"/");
}
//http://www.dlsite.com/home/dlaf/=/aid/ユーザーID/link/top.html
//http://www.dlsite.com/maniax/dlaf/=/aid/ユーザーID/year/2014/month/5/day/31/link/news.html
//こうするとアフィリエイト消せるhttp://www.dlsite.com/maniax/dlaf/=/year/2014/month/5/day/31/link/news.html
//dlaf/=/ありでサイトに行くとトラッカーパラメータが付いちゃうけど肝心のアフィリエイトID無いのでおそらく無害
//正しいURLhttp://www.dlsite.com/maniax/new/=/year/2014/mon/5/day/31/
//その他
}else if(href.match("/aid/")){
strUrl = href.replace(/\/aid\/.*?\//,"/");
}
setLink();
//CSS修正
dlsiteCSS()
//Dlsite残り===========================================================================
}else if(href.indexOf(".dlsite.com") > -1){
if(href.indexOf("/?") > -1){
strUrl=href.replace(/\/\?.*$/,"/");
setLink();
dlsiteCSS()
}
//DMM==============================================================================
}else if(href.match(/.dmm.co(m|.jp)/) && href.indexOf("_article=")<0){
if(href.indexOf("_lurl=") > -1){
cutNum=href.indexOf("_lurl=");
strUrl=href.slice(cutNum+6);
}
http://www.dmm.co.jp/dc/doujin/-/list/=/article=maker/id=25138/cheekama58-001
if(href.indexOf("/id=") > -1){
strUrl=href.replace(/(.*\/id=.*?\/).*$/i,'$1');
}
//http://www.dmm.co.jp/mono/book/-/detail/=/cid=商品ID/アフィリエイトID
if(href.indexOf("/cid=") > -1){
strUrl=href.replace(/(.*\/cid=.*?\/).*$/i,'$1');
}
//http://www.dmm.co.jp/ppm/=/_jloff=1/123d-006
//http://www.dmm.co.jp/digital/doujin/=/_jloff=1/doujin-001
//http://www.dmm.com/rental/-/detail/=/cid=000_384/_jloff=1/
if(href.indexOf("_jloff=")>-1){
strUrl=href.replace(/\/_jloff=.*$/i,'/');
//http://www.dmm.com/digital/video/mondo/moroyama_porori/index_html/=/ch_navi=/jloff-001
}else if(href.indexOf("jloff-")>-1){
strUrl=href.replace(/\/jloff-.*$/,'/');
}
setLink();
//http://ad.c-ats.jp/ad/p/r?_site=67&_article=74&_link=93&_image=93
//http://ad.maist.jp/ad/p/r?_site=10165&_loc=10450&_campaign=663&_article=5777&_link=34346&_image=35521&_deliver=1
//http://ad.dmm.com/ad/p/r?_site=9999999&_article=1052&_link=転送先のURL指定用の数字&_image=不明な数字
//http://app-adforce.jp/ad/p/r?_site=9364&_article=56674&_link=1731290&_image=1731291&suid=eae08ff6d51e68e81788caa37cd7eb80435272c7aa68bf6432373904dffe967c&sad=324379238
//最小構成(_linkが必要な場合もある?)http://app-adforce.jp/ad/p/r?_article=56674&_image=1731291
//DMM系なのかな?_siteがアフィと思われるが消すと怒られる場合があるのでありえない大きい数字指定。_articleがURL指定=================
}else if(href.indexOf("_article=")>-1){
var strSite = "";
var strLink = "";
var strImage = "";
var params = createParamArray(href); //パラメータ格納
if(href.indexOf("_site=")>-1){
strSite = "&_site=99999999999";
}
if(href.indexOf("_link=")>-1){
if(params["_link"] != ""){
strLink = "&_link=" + params["_link"];
}
}
if(href.indexOf("_image=")>-1){
if(params["_image"] != ""){
strImage = "&_image=" + params["_image"];
}
}
strUrl = href.replace(/\?.*$/,"?_article=") + params["_article"] + strSite + strLink + strImage;
setLink();
//ぎゅっと==============================================================================
}else if(href.match("gyutto.com") && href.match(/\/af-/)){
//gyutto.com/book/af-1299/b-61/aftype-2/(←最後のスラッシュが無いURLもあるので注意)
if(href.match(/aftype.*\//)){
strUrl = href.replace(/\/af-.*aftype.*?\//,"/");
//http://gyutto.com/cart/af-9256/aftype-1?action=add&id=104409&item_price_id=152819
//正しいURLhttp://gyutto.com/cart/?action=add&id=104409&item_price_id=152819
}else if(href.match("id=") && href.match("item_price_id")){
strUrl = href.replace(/af-.*\?/,"?");
//http://gyutto.com/af-9878(←アフィリエイトID)/search/search_list.php?prePage=&action=sort&genre_id=20687&mode=search&sub_category_id=16&search_item_search_id=&set_category_flag=1&stype=new
}else if(href.match(/\/af-.*?\//) && !href.match("aftype")){
strUrl = href.replace(/\/af-.*?\//,"/");
}else{
strUrl = href.replace(/\/af-.*$/,"");
}
setLink();
//http://gyut.to/category.phtml?afid=767-T&item=115684
//修正http://gyut.to/item115684
//その後飛ぶhttp://gyutto.com/i/item115684
//ぎゅっと==============================================================================
}else if(href.match("gyut.to")){
if(href.match("afid=") && href.match("item=")){
var params = createParamArray(href); //パラメータ格納
strUrl = "http://gyut.to/item" + params["item"];
}
setLink();
//http://www.melonbooks.com/index.php?main_page=affi_go&affi_url=http%3A%2F%2Fwww.melonbooks.com%2Findex.php%3Fmain_page%3Dindex%26age%3D1%26category%3D0&affi_id=doujin
//メロンブックス==============================================================================
}else if(href.match("melonbooks.com")){
if(href.match("affi_url=")){
strUrl = getRedirectUrl(href,"affi_url");
setLink();
}
//http://www.melonbooks.com/index.php?main_page=product_info&products_id=IT0000159969#.U4nnw1FQJUM.twitter
if(href.match("#.")){
strUrl = href.replace(/#\..*$/,"");
setLink();
}
//http://market.surpara.com/go/?IID=商品ID&AFID=アフィリエイトID
//http://market.surpara.com/go/?AFID=アフィリエイトID&IID=商品ID
//サーパラ==============================================================================
}else if(href.match("surpara.com") && href.match("AFID")){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(params["AFID"],"");
setLink();
//その他::::::::::::::::::::::::::::::::::::::::::::::::::::::::
}else{
}
//スマホ関連(無駄かもしれないけど余分なパラメータ削除)-----------------------------------------
//http://appdriver.jp/s/smart-c/click?digest=ff3e42b83eea658736cade80fd6c0a7faaf447484fcdad0d00acf253a2a4c23d&campaign_id=17571&identifier=2w4olVtC
//app-adforce====================================================================
if(href.match("appdriver.jp/s/")){
strUrl = href.replace(/identifier=.*$/,'identifier=');
setLink();
//その他:::::::::::::::::::::::::::::::::::::::::::::::::::::
}else{
}
//海外アフィサイト関連(無駄かもしれないけど余分なパラメータ削除)-----------------------------------------
//http://scripts.affiliatefuture.com/AFClick.asp?affiliateID=306800&merchantID=6286&programmeID=17357&mediaID=141595&tracking=Ebsetphotos.com&url=
//http://scripts.affiliatefuture.com/AFClick.asp?merchantID=99999999&programmeID=17357&mediaID=999999999&tracking=
//affiliate future(海外)=================================================================
if(href.match("affiliatefuture.com") && href.match("affiliateID=")){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(/\?.*$/,"") + "?programmeID=" + params["programmeID"] + "&merchantID=99999999&mediaID=999999999&tracking=";
setLink();
//http://affiliates.jlist.com/click/4721?url=http://www.jlist.com/product/PRE3657
//Affiliate jlist(海外系)==============================================================================
}else if(href.match("affiliates.jlist.com")){
if(href.match(/(\?|\&)url=http/)){
strUrl = getRedirectUrl(href,"url");
setLink();
}
//http://www.awin1.com/cread.php?awinmid=5618&awinaffid=!!!id!!!&clickref=&p=http%3A%2F%2Fwww.okadirect.com%2Foutlet%2F
//Affiliate Window(海外系)==============================================================================
}else if(href.match("awin1.com")){
if(href.match(/(\?|\&)p=http/)){
strUrl = getRedirectUrl(href,"p");
setLink();
//https://www.awin1.com/awclick.php?mid=1074&id=176917
}else if(href.match(/(\?|\&)id=/)){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(params["id"],"").replace(/(\?|\&)id=/,"");
setLink();
}
//http://www.cdjapan.co.jp/aff/click.cgi/PytJTGW7Lok/4759/A013611/goods%2Fgoods_detail.html?KEY=NEOGDS-106499
//正しいhttp://www.cdjapan.co.jp/product/NEOGDS-106499
//cdJapan(海外)==========================================================================
}else if(href.match(/www.cdjapan.co.jp\/aff\//)){
var params = createParamArray(href); //パラメータ格納
if(params["KEY"] != ""){
strUrl = href.replace(/\/aff\/.*KEY=/,"/product/");
setLink();
}
//http://www.cdjapan.co.jp/cgi-bin/affclick.cgi?KEY=&to=http%3A%2F%2Fwww.cdjapan.co.jp%2Fdetailview.html&click=59cTi%2FH.dYDAsTAqe1uaTO5Pa8WB&is_neolog=0
//cdJapan(海外)==========================================================================
}else if(href.match(/www.cdjapan.co.jp\/cgi-bin\/affclick.cgi/) && href.match(/(\?|\&)to=http/)){
strUrl = getRedirectUrl(href,"to");
setLink();
//http://www.clixgalore.com/PSale.aspx?BID=33228&AfID=181601&AdID=4685&LP=www.winemakerschoice.com.au
//clixgalore(海外系アフィ)===============================================================
}else if(href.indexOf("clixgalore.com") > -1 && href.match(/(\?|\&)LP=/)){
strUrl = getRedirectUrl(href,"LP");
if(!strUrl.match(/^http/)){
strUrl = "http://" + strUrl;
}
setLink();
//http://www.jdoqocy.com/click-7474779-10676026?url=http%3A%2F%2Fwww.disneystore.com%2Ftransfer%2F224510%2Ftees-tops-shirts-clothes-country-bear-jamboree-attraction-poster-tee-for-adults-limited-availability%2Fmp%
//http://www.tkqlhce.com/click-7474779-10676026?url=http%3A%2F%2Fwww.disneystore.com%2Ftransfer%2F224510%2Ftees-tops-shirts-clothes-country-bear-jamboree-attraction-poster-tee-for-adults-limited-availability%2Fmp%2F1356296%2F1000228%2F%3FCMP%3DAFL-AffLSGen%26att%3DLSGenAffl&cjsku=7505055880490M
//Commission Junction(海外)==============================================================
//リダイレクト後に気休め程度に修正
}else if(href.indexOf("jdoqocy.com") > -1 || href.match("tkqlhce.com")){
if(href.match("url=http")){
strUrl = getRedirectUrl(href,"url");
setLink();
//http://www.jdoqocy.com/click-7474779-10676026
}else{
strUrl = href.replace(/\/click-.*?-/,"/click-0-");
setLink();
}
//http://cj.dotomi.com/pb115gv32L/v16/KKMNMOQJ/J/J/J/J?w=d%3C%3Cq22y%3A%2F%2F555.smxzxl7.lxv%3AH9%2Flurlt-9-AACDCEG9%3C%3CP%3Cq22y%3A%2F%2F555.smxzxl7.lxv%2F%3C
//Commission Junction(海外)==============================================================
}else if(href.match("dotomi.com")){
if(href.match(/\?/)){
strUrl = href.replace(/\?.*$/,"");
setLink();
}
//http://get.esellerate.net/get/ALP404895636/default.htm?skuid=SKU82916413320&affid=AFL8391650620&at=
//esellerate(海外系)====================================================================================
}else if(href.match("esellerate.net")){
if(href.match(/(\?|\&)affid=AFL/)){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(params["affid"],"").replace(/(\?|\&)affid=/,"");
setLink();
}
//http://track.moreniche.com/hit.php?w=245362&s=256
//MoreNiche(海外系)====================================================================================
}else if(href.match("track.moreniche.com")){
if(href.match(/(\?|\&)w=/)){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(params["w"],"").replace(/(\?|\&)w=/,"");
setLink();
}
//http://track.omguk.com/?AID=573874&MID=519512&PID=11285&CID=4148223&CRID=62355&WID=50210
//Online Media Group(海外)=======================================================================
//AIDがアフィPIDがページでどちらも消せない。飛んだあとのページを修正して対応(気休め)
//CRIDは画像URLっぽい
}else if(href.match(/track.omg(uk|2|.*).com/) && href.match("WID=")){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(/\?.*$/,"") + "?AID=" + params["AID"] + "&PID=" + params["PID"] + "&CRID=" + params["CRID"];
setLink();
//http://www.mydeal.com.my/travel/?a_aid=1234567891
//Online Media Group(海外)=======================================================================
}else if(href.match(/mydeal.com.my/) && href.match("a_aid=")){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(params["a_aid"],"").replace("a_aid=","");
setLink();
//http://www.paidonresults.net/c/37645/1/876/0
//paid on results(海外)==================================================================
}else if(href.match(/paidonresults.net\/c\//)){
strUrl = href.replace(/paidonresults.net\/c\/(.*?)\/i/,"9999999999");
setLink();
//http://secure.strawberrynet.com/cjPage.aspx?url=http%3A//us.strawberrynet.com/new-customer/
//secure.strawberrynet?海外なのでよくわかんないけどCommission Junctionから飛んだ
}else if(href.match("secure.strawberrynet.com") && href.match(/(\?|\&)url=http/)){
strUrl = getRedirectUrl(href,"url");
setLink();
//https://www.shareasale.com/r.cfm?u=841156&b=234786&m=27601&afftrack=&urllink=www%2Eticketfly%2Ecom%
//shareasale(海外)=============================================================
//urllinkの指定がないものもあったけど、修正不可能だった(パラメータuとmを自分の物に差し替えれば行けるみたい)
//b=本来のURL、u=アフィリエイトID、m=アフィリエイトIDと紐づいている何かの数値
}else if(href.match("shareasale.com") && href.match(/(\?|\&)urllink=/)){
strUrl = getRedirectUrl(href,"urllink");
if(!strUrl.match(/^http/)){
strUrl = "http://" + strUrl;
}
setLink();
//http://clkuk.tradedoubler.com/click?p=21874&a=2212750&g=21225632&epi=bdpcsdbpcuk2712
//Tradedoubler(海外系)===============================================================
}else if(href.match(/tradedoubler.com\//)){
if(href.match("g=")){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(/\?.*$/,"");
strUrl = strUrl + "?p=" + params["p"] + "&a=" + params["a"];
setLink();
}
//http://solutions.tradedoubler.com/redirect/expedia/?td_program_id=21874&AFFCID=expe.uk.001.000.2212750.0&cuid=e61021eaf3ce284c164782552a09e100&AFFLID=&url=http%3A%2F%2Fwww.expedia.co.uk
if(href.match(/(\?|\&)url=http/)){
strUrl = getRedirectUrl(href,"url");
setLink();
}
//http://track.webgains.com/click.html?wgprogramid=5586&wgcampaignid=%5E%5E%5Ecampaign_id%5E%5E%5E&wgtarget=http://track.webgains.com/click.html?wgcampaignid=%5E%5E%5Ecampaign_id%5E%5E%5E&wgprogramid=5586&wgtarget=http://www.identitydirect.co.uk/my-special-christmas-adventure-big.html?mid=13064&utm_source=webgains&utm_medium=affiliate&utm_campaign=13064
//webgains(海外)====================================================================
}else if(href.match("track.webgains.com") && href.match(/(\?|\&)wgtarget=http/)){
strUrl = getRedirectUrl(href,"wgtarget");
setLink();
//http://ad.zanox.com/ppc/?12621111C1452709100T&ULP=http%3A%リダイレクト先
//Zanox(海外)===============================================================
}else if(href.match("ad.zanox.com") && href.match(/(\?|\&)ULP=http/)){
strUrl = getRedirectUrl(href,"ULP");
setLink();
//http://r.refinedads.com/bs-mapping.php?v=z1&aid=3814&oid=1031&zanpid=1916947465651987456&userid=1021583&url=http%3A%2F%2Fwww3.base.de%2Fads%3Frt%3D8%26et%3D16%26i%3D63027%26se%3Dp%26cs%3D5044%26ev%3D[MEDIACODE]%26userid%3D1021583
//Zanox(海外)===============================================================
}else if(href.match("refinedads.com") && href.match(/(\?|\&)url=http/)){
strUrl = getRedirectUrl(href,"url");
setLink();
}else{
}
//共通トラッカー系(トラッカー専門系)---------------------------------------------------------------------
//行動分析系::::::::::::::::::::::::::::::::::::::::::::::::
//http://www.suruga-ya.jp/database/107100001000.html?utm_source=coneco&utm_medium=CPC&utm_campaign=kakaku_new&i4c=190&i4a=5
//http://www.caravan-yu.com/shop/g/g4905524811384/?utm_source=kakaku.com&utm_medium=priceComparison&utm_campaign=kakaku.com
//http://p.tl/6bXQ?utm_content=bufferd0045
//分析トラッカー
if(href.match(/(\?|\&)utm_/)){
if(href.indexOf("utm_source") > -1){
strUrl = href.replace(/(\?|\&)utm_source=.*$/,"");
}
if(href.match("utm_campaign")){
strUrl = strUrl.replace(/(\?|\&)utm_campaign=.*$/,"");
}
if(href.match("utm_medium")){
strUrl = strUrl.replace(/(\?|\&)utm_medium=.*$/,"");
}
if(href.match("utm_content")){
strUrl = strUrl.replace(/(\?|\&)utm_content=.*$/,"");
}
setLink();
//2ch系::::::::::::::::::::::::::::::::::::::::::::::::::::
//2ch==============================================================================
}else if(href.match(/(\/ime.(nu|st)\/|jump.2ch.net\/\?|pinktower.com\/)/)){
strUrl=href.replace(/.*(\/ime.(nu|st)\/|jump.2ch.net\/\?|pinktower.com\/)/,"http://");
setLink();
//http://route5.org/?q=http://www.kincho.co.jp/wnew/200903/liquid_cordless/index.html
//READ2CH
}else if(href.match(/route5.org\/\?q=/)){
strUrl = getRedirectUrl(href,"q");
setLink();
//http://bubjs.com/http://www.4gamer.net/games/106/G010649/20140305012/
//Rちゃんねる==============================================================================
}else if(href.match(/bubjs.com\/http/)){
strUrl = href.replace(/https?:\/\/bubjs.com\/http/,"http");
setLink();
//アフィリエイト系::::::::::::::::::::::::::::::::::::::::::::::::
//※ショップ系独自のトラッカーなどはショップ別に追加
//普通のURL.html?ad_code=2880S0NLGCP140517
//ad_codeは広告の精度をあげるらしいので削除==================================================
}else if(href.match(/(\?|\&)ad_code=/)){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(params["ad_code"],"").replace(/(\?|&)ad_code=/,"");
setLink();
//aidはアクセスIDというものらしく、広告の精度をあげるらしいので削除============================
}else if(href.match(/(\?|\&)aid=/)
//okwaveは除外
&& !location.href.match("okwave.jp")
//ヤフオクも除外
&& !location.href.match("auctions.yahoo")
//affiliate window(海外)も除外
&& !href.match("affiliatewindow.com")
//Zanox(海外)も除外
&& !href.match("refinedads.com")){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(params["aid"],"").replace(/(\?|&)aid=/,"");
setLink();
//http://adclr.jp/c/qojdmuij?pc_maist_buyer=2581&_cvpoint=811&_xuid=xuidx4677b0cf38x31c
//adclr=============================================================================
}else if(href.match("adclr.jp") && href.match(/\?/)){
strUrl = href.replace(/\?.*$/,"");
setLink();
//http://dms.netmng.com/si/CM/Tracking/TrackRedirect.aspx?siclientid=2520&redirecturl=http%3A%2F%2Fpt.afl.rakuten.co.jp%2Fc%2F001134ce.0fc3b133%2F_RTvrgj10000063%3Furl%3Dhttp%3A%2F%2Fitem.rakuten.co.jp%2Fdtc%2F4960999964164%2F&SICustTransType=9854&transactionamount=18&x1=2683&x2=01802080&x3=1130627295&x4=&jscript=0
//http://dms.netmng.com/si/CM/Tracking/TrackRedirect.aspx?siclientid=2520&redirecturl=http://www.amazon.co.jp/dp/B0019DPHVO/ref=asc_df_B0019DPHVO953949/?tag=coneco-ce-22&creative=9311&creativeASIN=B0019DPHVO&linkCode=asn&me=AN1VRQENFRJN5&SICustTransType=9854&transactionamount=52.6&x1=2828&x2=01109999&x3=1090909212&x4=8f001b2487cda54cc46496c3308668c1&jscript=0
//netmng==============================================================================
}else if(href.indexOf("dms.netmng.com") > -1){
if(href.indexOf("redirecturl=") > -1){
strUrl = getRedirectUrl(href,"redirecturl");
setLink();
}
//多分トラッカーと思われる(list.Q10とかで確認)==============================================================================
}else if(href.indexOf("jaehuid") > -1){
strUrl = href.replace(/(\?|\&)jaehuid=.*$/,"");
setLink();
//http://dms.netmng.com/si/cm/tracking/clickredirect.aspx?sitrackingid=565231550&siclientid=7722&siadtrackid=31891032366&sinetwork=s&simobile=&sidevice=c
//http://track.searchignite.com/si/cm/tracking/clickredirect.aspx?sitrackingid=696296406&siclientid=9992&siadtrackid=42697278684&sinetwork=s&simobile=&sidevice=c
//パラメータsitrackingid以降除去(実験的実装)==============================================================================
}else if(href.match("sitrackingid")){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(/(.*sitrackingid).*$/i,'$1=') + params["sitrackingid"];
setLink();
//trafficgateのトラッカー型アフィリエイトらしきパラメータを事前に消す(広告経由後にオリジナルURLにwaprがつくらしい?)========
}else if(href.match(/(\?|\&)wapr=/)){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(params["wapr"],"");
setLink();
//trafficgateかLinksynergyのトラッカー型アフィリエイトらしきパラメータを事前に消す(オリジナルURLにpartnerIdがつくらしい?)====
}else if(href.match(/(\?|\&)partnerid=/)){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(params["partnerid"],"").replace("partnerid=","");
setLink();
//アフィリエイトと思しき不要なパラメータvos==========================================
}else if(href.match(/(\?|\&)vos=/)){
strUrl = href.replace(/(\?|\&)vos=.*$/,"");
setLink();
//http://textad.net:10001/cgi-bin/redir.cgi?uid=10473&bid=2&from=video&site=http://www.2ica.net/%E6%96%99%E9%87%91/
//textad
}else if(href.match(/textad.net/) && href.match(/site=http/)){
strUrl = getRedirectUrl(href,"site");
setLink();
//http://www.xaid.jp/r/?did=500036778&guid=ON&_xuid=xuidx4677a37217x5e6
//xaid広告追跡==============================================================================
}else if(href.indexOf("xaid.jp") > -1 && href.indexOf("_xuid=") > -1){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(params["_xuid"],"");
setLink();
//その他::::::::::::::::::::::::::::::::::::::::::::::::
}else{
//waadを実験的に削除
if(href.match("&waad")){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(params["waad"],"").replace("waad=","");
setLink();
}
}
//最終修正===================================================================================
if(strUrl.match("affiliate_type=")){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(params["affiliate_type"],"").replace("affiliate_type=","");
setLink();
}
if(strUrl.match("affiliate_id=")){
var params = createParamArray(href); //パラメータ格納
strUrl = href.replace(params["affiliate_id"],"").replace("affiliate_id=","");
setLink();
}
//http://www.disneystore.com/transfer/224510/?CMP=AFL-AffLSGen&att=LSGenAffl&url=&LSID=0|10676026|
//Commission Junction(海外系)の残り?
if(href.match(/LSID=.*?\|.*?\|/)){
strUrl = href.replace(/LSID=.*?\|.*?\|/,"");
setLink();
}
//最終修正ここまで===========================================================================
}//main for文ここまで=====================================================================================
}catch(e){
// throw(e);
GM_log(e);
}
/*対応不可能だったもの一覧**********************************************************************************************
//http://store.shopping.yahoo.co.jp/(半角英数字のマイショップID)/(半角英数字の商品ID).html
//yahooのマイショップURL=======================================================
//http://rd.ane.yahoo.co.jp/rd?ep=RW.u2fu1jtrsPgkAoS3opUvVhweDEINbjKWJzbLEeq0x1LpxtoSU1.PcS0c9xdsEhra31XT1Dwv_uzVABEwWiv7_wo_hatLF_Mki1oPQi3p6.u4uubeHQeXCZBWs9S2MYqp9980zKI_EnXINbYdv901S18EQYsF0DGTb5qdinn7_WKzvFxjCqLsPdkkq&a=2a_7Utg_xD5h9rKdTA--&s=G7pHVLA9xD3KlA--&t=t5.nAjN_0z2cvg--&C=9&D=1&I=&RI=66bf3d12641c18a39e24a33f6ab8fc51&S=36c2c1a0dc04&as=1&f=1&ff=0&fq_d=1,1,1,0&fq_m=1,1,1,0&fq_w=1,1,1,0&g=4&lp=&maf=0&mid=0&o=9&p=9&qfid=&r=0&rfm=&sfid=0&skwid=0&F=0&tlid=0&u=auctions.yahoo.co.jp
//正しいURLhttp://www.cho-rei.com/
//yahooの広告=======================================================
//http://click.linksynergy.com/fs-bin/click?id=GSAXENiMcvI&offerid=39250.10000239&type=4&subid=0
//linksharelinksynergy=======================================================
//http://ck.jp.ap.valuecommerce.com/servlet/referral?va=2266773&sid=3091344&pid=882260177&vcid=bGmU_AHjllv84Mt-fZ4weDItjcOmmGcAFaJssucpwdz9kF75jqBDmQ&vcpub=0.621401729893042
//valuecommerce不完全(無駄だけど不要なパラメータを削除)←スクリプトに追加済
/↑のリンクの後もアフィリンクを経由するのだけど、修正可能だったのでそちらは修正(効果があるかは不明)
//http://coinurl.com/get.php?id=20487
//↑のURLから↓のURLが生成される。
//http://coinurl.com/newclick.php?p=tAbcleV5kjueMCrTWd4w3yVE6tJPph9X0uFmjsQiYiyYxLN%2BKR%2B5N6UsGWjdL3VeSjps%2Bk%2F5174VMvk010qvopudBqVYRABOtkQZSr70UEVK8cT8UHmCq7vgtNuHbNpjcy2D3nUOav4J577M60GxUmmR%2Fh1gEGXrVX0ph0pQ4Tmyz47MabsfCKAQL3SObCV%2B
//ビットコイン(仮想通貨)===================================================================
//どちらも修正不可なのでそもそも削除した方がいい
//amazonスライドショーウィジェット
//amazonくるくるウィジェット
//↑アフィリエイトIDを書き換えると非表示になる。アフィID必須?
**対応不可能だったもの一覧ここまで**************************************************************************************/
//javascriptタグ(未実装調整実験中)=======================================================================================
//<script type="text/javascript" src="http://www.dlsite.com/js/blog_parts.js" charset="UTF-8"></script><script type="text/javascript">window["http://www.dlsite.com/"].createBlogParts({"type":"RankingParts","type":"RankingParts","aid":"dojin","display":"image","image":"large","count":"5","site":"maniax","announce":"1","gro":"0","men":"0","loli":"0","shota":"0","kinshin":"0","jyuukan":"0","period":"24h","title":"24時間ランキング","width":"190","round":"0","decoration":"0","character":"","logo":"dlsite","banner":"1","wrapper":"1","buttonType":"02","bodyColor":"#ffe3ea","titleColor":"#ffa600","titleTextColor":"#ffffff"});</script>
//DLsite埋め込みjavascript
//スクリプトに自動読み込み関数があってアフィリエイトリンクが復活してしまう。対策方法考え中
//候補1:スクリプトのアフィリエイトID箇所を変更してオブジェクトを新規で生成→何故かオートロードでスクリプトだけのページに飛ぶ
//候補2:http://www.dlsite.com/js/blog_parts.jsの関数を上書き→勉強中
function killJS(document){
var allScripts = document.getElementsByTagName("script");
for (i = 0; i < allScripts.length; i++){
var blogParts = allScripts[i].innerHTML;
if(blogParts.match(/"aid":.*,/)){
//alert(allScripts[i].innerHTML);
blogParts = blogParts.replace(/"aid":.*,"display"/,'"aid":"","display');
//↓アフィリエイトIDの入ったスクリプトタグを消してみたけどすでにインスタンス化された後だと意味がない?
allScripts[i].parentNode.removeChild(allScripts[i]);
//最初のスクリプトタグを生成。blog_parts.jsを読み込むだけだし最初から読み込まれてるし追加不要?
var ele = document.createElement("script");
ele.type = "text/javascript";
ele.src = "http://www.dlsite.com/js/blog_parts.js";
ele.charset = "UTF-8";
//次のスクリプトタグ。ブログパーツを生成するための引数のみ
var ele2 = document.createElement("script");
ele2.type = "text/javascript";
ele2.innerHTML = blogParts;
//allScripts[i].parentNode.appendChild(ele);
//allScripts[i].parentNode.appendChild(ele2);
//↑オブジェクトele2を要素として追加すると何故かページを遷移してしまう
}
}//for文ここまで
/*
//スクリプトタグに生成される実際のブログパーツに変更を加えてみる?
var allScripts = document.getElementsByClassName("DLsite_bp_body");
for (i = 0; i < allScripts.length; i++){
}//for文ここまで
*/
}
//javascriptタグここまで=======================================================================================
//==================================mainの共通ファンクション===============================================
//A mod killerより抜粋(デコード部分1か所のみ書き換えdecURI)-----------
function createParamArray(url)
{
var params = new Array();
var pos = url.indexOf("?");
if(pos < 0) {
throw new Error("invalid url :" + url);
}
var tmpAry = url.substring(pos+1,url.length).split("&");
for(var i=0; i<tmpAry.length; i++) {
var str = tmpAry[i];
var ampersandPos = str.indexOf("=");
if(ampersandPos < 0) {
params[str] = "";
}
else {
var key =str.substring(0,ampersandPos);
var val=str.substring(ampersandPos+1,str.length);
params[key] = val;
}
}
params.toString = function() {
var thisFunc = this.toString;
delete this.toString;
var returnVal = "";
for(var key in this) {
returnVal =returnVal + key + "=" + this[key] + "&";
}
this.toString = thisFunc;
return returnVal;
}
return params;
}
function getRedirectUrl(url, paramName)
{
var params = createParamArray(url);
var redirectUrl = params[paramName];
return decURI(redirectUrl);
throw new Error();
}
//A mod killerより抜粋ここまで-----------
//URLを変更&オリジナルURL追加
function setLink(){
try{
// strUrl = decURI(strUrl);
//何もしない
if(href.indexOf("coneco.net/point") > -1
//ループ防止用
|| decURI(decURI(allLinks[i].href)) == strUrl
//ページスクロール系は除外
|| href.match(location.href + "#") || decURI(href).match(decURI(location.href) + "#")
//googleイメージ検索の除外(サムネイル一覧。詳細画面の方ではない)
|| allLinks[i].getAttribute("class") != null && allLinks[i].getAttribute("class").match("rg_l")
//googleイメージ検索の除外(詳細画面の右側サムネ一覧には触れない)
|| allLinks[i].getAttribute("class") != null && allLinks[i].getAttribute("class").match("irc_rimask")
){
//何もしない
//ループ防止に以下は&&でなければならない
}else if(href != strUrl && !allLinks[i].innerHTML.match("Killer") && allLinks[i].getAttribute("Akill_check") != "killed"){
//class名も引き継がないと配置がずれるため継承(Amazonで確認。対象のclassにCSSで設定してる?)
var setClass = "";
if(allLinks[i].getAttribute("class") != null){
setClass = ' class="' + allLinks[i].getAttribute("class") + '"';
}
//ヤフオクなどで修正したリンクにidがないと位置がずれて画像がなくなるので設定
var setId = "";
if(allLinks[i].getAttribute("id") != null){
setId = ' id="' + allLinks[i].getAttribute("id") + '"';
}
//AREAタグの場合引き継ぎ必須?
var setCoords = "";
if(allLinks[i].getAttribute("coords") != null){
setCoords = ' coords="' + allLinks[i].getAttribute("coords") + '"';
}
//新しいウィンドウ(タブ)に開く設定だけは継承
var setBlank = "";
if(allLinks[i].target == "_blank"){
setBlank = ' target="_blank"';
}
//元のリンクにcssで背景指定してあった場合継承
var setStyle ="";
if(allLinks[i].getAttribute("style") != null){
if(allLinks[i].getAttribute("style").match("background") && allLinks[i].getAttribute("style").match("url")){
setStyle = allLinks[i].getAttribute("style");
}
}
//solty designのAmazon Modern Rankingに対応
//imgタグがあって元のリンクに高さと幅の設定があった場合変数にセットして後で復元
var strHW = "";
if(allLinks[i].innerHTML.match(/(<img |<IMG )/)
&& allLinks[i].getAttribute("style") != null){
if(allLinks[i].getAttribute("style").match("height:")){
strHW = "height:" + allLinks[i].getAttribute("style").replace(/.*height:(.*?)\;.*$/i,"$1") + ";"
}
if(allLinks[i].getAttribute("style").match("width:")){
strHW += "width:" + allLinks[i].getAttribute("style").replace(/.*width:(.*?)\;.*$/i,"$1") + ";"
}
}
//修正したリンク内に元のタグ内の要素を残す(imgなど)
var strTxt = allLinks[i].innerHTML;
//元のリンクの後に修正したリンクを追加
allLinks[i].insertAdjacentHTML('afterend', '<' + allLinks[i].tagName + setId + setClass + setBlank + setCoords + ' href="' + strUrl + '">' + strTxt + '</a>');
//元のリンクがaタグじゃなかった場合、aタグにしてノード修正
if(allLinks[i].tagName != "a" && allLinks[i].tagName != "A"){
var oldNode = allLinks[i];
var newNode = document.createElement('a');
newNode.href = oldNode.href;
newNode.innerHTML = oldNode.innerHTML;
oldNode.parentNode.replaceChild( newNode, oldNode );
}
//修正直前に修正済みという判定用フラグ追加
allLinks[i].setAttribute("Akill_check","killed");
//(※※注意!!!!!上のフラグの間に処理を挟まない!!!!※※※)
//元のリンクは中身を消してリンクだけ残す
//killer全部表示
if(hideOriginLink == "show"){
allLinks[i].innerHTML = '[Killer]';
//全部消す
}else if(hideOriginLink == "hide"){
allLinks[i].innerHTML = '';
//[kill]を最初だけ表示する設定の場合
}else if(hideOriginLink == "one"){
//一個前の要素が修正済みkilledだった場合非表示
if(allLinks[i-1].getAttribute("Akill_check") == "killed"){
allLinks[i].innerHTML = '';
//そうじゃなかったらkiller表示
}else{
allLinks[i].innerHTML = '[Killer]';
}
}
//amazonなどで元のリンクにclassがないと位置がずれるので復元
if(allLinks[i+1].getAttribute("class") != null){
allLinks[i].setAttribute("class",allLinks[i+1].getAttribute("class"));
}
//ヤフオクなどで元のリンクにidがないと位置がずれるので復元
if(allLinks[i+1].getAttribute("id") != null){
allLinks[i].setAttribute("id",allLinks[i+1].getAttribute("id"));
}
//価格コムとconecoのボタンからonclickで起動されるトラッカーを除去(実験的実装)
allLinks[i+1].removeAttribute("onclick");
allLinks[i+1].removeAttribute("onmouseclick");
//共通スタイル
var strStyle = 'max-height:20px;max-width:50px;height:auto;width:auto;background:rgba(255,0,0,0.2);margin:0!important;padding:0!important;z-index:999;text-indent:0;';
//AREAタグまたは要素内にimgタグがあった場合
if(setCoords != ""
|| allLinks[i+1].innerHTML.match(/(<img |<IMG )/)){
//元のリンクにCSS付加
allLinks[i].setAttribute("style", strStyle + 'position:absolute;');
//元のリンクにstyleで高さと幅の指定があった場合は上書き
if(strHW != ""){
allLinks[i+1].setAttribute("style", strHW);
}
//AREAタグの場合、修正したリンクが最初の子ノードじゃないといけないので入れ替え
if(setCoords != ""){
allLinks[i+1].parentNode.appendChild(allLinks[i]); //入れ替え
// allLinks[i].parentNode.removeChild(allLinks[i]); //削除
}
//それ以外
}else{
//元のリンクにCSS付加
allLinks[i].setAttribute("style", strStyle + 'position:relative;');
}
//元のリンクにcssで背景指定があった場合
if(setStyle){
allLinks[i+1].setAttribute("style", setStyle);
}
}
// throw new Error();
}catch(e){
// throw(e);
GM_log(e);
}
}
//Dlsiteのリンク修正用CSS
function dlsiteCSS(){
try{
if(href != strUrl){
//CSS付加
allLinks[i].setAttribute("style", 'height:auto;width:auto;float:left;position:absolute;z-index:999;background:rgba(255,0,0,0.2);margin:0!important;padding:0!important;');
//画像埋め込みタイプ以外にCSS付加
if(allLinks[i+1].innerHTML.indexOf("src=")<=0){
allLinks[i+1].setAttribute("style", "margin-left:55px;");
}
}
// throw new Error();
}catch(e){
// throw(e);
GM_log(e);
}
}
/***パラメータ多すぎなので凍結。元から必要ないかも?(so many whitelist.blacklist is ...? I have no idea.)
//楽天パラメータ
function rakutenParam(){
var strSitem = ""; //検索
var strNitem = ""; //検索除外
var strPage = ""; //ページ数
var strType = ""; //サーバ?
var strSid = ""; //ショップID(ショップ内検索用?)
var strGenre = ""; //ジャンル
var strView = ""; //表示方法
var strFromD = ""; //発売日範囲始点
var strToD = ""; //発売日範囲終点
var strMinp = ""; //最低価格
var strMaxp = ""; //最大価格
}
*/
// throw new Error();
}//main終了
//================================= 追加関数 ==============================================================
//Googleトラッカー除去==================================================================
function remTrack(node){
var resultLinks = document.evaluate('.//a[@onmousedown]', node, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
for (i = 0; i < resultLinks.snapshotLength; i++){
var oldLink = resultLinks.snapshotItem(i); //検索結果のURL(Original URL)
if (oldLink.getAttribute('onmousedown')) {
oldLink.removeAttribute('onmousedown');
}
}
}
//URLデコード
function decURI(str){
var charCode = "";
if (str.match("%")) {
try {
charCode = GetEscapeCodeType(str);
if ( charCode == "UTF8" ) {
str = UnescapeUTF8(str);
}else if ( charCode == "EUCJP" ) {
str = UnescapeEUCJP(str);
}else if ( charCode == "SJIS" ) {
str = UnescapeSJIS(str);
}else if ( charCode == "Unicode" ) {
str = unescape(str);
}
return str;
}catch(e){
//throw(e);
GM_log(e);
}
}else{
return str;
}
//throw new Error();
}
//======================================================================================
function userCfg(name){
//ユーザ設定から読み込み(Load user's settings)
var strText = GM_getValue(name);
if(strText == "show"){
GM_registerMenuCommand("hide all [killer](It's troubled,when correction mistook.) -now show all-", hideCfg);
}else if(strText == "hide"){
GM_registerMenuCommand("show a [killer] only original -now hide all-", oneCfg);
}else if(strText == "one"){
GM_registerMenuCommand("show all [killer] -now only one-", showCfg);
}else{
strText = "one";
GM_setValue( name, strText);
// window.document.location.reload();
}
return strText;
}
function showCfg(){
GM_setValue( "hideOriginLink", "show");
window.document.location.reload();
}
function hideCfg(){
GM_setValue( "hideOriginLink", "hide");
window.document.location.reload();
}
function oneCfg(){
GM_setValue( "hideOriginLink", "one");
window.document.location.reload();
}
//For Chrome:Change "GM_setValue & GM_getValue" to WebStrage-------------------------------------------
if (!this.GM_getValue || this.GM_getValue.toString().indexOf("not supported")>-1) {
this.GM_getValue=function (key,def) {
return window.localStorage.getItem(key);
};
this.GM_setValue=function (key,value) {
return window.localStorage.setItem(key, value);
};
}
//==============================================================
//GreaseForkがrequireの審査必要なのでいっそのこと埋め込みました。
//require (c)http://www.drk7.jp/pub/js/ecl_test/ecl_new.js
//==============================================================
function ecl(){
try{
//============================引用開始===================================
//
// Escape Codec Library: ecl.js (Ver.041208)
//
// Copyright (C) http://nurucom-archives.hp.infoseek.co.jp/digital/
//
EscapeSJIS=function(str){
return str.replace(/[^*+.-9A-Z_a-z-]/g,function(s){
var c=s.charCodeAt(0),m;
return c<128?(c<16?"%0":"%")+c.toString(16).toUpperCase():65376<c&&c<65440?"%"+(c-65216).toString(16).toUpperCase():(c=JCT11280.indexOf(s))<0?"%81E":"%"+((m=((c<8272?c:(c=JCT11280.lastIndexOf(s)))-(c%=188))/188)<31?m+129:m+193).toString(16).toUpperCase()+(64<(c+=c<63?64:65)&&c<91||95==c||96<c&&c<123?String.fromCharCode(c):"%"+c.toString(16).toUpperCase())
})
};
UnescapeSJIS=function(str){
return str.replace(/%(8[1-9A-F]|[9E][0-9A-F]|F[0-9A-C])(%[4-689A-F][0-9A-F]|%7[0-9A-E]|[@-~])|%([0-7][0-9A-F]|A[1-9A-F]|[B-D][0-9A-F])/ig,function(s){
var c=parseInt(s.substring(1,3),16),l=s.length;
return 3==l?String.fromCharCode(c<160?c:c+65216):JCT11280.charAt((c<160?c-129:c-193)*188+(4==l?s.charCodeAt(3)-64:(c=parseInt(s.substring(4),16))<127?c-64:c-65))
})
};
EscapeEUCJP=function(str){
return str.replace(/[^*+.-9A-Z_a-z-]/g,function(s){
var c=s.charCodeAt(0);
return (c<128?(c<16?"%0":"%")+c.toString(16):65376<c&&c<65440?"%8E%"+(c-65216).toString(16):(c=JCT8836.indexOf(s))<0?"%A1%A6":"%"+((c-(c%=94))/94+161).toString(16)+"%"+(c+161).toString(16)).toUpperCase()
})
};
UnescapeEUCJP=function(str){
return str.replace(/(%A[1-9A-F]|%[B-E][0-9A-F]|%F[0-9A-E]){2}|%8E%(A[1-9A-F]|[B-D][0-9A-F])|%[0-7][0-9A-F]/ig,function(s){
var c=parseInt(s.substring(1),16);
return c<161?String.fromCharCode(c<128?c:parseInt(s.substring(4),16)+65216):JCT8836.charAt((c-161)*94+parseInt(s.substring(4),16)-161)
})
};
EscapeJIS7=function(str){
var u=String.fromCharCode,ri=u(92,120,48,48,45,92,120,55,70),rj=u(65377,45,65439,93,43),
H=function(c){
return 41<c&&c<58&&44!=c||64<c&&c<91||95==c||96<c&&c<123?u(c):"%"+c.toString(16).toUpperCase()
},
I=function(s){
var c=s.charCodeAt(0);
return (c<16?"%0":"%")+c.toString(16).toUpperCase()
},
rI=new RegExp;rI.compile("[^*+.-9A-Z_a-z-]","g");
return ("g"+str+"g").replace(RegExp("["+ri+"]+","g"),function(s){
return "%1B%28B"+s.replace(rI,I)
}).replace(RegExp("["+rj,"g"),function(s){
var c,i=0,t="%1B%28I";while(c=s.charCodeAt(i++))t+=H(c-65344);return t
}).replace(RegExp("[^"+ri+rj,"g"),function(s){
var a,c,i=0,t="%1B%24B";while(a=s.charAt(i++))t+=(c=JCT8836.indexOf(a))<0?"%21%26":H((c-(c%=94))/94+33)+H(c+33);return t
}).slice(8,-1)
};
UnescapeJIS7=function(str){
var i=0,p,q,s="",u=String.fromCharCode,
P=("%28B"+str.replace(/%49/g,"I").replace(/%1B%24%4[02]|%1B%24@/ig,"%1B%24B")).split(/%1B/i),
I=function(s){
return u(parseInt(s.substring(1),16))
},
J=function(s){
return u((3==s.length?parseInt(s.substring(1),16):s.charCodeAt(0))+65344)
},
K=function(s){
var l=s.length;
return JCT8836.charAt(4<l?(parseInt(s.substring(1),16)-33)*94+parseInt(s.substring(4),16)-33:2<l?(37==(l=s.charCodeAt(0))?(parseInt(s.substring(1,3),16)-33)*94+s.charCodeAt(3):(l-33)*94+parseInt(s.substring(2),16))-33:(s.charCodeAt(0)-33)*94+s.charCodeAt(1)-33)
},
rI=new RegExp,rJ=new RegExp,rK=new RegExp;
rI.compile("%[0-7][0-9A-F]","ig");rJ.compile("(%2[1-9A-F]|%[3-5][0-9A-F])|[!-_]","ig");
rK.compile("(%2[1-9A-F]|%[3-6][0-9A-F]|%7[0-9A-E]){2}|(%2[1-9A-F]|%[3-6][0-9A-F]|%7[0-9A-E])[!-~]|[!-~](%2[1-9A-F]|%[3-6][0-9A-F]|%7[0-9A-E])|[!-~]{2}","ig");
while(p=P[i++])s+="%24B"==(q=p.substring(0,4))?p.substring(4).replace(rK,K):"%28I"==q?p.substring(4).replace(rJ,J):p.replace(rI,I).substring(2);
return s
};
EscapeJIS8=function(str){
var u=String.fromCharCode,r=u(92,120,48,48,45,92,120,55,70,65377,45,65439,93,43),
H=function(c){
return 41<c&&c<58&&44!=c||64<c&&c<91||95==c||96<c&&c<123?u(c):"%"+c.toString(16).toUpperCase()
},
I=function(s){
var c=s.charCodeAt(0);
return (c<16?"%0":"%")+(c<128?c:c-65216).toString(16).toUpperCase()
},
rI=new RegExp;rI.compile("[^*+.-9A-Z_a-z-]","g");
return ("g"+str+"g").replace(RegExp("["+r,"g"),function(s){
return "%1B%28B"+s.replace(rI,I)
}).replace(RegExp("[^"+r,"g"),function(s){
var a,c,i=0,t="%1B%24B";while(a=s.charAt(i++))t+=(c=JCT8836.indexOf(a))<0?"%21%26":H((c-(c%=94))/94+33)+H(c+33);return t
}).slice(8,-1)
};
UnescapeJIS8=function(str){
var i=0,p,s="",
P=("%28B"+str.replace(/%1B%24%4[02]|%1B%24@/ig,"%1B%24B")).split(/%1B/i),
I=function(s){
var c=parseInt(s.substring(1),16);
return String.fromCharCode(c<128?c:c+65216)
},
K=function(s){
var l=s.length;
return JCT8836.charAt(4<l?(parseInt(s.substring(1),16)-33)*94+parseInt(s.substring(4),16)-33:2<l?(37==(l=s.charCodeAt(0))?(parseInt(s.substring(1,3),16)-33)*94+s.charCodeAt(3):(l-33)*94+parseInt(s.substring(2),16))-33:(s.charCodeAt(0)-33)*94+s.charCodeAt(1)-33)
},
rI=new RegExp,rK=new RegExp;
rI.compile("%([0-7][0-9A-F]|A[1-9A-F]|[B-D][0-9A-F])","ig");
rK.compile("(%2[1-9A-F]|%[3-6][0-9A-F]|%7[0-9A-E]){2}|(%2[1-9A-F]|%[3-6][0-9A-F]|%7[0-9A-E])[!-~]|[!-~](%2[1-9A-F]|%[3-6][0-9A-F]|%7[0-9A-E])|[!-~]{2}","ig");
while(p=P[i++])s+="%24B"==p.substring(0,4)?p.substring(4).replace(rK,K):p.replace(rI,I).substring(2);
return s
};
EscapeUnicode=function(str){
return str.replace(/[^*+.-9A-Z_a-z-]/g,function(s){
var c=s.charCodeAt(0);
return (c<16?"%0":c<256?"%":c<4096?"%u0":"%u")+c.toString(16).toUpperCase()
})
};
UnescapeUnicode=function(str){
return str.replace(/%u[0-9A-F]{4}|%[0-9A-F]{2}/ig,function(s){
return String.fromCharCode("0x"+s.substring(s.length/3))
})
};
EscapeUTF7=function(str){
var B="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""),
E=function(s){
var c=s.charCodeAt(0);
return B[c>>10]+B[c>>4&63]+B[(c&15)<<2|(c=s.charCodeAt(1))>>14]+(0<=c?B[c>>8&63]+B[c>>2&63]+B[(c&3)<<4|(c=s.charCodeAt(2))>>12]+(0<=c?B[c>>6&63]+B[c&63]:""):"")
},
re=new RegExp;re.compile("[^+]{1,3}","g");
return (str+"g").replace(/[^*+.-9A-Z_a-z-]+[*+.-9A-Z_a-z-]|[+]/g,function(s){
if("+"==s)return "+-";
var l=s.length-1,w=s.charAt(l);
return "+"+s.substring(0,l).replace(re,E)+("+"==w?"-+-":"*"==w||"."==w||"_"==w?w:"-"+w)
}).slice(0,-1)
};
UnescapeUTF7=function(str){
var i=0,B={};
while(i<64)B["ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".charAt(i)]=i++;
return str.replace(RegExp("[+][+/-9A-Za-z]*-?","g"),function(s){
if("+-"==s)return "+";
var b=B[s.charAt(1)],c,i=1,t="";
while(0<=b){
if((c=i&7)<6)c=c<3?b<<10|B[s.charAt(++i)]<<4|(b=B[s.charAt(++i)])>>2:(b&3)<<14|B[s.charAt(++i)]<<8|B[s.charAt(++i)]<<2|(b=B[s.charAt(++i)])>>4;
else{c=(b&15)<<12|B[s.charAt(++i)]<<6|B[s.charAt(++i)];b=B[s.charAt(++i)]}
if(c)t+=String.fromCharCode(c)
}
return t
})
};
EscapeUTF8=function(str){
return str.replace(/[^*+.-9A-Z_a-z-]/g,function(s){
var c=s.charCodeAt(0);
return (c<16?"%0"+c.toString(16):c<128?"%"+c.toString(16):c<2048?"%"+(c>>6|192).toString(16)+"%"+(c&63|128).toString(16):"%"+(c>>12|224).toString(16)+"%"+(c>>6&63|128).toString(16)+"%"+(c&63|128).toString(16)).toUpperCase()
})
};
UnescapeUTF8=function(str){
return str.replace(/%(E(0%[AB]|[1-CEF]%[89AB]|D%[89])[0-9A-F]|C[2-9A-F]|D[0-9A-F])%[89AB][0-9A-F]|%[0-7][0-9A-F]/ig,function(s){
var c=parseInt(s.substring(1),16);
return String.fromCharCode(c<128?c:c<224?(c&31)<<6|parseInt(s.substring(4),16)&63:((c&15)<<6|parseInt(s.substring(4),16)&63)<<6|parseInt(s.substring(7),16)&63)
})
};
EscapeUTF16LE=function(str){
var H=function(c){
return 41<c&&c<58&&44!=c||64<c&&c<91||95==c||96<c&&c<123?String.fromCharCode(c):(c<16?"%0":"%")+c.toString(16).toUpperCase()
};
return str.replace(/[^ ]| /g,function(s){
var c=s.charCodeAt(0);return H(c&255)+H(c>>8)
})
};
UnescapeUTF16LE=function(str){
var u=String.fromCharCode,b=u(92,120,48,48,45,92,120,70,70);
return str.replace(/^%FF%FE/i,"").replace(RegExp("%[0-9A-F]{2}%[0-9A-F]{2}|%[0-9A-F]{2}["+b+"]|["+b+"]%[0-9A-F]{2}|["+b+"]{2}","ig"),function(s){
var l=s.length;
return u(4<l?"0x"+s.substring(4,6)+s.substring(1,3):2<l?37==(l=s.charCodeAt(0))?parseInt(s.substring(1,3),16)|s.charCodeAt(3)<<8:l|parseInt(s.substring(2),16)<<8:s.charCodeAt(0)|s.charCodeAt(1)<<8)
})
};
GetEscapeCodeType=function(str){
if(/%u[0-9A-F]{4}/i.test(str))return "Unicode";
if(/%([0-9A-DF][0-9A-F]%[8A]0%|E0%80|[0-7][0-9A-F]|C[01])%[8A]0|%00|%[7F]F/i.test(str))return "UTF16LE";
if(/%E[0-9A-F]%[8A]0%[8A]0|%[CD][0-9A-F]%[8A]0/i.test(str))return "UTF8";
if(/%F[DE]/i.test(str))return /%8[0-9A-D]|%9[0-9A-F]|%A0/i.test(str)?"UTF16LE":"EUCJP";
if(/%1B/i.test(str))return /%[A-D][0-9A-F]/i.test(str)?"JIS8":"JIS7";
var S=str.substring(0,6143).replace(/%[0-9A-F]{2}|[^ ]| /ig,function(s){
return s.length<3?"40":s.substring(1)
}),c,C,i=0,T;
while(0<=(c=parseInt(S.substring(i,i+=2),16))&&i<4092)if(128<=c){
if((C=parseInt(S.substring(i,i+2),16))<128)i+=2;
else if(194<=c&&c<240&&C<192){
if(c<224){T="UTF8";i+=2;continue}
if(2==parseInt(S.charAt(i+2),16)>>2){T="UTF8";i+=4;continue}
}
if(142==c&&161<=C&&C<224){if(!T)T="EUCJP";if("EUCJP"==T)continue}
if(c<161)return "SJIS";
if(c<224&&!T)
if((164==c&&C<244||165==c&&C<247)&&161<=C)i+=2;
else T=224<=C?"EUCJP":"SJIS";
else T="EUCJP"
}
return T?T:"EUCJP"
};
JCT11280=Function('var a="zKV33~jZ4zN=~ji36XazM93y!{~k2y!o~k0ZlW6zN?3Wz3W?{EKzK[33[`y|;-~j^YOTz$!~kNy|L1$353~jV3zKk3~k-4P4zK_2+~jY4y!xYHR~jlz$_~jk4z$e3X5He<0y!wy|X3[:~l|VU[F3VZ056Hy!nz/m1XD61+1XY1E1=1y|bzKiz!H034zKj~mEz#c5ZA3-3X$1~mBz$$3~lyz#,4YN5~mEz#{ZKZ3V%7Y}!J3X-YEX_J(3~mAz =V;kE0/y|F3y!}~m>z/U~mI~j_2+~mA~jp2;~m@~k32;~m>V}2u~mEX#2x~mBy+x2242(~mBy,;2242(~may->2&XkG2;~mIy-_2&NXd2;~mGz,{4<6:.:B*B:XC4>6:.>B*BBXSA+A:X]E&E<~r#z+625z s2+zN=`HXI@YMXIAXZYUM8X4K/:Q!Z&33 3YWX[~mB`{zKt4z (zV/z 3zRw2%Wd39]S11z$PAXH5Xb;ZQWU1ZgWP%3~o@{Dgl#gd}T){Uo{y5_d{e@}C(} WU9|cB{w}bzvV|)[} H|zT}d||0~{]Q|(l{|x{iv{dw}(5}[Z|kuZ }cq{{y|ij}.I{idbof%cu^d}Rj^y|-M{ESYGYfYsZslS`?ZdYO__gLYRZ&fvb4oKfhSf^d<Yeasc1f&a=hnYG{QY{D`Bsa|u,}Dl|_Q{C%xK|Aq}C>|c#ryW=}eY{L+`)][YF_Ub^h4}[X|?r|u_ex}TL@YR]j{SrXgo*|Gv|rK}B#mu{R1}hs|dP{C7|^Qt3|@P{YVV |8&}#D}ef{e/{Rl|>Hni}R1{Z#{D[}CQlQ||E}[s{SG_+i8eplY[=[|ec[$YXn#`hcm}YR|{Ci(_[ql|?8p3]-}^t{wy}4la&pc|3e{Rp{LqiJ],] `kc(]@chYnrM`O^,ZLYhZB]ywyfGY~aex!_Qww{a!|)*lHrM{N+n&YYj~Z b c#e_[hZSon|rOt`}hBXa^i{lh|<0||r{KJ{kni)|x,|0auY{D!^Sce{w;|@S|cA}Xn{C1h${E]Z-XgZ*XPbp]^_qbH^e[`YM|a||+=]!Lc}]vdBc=j-YSZD]YmyYLYKZ9Z>Xcczc2{Yh}9Fc#Z.l{}(D{G{{mRhC|L3b#|xK[Bepj#ut`H[,{E9Yr}1b{[e]{ZFk7[ZYbZ0XL]}Ye[(`d}c!|*y`Dg=b;gR]Hm=hJho}R-[n}9;{N![7k_{UbmN]rf#pTe[x8}!Qcs_rs[m`|>N}^V})7{^r|/E}),}HH{OYe2{Skx)e<_.cj.cjoMhc^d}0uYZd!^J_@g,[[[?{i@][|3S}Yl3|!1|eZ|5IYw|1D}e7|Cv{OHbnx-`wvb[6[4} =g+k:{C:}ed{S]|2M]-}WZ|/q{LF|dYu^}Gs^c{Z=}h>|/i|{W]:|ip{N:|zt|S<{DH[p_tvD{N<[8Axo{X4a.^o^X>Yfa59`#ZBYgY~_t^9`jZHZn`>G[oajZ;X,i)Z.^~YJe ZiZF^{][[#Zt^|]Fjx]&_5dddW]P0C[-]}]d|y {C_jUql] |OpaA[Z{lp|rz}:Mu#]_Yf6{Ep?f5`$[6^D][^u[$[6^.Z8]]ePc2U/=]K^_+^M{q*|9tYuZ,s(dS{i=|bNbB{uG}0jZOa:[-]dYtu3]:]<{DJ_SZIqr_`l=Yt`gkTnXb3d@kiq0a`Z{|!B|}e}Ww{Sp,^Z|0>_Z}36|]A|-t}lt{R6pi|v8hPu#{C>YOZHYmg/Z4nicK[}hF_Bg|YRZ7c|crkzYZY}_iXcZ.|)U|L5{R~qi^Uga@Y[xb}&qdbd6h5|Btw[}c<{Ds53[Y7]?Z<|e0{L[ZK]mXKZ#Z2^tavf0`PE[OSOaP`4gi`qjdYMgys/?[nc,}EEb,eL]g[n{E_b/vcvgb.{kcwi`~v%|0:|iK{Jh_vf5lb}KL|(oi=LrzhhY_^@`zgf[~g)[J_0fk_V{T)}I_{D&_/d9W/|MU[)f$xW}?$xr4<{Lb{y4}&u{XJ|cm{Iu{jQ}CMkD{CX|7A}G~{kt)nB|d5|<-}WJ}@||d@|Iy}Ts|iL|/^|no|0;}L6{Pm]7}$zf:|r2}?C_k{R(}-w|`G{Gy[g]bVje=_0|PT{^Y^yjtT[[[l!Ye_`ZN]@[n_)j3nEgMa]YtYpZy].d-Y_cjb~Y~[nc~sCi3|zg}B0}do{O^{|$`_|D{}U&|0+{J3|8*]iayx{a{xJ_9|,c{Ee]QXlYb]$[%YMc*]w[aafe]aVYi[fZEii[xq2YQZHg]Y~h#|Y:thre^@^|_F^CbTbG_1^qf7{L-`VFx Zr|@EZ;gkZ@slgko`[e}T:{Cu^pddZ_`yav^Ea+[#ZBbSbO`elQfLui}.F|txYcbQ`XehcGe~fc^RlV{D_0ZAej[l&jShxG[ipB_=u:eU}3e8[=j|{D(}dO{Do[BYUZ0/]AYE]ALYhZcYlYP/^-^{Yt_1_-;YT`P4BZG=IOZ&]H[e]YYd[9^F[1YdZxZ?Z{Z<]Ba2[5Yb[0Z4l?]d_;_)a?YGEYiYv`_XmZs4ZjY^Zb]6gqGaX^9Y}dXZr[g|]Y}K aFZp^k^F]M`^{O1Ys]ZCgCv4|E>}8eb7}l`{L5[Z_faQ|c2}Fj}hw^#|Ng|B||w2|Sh{v+[G}aB|MY}A{|8o}X~{E8paZ:]i^Njq]new)`-Z>haounWhN}c#{DfZ|fK]KqGZ=:u|fqoqcv}2ssm}.r{]{nIfV{JW)[K|,Z{Uxc|]l_KdCb%]cfobya3`p}G^|LZiSC]U|(X|kBlVg[kNo({O:g:|-N|qT}9?{MBiL}Sq{`P|3a|u.{Uaq:{_o|^S}jX{Fob0`;|#y_@[V[K|cw[<_ }KU|0F}d3|et{Q7{LuZttsmf^kYZ`Af`}$x}U`|Ww}d]| >}K,r&|XI|*e{C/a-bmr1fId4[;b>tQ_:]hk{b-pMge]gfpo.|(w[jgV{EC1Z,YhaY^q,_G[c_g[J0YX]`[h^hYK^_Yib,` {i6vf@YM^hdOKZZn(jgZ>bzSDc^Z%[[o9[2=/YHZ(_/Gu_`*|8z{DUZxYt^vuvZjhi^lc&gUd4|<UiA`z]$b/Z?l}YI^jaHxe|;F}l${sQ}5g}hA|e4}?o{ih}Uz{C)jPe4]H^J[Eg[|AMZMlc}:,{iz}#*|gc{Iq|/:|zK{l&}#u|myd{{M&v~nV};L|(g|I]ogddb0xsd7^V})$uQ{HzazsgxtsO^l}F>ZB]r|{7{j@cU^{{CbiYoHlng]f+nQ[bkTn/}<-d9q {KXadZYo+n|l[|lc}V2{[a{S4Zam~Za^`{HH{xx_SvF|ak=c^[v^7_rYT`ld@]:_ub%[$[m](Shu}G2{E.ZU_L_R{tz`vj(f?^}hswz}GdZ}{S:h`aD|?W|`dgG|if{a8|J1{N,}-Ao3{H#{mfsP|[ bzn+}_Q{MT{u4kHcj_q`eZj[8o0jy{p7}C|[}l){MuYY{|Ff!Ykn3{rT|m,^R|,R}$~Ykgx{P!]>iXh6[l[/}Jgcg{JYZ.^qYfYIZl[gZ#Xj[Pc7YyZD^+Yt;4;`e8YyZVbQ7YzZxXja.7SYl[s]2^/Ha$[6ZGYrb%XiYdf2]H]kZkZ*ZQ[ZYS^HZXcCc%Z|[(bVZ]]:OJQ_DZCg<[,]%Zaa [g{C00HY[c%[ChyZ,Z_`PbXa+eh`^&jPi0a[ggvhlekL]w{Yp^v}[e{~;k%a&k^|nR_z_Qng}[E}*Wq:{k^{FJZpXRhmh3^p>de^=_7`|ZbaAZtdhZ?n4ZL]u`9ZNc3g%[6b=e.ZVfC[ZZ^^^hD{E(9c(kyZ=bb|Sq{k`|vmr>izlH[u|e`}49}Y%}FT{[z{Rk}Bz{TCc/lMiAqkf(m$hDc;qooi[}^o:c^|Qm}a_{mrZ(pA`,}<2sY| adf_%|}`}Y5U;}/4|D>|$X{jw{C<|F.hK|*A{MRZ8Zsm?imZm_?brYWZrYx`yVZc3a@f?aK^ojEd {bN}/3ZH]/$YZhm^&j 9|(S|b]mF}UI{q&aM]LcrZ5^.|[j`T_V_Gak}9J[ ZCZD|^h{N9{~&[6Zd{}B}2O|cv]K}3s}Uy|l,fihW{EG`j_QOp~Z$F^zexS`dcISfhZBXP|.vn|_HYQ|)9|cr]<`&Z6]m_(ZhPcSg>`Z]5`~1`0Xcb4k1{O!bz|CN_T{LR|a/gFcD|j<{Z._[f)mPc:1`WtIaT1cgYkZOaVZOYFrEe[}T$}Ch}mk{K-^@]fH{Hdi`c*Z&|Kt{if[C{Q;{xYB`dYIX:ZB[}]*[{{p9|4GYRh2ao{DS|V+[zd$`F[ZXKadb*A] Ys]Maif~a/Z2bmclb8{Jro_rz|x9cHojbZ{GzZx_)]:{wAayeDlx}<=`g{H1{l#}9i|)=|lP{Qq}.({La|!Y{i2EZfp=c*}Cc{EDvVB|;g}2t{W4av^Bn=]ri,|y?|3+}T*ckZ*{Ffr5e%|sB{lx^0]eZb]9[SgAjS_D|uHZx]dive[c.YPkcq/}db{EQh&hQ|eg}G!ljil|BO]X{Qr_GkGl~YiYWu=c3eb}29v3|D|}4i||.{Mv})V{SP1{FX}CZW6{cm|vO{pS|e#}A~|1i}81|Mw}es|5[}3w{C`h9aL]o{}p[G`>i%a1Z@`Ln2bD[$_h`}ZOjhdTrH{[j_:k~kv[Sdu]CtL}41{I |[[{]Zp$]XjxjHt_eThoa#h>sSt8|gK|TVi[Y{t=}Bs|b7Zpr%{gt|Yo{CS[/{iteva|cf^hgn}($_c^wmb^Wm+|55jrbF|{9^ q6{C&c+ZKdJkq_xOYqZYSYXYl`8]-cxZAq/b%b*_Vsa[/Ybjac/OaGZ4fza|a)gY{P?| I|Y |,pi1n7}9bm9ad|=d{aV|2@[(}B`d&|Uz}B}{`q|/H|!JkM{FU|CB|.{}Az}#P|lk}K{|2rk7{^8^?`/|k>|Ka{Sq}Gz}io{DxZh[yK_#}9<{TRdgc]`~Z>JYmYJ]|`!ZKZ]gUcx|^E[rZCd`f9oQ[NcD_$ZlZ;Zr}mX|=!|$6ZPZYtIo%fj}CpcN|B,{VDw~gb}@hZg`Q{LcmA[(bo`<|@$|o1|Ss}9Z_}tC|G`{F/|9nd}i=}V-{L8aaeST]daRbujh^xlpq8|}zs4bj[S`J|]?G{P#{rD{]I`OlH{Hm]VYuSYUbRc*6[j`8]pZ[bt_/^Jc*[<Z?YE|Xb|?_Z^Vcas]h{t9|Uwd)_(=0^6Zb{Nc} E[qZAeX[a]P^|_J>e8`W^j_Y}R{{Jp__]Ee#e:iWb9q_wKbujrbR}CY`,{mJ}gz{Q^{t~N|? gSga`V_||:#mi}3t|/I`X{N*|ct|2g{km}gi|{={jC}F;|E}{ZZjYf*frmu}8Tdroi{T[|+~}HG{cJ}DM{Lp{Ctd&}$hi3|FZ| m}Kr|38}^c|m_|Tr{Qv|36}?Up>|;S{DV{k_as}BK{P}}9p|t`jR{sAm4{D=b4pWa[}Xi{EjwEkI}3S|E?u=X0{jf} S|NM|JC{qo^3cm]-|JUx/{Cj{s>{Crt[UXuv|D~|j|d{YXZR}Aq}0r}(_{pJfi_z}0b|-vi)Z mFe,{f4|q`b{}^Z{HM{rbeHZ|^x_o|XM|L%|uFXm}@C_{{Hhp%a7|0p[Xp+^K}9U{bP}: tT}B|}+$|b2|[^|~h{FAby[`{}xgygrt~h1[li`c4vz|,7p~b(|mviN}^pg[{N/|g3|^0c,gE|f%|7N{q[|tc|TKA{LU}I@|AZp(}G-sz{F |qZ{}F|f-}RGn6{Z]_5})B}UJ{FFb2]4ZI@v=k,]t_Dg5Bj]Z-]L]vrpdvdGlk|gF}G]|IW}Y0[G| /bo|Te^,_B}#n^^{QHYI[?hxg{[`]D^IYRYTb&kJ[cri[g_9]Ud~^_]<p@_e_XdNm-^/|5)|h_{J;{kacVopf!q;asqd}n)|.m|bf{QW|U)}b+{tL|w``N|to{t ZO|T]jF}CB|0Q{e5Zw|k |We}5:{HO{tPwf_uajjBfX}-V_C_{{r~gg|Ude;s+}KNXH}! `K}eW{Upwbk%ogaW}9EYN}YY|&v|SL{C3[5s.]Y]I]u{M6{pYZ`^,`ZbCYR[1mNg>rsk0Ym[jrE]RYiZTr*YJ{Ge|%-lf|y(`=[t}E6{k!|3)}Zk} ][G{E~cF{u3U.rJ|a9p#o#ZE|?|{sYc#vv{E=|LC}cu{N8`/`3`9rt[4|He{cq|iSYxY`}V |(Q|t4{C?]k_Vlvk)BZ^r<{CL}#h}R+[<|i=}X|{KAo]|W<`K{NW|Zx}#;|fe{IMr<|K~tJ_x}AyLZ?{GvbLnRgN}X&{H7|x~}Jm{]-| GpNu0}.ok>|c4{PYisrDZ|fwh9|hfo@{H~XSbO]Odv]%`N]b1Y]]|eIZ}_-ZA]aj,>eFn+j[aQ_+]h[J_m_g]%_wf.`%k1e#Z?{CvYu_B^|gk`Xfh^M3`afGZ-Z|[m{L}|k3cp[it ^>YUi~d>{T*}YJ{Q5{Jxa$hg|%4`}|LAgvb }G}{P=|<;Ux{_skR{cV|-*|s-{Mp|XP|$G|_J}c6cM{_=_D|*9^$ec{V;|4S{qO|w_|.7}d0|/D}e}|0G{Dq]Kdp{}dfDi>}B%{Gd|nl}lf{C-{y}|ANZr}#={T~|-(}c&{pI|ft{lsVP}){|@u}!W|bcmB{d?|iW|:dxj{PSkO|Hl]Li:}VYk@|2={fnWt{M3`cZ6|)}|Xj}BYa?vo{e4|L7|B7{L7|1W|lvYO}W8nJ|$Vih|{T{d*_1|:-n2dblk``fT{Ky|-%}m!|Xy|-a{Pz}[l{kFjz|iH}9N{WE{x,|jz}R {P|{D)c=nX|Kq|si}Ge{sh|[X{RF{t`|jsr*fYf,rK|/9}$}}Nf{y!1|<Std}4Wez{W${Fd_/^O[ooqaw_z[L`Nbv[;l7V[ii3_PeM}.h^viqYjZ*j1}+3{bt{DR[;UG}3Og,rS{JO{qw{d<_zbAh<R[1_r`iZTbv^^a}c{iEgQZ<exZFg.^Rb+`Uj{a+{z<[~r!]`[[|rZYR|?F|qppp]L|-d|}K}YZUM|=Y|ktm*}F]{D;g{uI|7kg^}%?Z%ca{N[_<q4xC]i|PqZC]n}.bDrnh0Wq{tr|OMn6tM|!6|T`{O`|>!]ji+]_bTeU}Tq|ds}n|{Gm{z,f)}&s{DPYJ`%{CGd5v4tvb*hUh~bf]z`jajiFqAii]bfy^U{Or|m+{I)cS|.9k:e3`^|xN}@Dnlis`B|Qo{`W|>||kA}Y}{ERYuYx`%[exd`]|OyiHtb}HofUYbFo![5|+]gD{NIZR|Go}.T{rh^4]S|C9_}xO^i`vfQ}C)bK{TL}cQ|79iu}9a];sj{P.o!f[Y]pM``Jda^Wc9ZarteBZClxtM{LW}l9|a.mU}KX}4@{I+f1}37|8u}9c|v${xGlz}jP{Dd1}e:}31}%3X$|22i<v+r@~mf{sN{C67G97855F4YL5}8f{DT|xy{sO{DXB334@55J1)4.G9A#JDYtXTYM4, YQD9;XbXm9SX]IB^4UN=Xn<5(;(F3YW@XkH-X_VM[DYM:5XP!T&Y`6|,^{IS-*D.H>:LXjYQ0I3XhAF:9:(==.F*3F1189K/7163D,:@|e2{LS36D4hq{Lw/[email protected]:0307::6D7}&l{Mx657;89;,K5678H&93D(H<&<>0B90X^I;}Ag1{P%3A+>><975}[S{PZE453?4|T2{Q+5187;>447:81{C=hL6{Me^:=7ii{R=.=F<81;48?|h8}Uh{SE|,VxL{ST,7?9Y_5Xk3A#:$%YSYdXeKXOD8+TXh7(@>(YdXYHXl9J6X_5IXaL0N?3YK7Xh!1?XgYz9YEXhXaYPXhC3X`-YLY_XfVf[EGXZ5L8BXL9YHX]SYTXjLXdJ: YcXbQXg1PX]Yx4|Jr{Ys4.8YU+XIY`0N,<H%-H;:0@,74/:8546I=9177154870UC]d<C3HXl7ALYzXFXWP<<?E!88E5@03YYXJ?YJ@6YxX-YdXhYG|9o{`iXjY_>YVXe>AYFX[/(I@0841?):-B=14337:8=|14{c&93788|di{cW-0>0<097/A;N{FqYpugAFT%X/Yo3Yn,#=XlCYHYNX[Xk3YN:YRT4?)-YH%A5XlYF3C1=NWyY}>:74-C673<69545v {iT85YED=64=.F4..9878/D4378?48B3:7:7/1VX[f4{D,{l<5E75{dAbRB-8-@+;DBF/$ZfW8S<4YhXA.(5@*11YV8./S95C/0R-A4AXQYI7?68167B95HA1*<M3?1/@;/=54XbYP36}lc{qzSS38:19?,/39193574/66878Yw1X-87E6=;964X`T734:>86>1/=0;(I-1::7ALYGXhF+Xk[@W%TYbX7)KXdYEXi,H-XhYMRXfYK?XgXj.9HX_SX]YL1XmYJ>Y}WwIXiI-3-GXcYyXUYJ$X`Vs[7;XnYEZ;XF! 3;%8;PXX(N3Y[)Xi1YE&/ :;74YQ6X`33C;-(>Xm0(TYF/!YGXg8 9L5P01YPXO-5%C|qd{{/K/E6,=0144:361:955;6443@?B7*7:F89&F35YaX-CYf,XiFYRXE_e{}sF 0*7XRYPYfXa5YXXY8Xf8Y~XmA[9VjYj*#YMXIYOXk,HHX40YxYMXU8OXe;YFXLYuPXP?EB[QV0CXfY{:9XV[FWE0D6X^YVP*$4%OXiYQ(|xp|%c3{}V`1>Y`XH00:8/M6XhQ1:;3414|TE|&o@1*=81G8<3}6<|(f6>>>5-5:8;093B^3U*+*^*UT30XgYU&7*O1953)5@E78--F7YF*B&0:%P68W9Zn5974J9::3}Vk|-,C)=)1AJ4+<3YGXfY[XQXmT1M-XcYTYZXCYZXEYXXMYN,17>XIG*SaS|/eYJXbI?XdNZ+WRYP<F:R PXf;0Xg`$|1GX9YdXjLYxWX!ZIXGYaXNYm6X9YMX?9EXmZ&XZ#XQ>YeXRXfAY[4 ;0X!Zz0XdN$XhYL XIY^XGNXUYS/1YFXhYk.TXn4DXjB{jg|4DEX]:XcZMW=A.+QYL<LKXc[vV$+&PX*Z3XMYIXUQ:ZvW< YSXFZ,XBYeXMM)?Xa XiZ4/EXcP3%}&-|6~:1(-+YT$@XIYRBC<}&,|7aJ6}bp|8)K1|Xg|8C}[T|8Q.89;-964I38361<=/;883651467<7:>?1:.}le|:Z=39;1Y^)?:J=?XfLXbXi=Q0YVYOXaXiLXmJXO5?.SFXiCYW}-;|=u&D-X`N0X^,YzYRXO(QX_YW9`I|>hZ:N&X)DQXP@YH#XmNXi$YWX^=!G6YbYdX>XjY|XlX^XdYkX>YnXUXPYF)FXT[EVTMYmYJXmYSXmNXi#GXmT3X8HOX[ZiXN]IU2>8YdX1YbX<YfWuZ8XSXcZU%0;1XnXkZ_WTG,XZYX5YSX Yp 05G?XcYW(IXg6K/XlYP4XnI @XnO1W4Zp-9C@%QDYX+OYeX9>--YSXkD.YR%Q/Yo YUX].Xi<HYEZ2WdCE6YMXa7F)=,D>-@9/8@5=?7164;35387?N<618=6>7D+C50<6B03J0{Hj|N9$D,9I-,.KB3}m |NzE0::/81YqXjMXl7YG; [.W=Z0X4XQY]:MXiR,XgM?9$9>:?E;YE77VS[Y564760391?14941:0=:8B:;/1DXjFA-564=0B3XlH1+D85:0Q!B#:-6&N/:9<-R3/7Xn<*3J4.H:+334B.=>30H.;3833/76464665755:/83H6633:=;.>5645}&E|Y)?1/YG-,93&N3AE@5 <L1-G/8A0D858/30>8<549=@B8] V0[uVQYlXeD(P#ID&7T&7;Xi0;7T-$YE)E=1:E1GR):--0YI7=E<}n9|aT6783A>D7&4YG7=391W;Zx<5+>F#J39}o/|cc;6=A050EQXg8A1-}D-|d^5548083563695D?-.YOXd37I$@LYLWeYlX<Yd+YR A$;3-4YQ-9XmA0!9/XLY_YT(=5XdDI>YJ5XP1ZAW{9>X_6R(XhYO65&J%DA)C-!B:97#A9;@?F;&;(9=11/=657/H,<8}bz|j^5446>.L+&Y^8Xb6?(CYOXb*YF(8X`FYR(XPYVXmPQ%&DD(XmZXW??YOXZXfCYJ79,O)XnYF7K0!QXmXi4IYFRXS,6<%-:YO(+:-3Q!1E1:W,Zo}Am|n~;3580534*?3Zc4=9334361693:30C<6/717:<1/;>59&:4}6!|rS36=1?75<8}[B|s809983579I.A.>84758=108564741H*9E{L{|u%YQ<%6XfH.YUXe4YL@,>N}Tv|ve*G0X)Z;/)3@A74(4P&A1X:YVH97;,754*A66:1 D739E3553545558E4?-?K17/770843XAYf838A7K%N!YW4.$T19Z`WJ*0XdYJXTYOXNZ 1XaN1A+I&Xi.Xk3Z3GB&5%WhZ1+5#Y[X<4YMXhQYoQXVXbYQ8XSYUX4YXBXWDMG0WxZA[8V+Z8X;D],Va$%YeX?FXfX[XeYf<X:Z[WsYz8X_Y]%XmQ(!7BXIZFX]&YE3F$(1XgYgYE& +[+W!<YMYFXc;+PXCYI9YrWxGXY9DY[!GXiI7::)OC;*$.>N*HA@{C|}&k=:<TB83X`3YL+G4XiK]i}(fYK<=5$.FYE%4*5*H*6XkCYL=*6Xi6!Yi1KXR4YHXbC8Xj,B9ZbWx/XbYON#5B}Ue}+QKXnF1&YV5XmYQ0!*3IXBYb71?1B75XmF;0B976;H/RXU:YZX;BG-NXj;XjI>A#D3B636N;,*%<D:0;YRXY973H5)-4FXOYf0:0;/7759774;7;:/855:543L43<?6=E,.A4:C=L)%4YV!1(YE/4YF+ F3%;S;&JC:%/?YEXJ4GXf/YS-EXEYW,9;E}X$}547EXiK=51-?71C%?57;5>463553Zg90;6447?<>4:9.7538XgN{|!}9K/E&3-:D+YE1)YE/3;37/:05}n<}:[email protected]=.(A Q3%6K>3(P3#AYE$-6H/456*C=.XHY[#S.<780191;057C)=6HXj?955B:K1 E>-B/9,;5.!L?:0>/.@//:;7833YZ56<4:YE=/:7Z_WGC%3I6>XkC*&NA16X=Yz2$X:Y^&J48<99k8}CyB-61<18K946YO4{|N}E)YIB9K0L>4=46<1K0+R;6-=1883:478;4,S+3YJX`GJXh.Yp+Xm6MXcYpX(>7Yo,/:X=Z;Xi0YTYHXjYmXiXj;*;I-8S6N#XgY}.3XfYGO3C/$XjL$*NYX,1 6;YH&<XkK9C#I74.>}Hd`A748X[T450[n75<4439:18A107>|ET}Rf<1;14876/Yb983E<5.YNXd4149>,S=/4E/<306443G/06}0&}UkYSXFYF=44=-5095=88;63844,9E6644{PL}WA8:>)7+>763>>0/B3A545CCnT}Xm|dv}Xq1L/YNXk/H8;;.R63351YY747@15YE4J8;46;.38.>4A369.=-83,;Ye3?:[email protected]+N353;/;@(X[YYD>@/05-I*@.:551741Yf5>6A443<3535;.58/86=D4753442$635D1>0359NQ @73:3:>><Xn?;43C14 ?Y|X611YG1&<+,4<*,YLXl<1/AIXjF*N89A4Z576K1XbJ5YF.ZOWN.YGXO/YQ01:4G38Xl1;KI0YFXB=R<7;D/,/4>;$I,YGXm94@O35Yz66695385.>:6A#5}W7n^4336:4157597434433<3|XA}m`>=D>:4A.337370?-6Q96{`E|4A}C`|Qs{Mk|J+~r>|o,wHv>Vw}!c{H!|Gb|*Ca5}J||,U{t+{CN[!M65YXOY_*B,Y[Z9XaX[QYJYLXPYuZ%XcZ8LY[SYPYKZM<LMYG9OYqSQYM~[e{UJXmQYyZM_)>YjN1~[f3{aXFY|Yk:48YdH^NZ0|T){jVFYTZNFY^YTYN~[h{nPYMYn3I]`EYUYsYIZEYJ7Yw)YnXPQYH+Z.ZAZY]^Z1Y`YSZFZyGYHXLYG 8Yd#4~[i|+)YH9D?Y^F~Y7|-eYxZ^WHYdYfZQ~[j|3>~[k|3oYmYqY^XYYO=Z*4[]Z/OYLXhZ1YLZIXgYIHYEYK,<Y`YEXIGZI[3YOYcB4SZ!YHZ*&Y{Xi3~[l|JSY`Zz?Z,~[m|O=Yi>??XnYWXmYS617YVYIHZ(Z4[~L4/=~[n|Yu{P)|];YOHHZ}~[o33|a>~[r|aE]DH~[s|e$Zz~[t|kZFY~XhYXZB[`Y}~[u|{SZ&OYkYQYuZ2Zf8D~[v}% ~[w3},Q[X]+YGYeYPIS~[y}4aZ!YN^!6PZ*~[z}?E~[{3}CnZ=~[}}EdDZz/9A3(3S<,YR8.D=*XgYPYcXN3Z5 4)~[~}JW=$Yu.XX~] }KDX`PXdZ4XfYpTJLY[F5]X~[2Yp}U+DZJ::<446[m@~]#3}]1~]%}^LZwZQ5Z`/OT<Yh^ -~]&}jx[ ~m<z!%2+~ly4VY-~o>}p62yz!%2+Xf2+~ly4VY-zQ`z (=] 2z~o2",C={" ":0,"!":1},c=34,i=2,p,s=[],u=String.fromCharCode,t=u(12539);while(++c<127)C[u(c)]=c^39&&c^92?i++:0;i=0;while(0<=(c=C[a.charAt(i++)]))if(16==c)if((c=C[a.charAt(i++)])<87){if(86==c)c=1879;while(c--)s.push(u(++p))}else s.push(s.join("").substr(8272,360));else if(c<86)s.push(u(p+=c<51?c-16:(c-55)*92+C[a.charAt(i++)]));else if((c=((c-86)*92+C[a.charAt(i++)])*92+C[a.charAt(i++)])<49152)s.push(u(p=c<40960?c:c|57344));else{c&=511;while(c--)s.push(t);p=12539}return s.join("")')();
JCT8836=JCT11280.substring(0,8836);
//============================引用ここまで===================================
}catch(e){
GM_log(e);
}
}//-------------ecl()ここまで--------------------
})();