package Ġtech . lin jiang . pand ora . gradle Ċ Ċ import Ġorg . object web . asm . Op codes .* Ċ import Ġorg . object web . asm . tree .* Ċ Ċ private Ġconst Ġval ĠCL AZ Z _ NAME Ġ= Ġ" okhttp 3 / Ok HttpClient \$ Builder " Ċ private Ġconst Ġval ĠMETHOD _ NAME Ġ= Ġ"< init >" Ċ private Ġconst Ġval ĠFIELD _ NAME Ġ= Ġ" intercept ors " Ċ Ċ internal Ġclass ĠOk Http Transform Ġ: ĠTransformer Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġtransform ( clazz : ĠClass Node ) Ġ{ ĊĠĠĠĠĠĠĠ Ġclazz . take If Ġ{ Ġit . name Ġ== ĠCL AZ Z _ NAME Ġ} ?. methods ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . find Ġ{ Ġit . name Ġ== ĠMETHOD _ NAME Ġ} ?. instructions ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġinstructions Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIterable Ġ{ Ġinstructions . iterator () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Is Instance < Field Insn Node >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Ġ{ Ġit . name Ġ== ĠFIELD _ NAME Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġsrc Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" A OP : Ġ${ src . owner }, Ġ${ src . name }, Ġ${ src . desc }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun ĠAbstract Insn Node . append ( node : ĠAbstract Insn Node ) Ġ= Ġnode . also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinstructions . insert ( this , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġintercept ors . add ( tech . lin jiang . pand ora . P and ora . get (). get Interceptor ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsrc . append ( Var Insn Node ( AL O AD , Ġ 0 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( Field Insn Node ( GET FIELD , Ġsrc . owner , Ġsrc . name , Ġsrc . desc )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( Method Insn Node ( IN VOKE STATIC , Ġ" tech / lin jiang / pand ora / P and ora ", Ġ" get ", Ġ" () L tech / lin jiang / pand ora / P and ora ;", Ġfalse )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( Method Insn Node ( IN VOKE VIRTUAL , Ġ" tech / lin jiang / pand ora / P and ora ", Ġ" get Interceptor ", Ġ" () L tech / lin jiang / pand ora / network / Ok Http Interceptor ;", Ġfalse )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( Method Insn Node ( IN VOKE INTERFACE , Ġ" java / util / List ", Ġ" add ", Ġ"( Ljava / lang / Object ;) Z ", Ġtrue )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. append ( Insn Node ( POP )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } ĊĊ