BT /F42 8.9664 Tf 65.9552 712.0299 Td[(Our)-263(implementation)-263(does)-263(not)-263(e)15(xtend)-263(at)-263(all)-263(side)-263(e)15(xits.)-263(It)-263(e)15(xtends)]TJ -11.9552 -9.9627 Td[(only)-223(if)-224(the)-223(side)-223(e)15(xit)-224(is)-223(for)-223(a)-224(control-\003o)25(w)-223(branch,)-223(and)-224(only)-223(if)-223(the)-224(side)]TJ 0 -9.9626 Td[(e)15(xit)-252(does)-252(not)-251(lea)20(v)15(e)-252(the)-252(loop.)-252(In)-252(particular)-252(we)-251(do)-252(not)-252(w)10(ant)-252(to)-252(e)15(xtend)]TJ 0 -9.9626 Td[(a)-362(trace)-361(tree)-362(along)-362(a)-361(path)-362(that)-362(leads)-361(to)-362(an)-362(outer)-361(loop,)-362(because)-362(we)]TJ 0 -9.9627 Td[(w)10(ant)-250(to)-250(co)15(v)15(er)-250(such)-250(paths)-250(in)-250(an)-250(outer)-250(tree)-250(through)-250(tree)]TJ/F46 8.9664 Tf 192.623 0 Td[(nesting)]TJ/F42 8.9664 Tf 25.9036 0 Td[(.)]TJ/F41 8.9664 Tf -218.5266 -17.5342 Td[(3.3)-1000(Blacklisting)]TJ/F42 8.9664 Tf 0 -13.9477 Td[(Sometimes,)-463(a)-463(program)-463(follo)25(ws)-463(a)-463(path)-463(that)-463(cannot)-463(be)-463(compiled)]TJ 0 -9.9627 Td[(into)-309(a)-309(trace,)-309(usually)-308(because)-309(of)-309(limitations)-309(in)-309(the)-309(implementation.)]TJ 0 -9.9626 Td[(T)35(raceMonk)10(e)15(y)-362(does)-362(not)-362(currently)-362(support)-362(recording)-363(thro)25(wing)-362(and)]TJ 0 -9.9626 Td[(catching)-266(of)-265(arbitrary)-266(e)15(xceptions.)-265(This)-266(design)-265(trade)-266(of)25(f)-265(w)10(as)-266(chosen,)]TJ 0 -9.9627 Td[(because)-396(e)15(xceptions)-395(are)-396(usually)-396(rare)-396(in)-395(Ja)20(v)25(aScript.)-396(Ho)25(we)25(v)15(er)40(,)-396(if)-396(a)]TJ 0 -9.9626 Td[(program)-430(opts)-429(to)-430(use)-430(e)15(xceptions)-430(intensi)25(v)15(ely)65(,)-429(we)-430(w)10(ould)-430(suddenly)]TJ 0 -9.9627 Td[(incur)-309(a)-309(punishing)-310(runt)1(ime)-310(o)15(v)15(erhead)-309(if)-309(we)-309(repeatedly)-309(try)-310(to)-309(record)]TJ 0 -9.9626 Td[(a)-371(trace)-371(for)-371(this)-371(path)-370(and)-371(repeatedly)-371(f)10(ail)-371(to)-371(do)-371(so,)-371(since)-371(we)-371(abort)]TJ 0 -9.9626 Td[(tracing)-250(e)25(v)15(ery)-250(time)-250(we)-250(observ)15(e)-250(an)-250(e)15(xception)-250(being)-250(thro)25(wn.)]TJ 11.9552 -9.9627 Td[(As)-221(a)-220(result,)-221(if)-220(a)-221(hot)-220(loop)-221(contains)-221(traces)-220(that)-221(al)10(w)10(ays)-220(f)10(ail,)-221(the)-220(VM)]TJ -11.9552 -9.9626 Td[(could)-306(potentially)-305(run)-306(much)-306(more)-305(slo)25(wly)-306(than)-305(the)-306(base)-306(interpreter:)]TJ 0 -9.9627 Td[(the)-251(VM)-251(repeatedly)-251(spends)-251(t)1(ime)-251(trying)-251(to)-251(record)-251(traces,)-251(b)20(ut)-251(is)-251(ne)25(v)15(er)]TJ 0 -9.9626 Td[(able)-289(to)-289(run)-288(an)15(y)65(.)-289(T)80(o)-289(a)20(v)20(oid)-289(this)-289(problem,)-288(whene)25(v)15(er)-289(the)-289(VM)-289(is)-289(about)]TJ 0 -9.9626 Td[(to)-231(start)-231(tracing,)-231(it)-231(must)-230(try)-231(to)-231(predict)-231(whether)-231(it)-231(will)-231(\002nish)-231(the)-231(trace.)]TJ 11.9552 -9.9627 Td[(Our)-426(prediction)-427(algorithm)-426(is)-427(based)-426(on)]TJ/F46 8.9664 Tf 143.4761 0 Td[(blac)20(klisting)]TJ/F42 8.9664 Tf 45.4898 0 Td[(traces)-426(that)]TJ -200.9211 -9.9626 Td[(ha)20(v)15(e)-212(been)-212(tried)-212(and)-212(f)10(ailed.)-212(When)-212(the)-212(VM)-212(f)10(ails)-212(to)-212(\002nish)-212(a)-212(trace)-212(start-)]TJ 0 -9.9627 Td[(ing)-214(at)-214(a)-213(gi)25(v)15(en)-214(point,)-214(the)-214(VM)-213(records)-214(that)-214(a)-213(f)10(ailure)-214(has)-214(occurred.)-214(The)]TJ 0 -9.9626 Td[(VM)-193(also)-193(sets)-192(a)-193(counter)-193(so)-193(that)-193(it)-193(will)-193(not)-192(try)-193(to)-193(record)-193(a)-193(trace)-193(starting)]TJ 0 -9.9626 Td[(at)-319(that)-320(point)-319(until)-319(it)-320(is)-319(passed)-319(a)-320(fe)25(w)-319(more)-319(times)-320(\05032)-319(in)-319(our)-320(imple-)]TJ 0 -9.9627 Td[(mentation\051.)-345(This)]TJ/F46 8.9664 Tf 63.2261 0 Td[(bac)20(k)10(of)18(f)]TJ/F42 8.9664 Tf 30.3714 0 Td[(counter)-345(gi)25(v)15(es)-346(t)1(emporary)-346(conditions)-345(that)]TJ -93.5975 -9.9626 Td[(pre)25(v)15(ent)-318(tracing)-318(a)-319(chance)-318(to)-318(end.)-318(F)15(or)-319(e)15(xample,)-318(a)-318(loop)-318(may)-319(beha)20(v)15(e)]TJ 0 -9.9627 Td[(dif)25(ferently)-205(during)-206(startup)-205(than)-205(during)-206(its)-205(steady-state)-205(e)15(x)15(ecution.)-206(Af-)]TJ 0 -9.9626 Td[(ter)-316(a)-315(gi)25(v)15(en)-316(number)-315(of)-316(f)10(ailures)-315(\0502)-316(in)-315(our)-316(implementation\051,)-315(the)-316(VM)]TJ 0 -9.9626 Td[(marks)-241(the)-240(fragment)-241(as)-240(blacklisted,)-241(which)-240(means)-241(the)-241(VM)-240(will)-241(ne)25(v)15(er)]TJ 0 -9.9627 Td[(ag)5(ain)-250(start)-250(recording)-250(at)-250(that)-250(point.)]TJ 11.9552 -9.9626 Td[(After)-426(implem)1(enting)-426(this)-426(basic)-425(strate)15(gy)65(,)-426(we)-425(observ)15(ed)-426(that)-425(for)]TJ -11.9552 -9.9627 Td[(small)-275(loops)-276(that)-275(get)-275(blacklisted,)-275(the)-276(system)-275(can)-275(spend)-275(a)-276(noticeable)]TJ 0 -9.9626 Td[(amount)-239(of)-239(time)-239(just)-239(\002nding)-239(the)-239(loop)-239(fragment)-239(and)-239(determining)-239(that)]TJ 0 -9.9626 Td[(it)-238(has)-238(been)-239(blacklisted.)-238(W)80(e)-238(no)25(w)-238(a)20(v)20(oid)-239(that)-238(problem)-238(by)-238(patching)-239(the)]TJ 0 -9.9627 Td[(bytecode.)-291(W)80(e)-290(de\002ne)-291(an)-291(e)15(xtra)-290(no-op)-291(bytecode)-291(that)-290(indicates)-291(a)-291(loop)]TJ 0 -9.9626 Td[(header)55(.)-327(The)-326(VM)-327(calls)-326(into)-327(the)-327(trace)-326(monitor)-327(e)25(v)15(ery)-326(time)-327(the)-327(inter)20(-)]TJ 0 -9.9627 Td[(preter)-356(e)15(x)15(ecutes)-356(a)-356(loop)-357(header)-356(no-op.)-356(T)80(o)-356(blacklist)-356(a)-357(fragm)1(ent,)-357(we)]TJ 0 -9.9626 Td[(simply)-319(replace)-318(the)-319(loop)-319(header)-318(no-op)-319(with)-319(a)-318(re)15(gular)-319(no-op.)-319(Thus,)]TJ 0 -9.9626 Td[(the)-250(interpreter)-250(will)-250(ne)25(v)15(er)-250(ag)5(ain)-250(e)25(v)15(en)-250(call)-250(into)-250(the)-250(trace)-250(monitor)55(.)]TJ 11.9552 -9.9627 Td[(There)-220(is)-220(a)-219(related)-220(problem)-220(we)-220(ha)20(v)15(e)-219(not)-220(yet)-220(solv)15(ed,)-220(which)-219(occurs)]TJ -11.9552 -9.9626 Td[(when)-250(a)-250(loop)-250(meets)-250(all)-250(of)-250(these)-250(conditions:)]TJ/F26 7.9701 Tf 5.2303 -13.9462 Td[(\017)]TJ/F42 8.9664 Tf 7.7211 -0.8982 Td[(The)-250(VM)-250(can)-250(form)-250(at)-250(least)-250(one)-250(root)-250(trace)-250(for)-250(the)-250(loop.)]TJ/F26 7.9701 Tf -7.7211 -13.0495 Td[(\017)]TJ/F42 8.9664 Tf 7.7211 -0.8982 Td[(There)-395(is)-395(at)-395(least)-395(one)-396(hot)-395(side)-395(e)15(xit)-395(for)-395(which)-395(the)-395(VM)-395(cannot)]TJ 0 -9.9626 Td[(complete)-250(a)-250(trace.)]TJ/F26 7.9701 Tf -7.7211 -13.0495 Td[(\017)]TJ/F42 8.9664 Tf 7.7211 -0.8982 Td[(The)-250(loop)-250(body)-250(is)-250(short.)]TJ -0.9963 -14.8443 Td[(In)-216(this)-217(case,)-216(the)-216(VM)-217(will)-216(repeatedly)-216(pass)-216(the)-217(loop)-216(header)40(,)-216(search)]TJ -11.9551 -9.9626 Td[(for)-471(a)-472(trace,)-471(\002nd)-472(it,)-471(e)15(x)15(ecute)-471(it,)-472(and)-471(f)10(all)-472(back)-471(to)-471(the)-472(interpreter)55(.)]TJ 0 -9.9627 Td[(W)40(ith)-399(a)-399(short)-399(loop)-399(body)65(,)-398(the)-399(o)15(v)15(erhead)-399(of)-399(\002nding)-399(and)-399(calling)-399(the)]TJ 0 -9.9626 Td[(trace)-342(is)-343(high,)-342(and)-343(causes)-342(performance)-343(to)-342(be)-342(e)25(v)15(en)-343(slo)25(wer)-342(than)-343(the)]TJ 0 -9.9627 Td[(basic)-417(interpreter)55(.)-418(So)-417(f)10(ar)40(,)-417(in)-418(this)-417(situation)-418(we)-417(ha)20(v)15(e)-417(impro)15(v)15(ed)-418(the)]TJ 0 -9.9626 Td[(implementation)-442(so)-442(that)-442(the)-441(VM)-442(can)-442(complete)-442(the)-442(branch)-442(trace.)]TJ 0 -9.9626 Td[(But)-390(it)-390(is)-390(hard)-391(to)-390(guarantee)-390(that)-390(this)-390(situation)-390(will)-391(ne)26(v)14(e)1(r)-391(happen.)]TJ 0 -9.9627 Td[(As)-358(future)-358(w)10(ork,)-358(this)-358(situation)-358(could)-358(be)-358(a)20(v)20(oided)-359(by)-358(detecting)-358(and)]TJ 0 -9.9626 Td[(blacklisting)-406(loops)-406(for)-406(which)-405(the)-406(a)20(v)15(erage)-406(trace)-406(call)-406(e)15(x)15(ecutes)-406(fe)25(w)]TJ 0 -9.9627 Td[(bytecodes)-250(before)-250(returning)-250(to)-250(the)-250(interpreter)55(.)]TJ/F41 10.9589 Tf 0 -22.5155 Td[(4.)-1000(Nested)-250(T)74(race)-250(T)74(r)18(ee)-250(F)25(ormation)]TJ/F42 8.9664 Tf 0 -13.9477 Td[(Figure)-220(7)-220(sho)25(ws)-220(basic)-220(trace)-219(tree)-220(compilation)-220(\05011\051)-220(applied)-220(to)-220(a)-220(nested)]TJ 0 -9.9627 Td[(loop)-363(where)-364(the)-363(inner)-363(loop)-364(contains)-363(tw)10(o)-364(paths.)-363(Usually)65(,)-363(the)-364(inner)]TJ 0 -9.9626 Td[(loop)-239(\050with)-239(header)-239(at)]TJ/F29 8.9664 Tf 73.8141 0 Td[(i)]TJ/F28 5.9776 Tf 3.1534 -0.9962 Td[(2)]TJ/F42 8.9664 Tf 4.151 0.9962 Td[(\051)-239(becomes)-239(hot)-239(\002rst,)-239(and)-239(a)-239(trace)-240(tree)-239(is)-239(rooted)]TJ -81.1185 -9.9626 Td[(at)-310(that)-310(point.)-309(F)15(or)-310(e)15(xample,)-310(the)-310(\002rst)-310(recorded)-309(trace)-310(may)-310(be)-310(a)-310(c)15(ycle)]TJ ET 1 0 0 1 388.7455 583.8003 cm q 0.37213 0 0 0.37213 0 0 cm q 1 0 0 1 0 0 cm /Im2 Do Q Q 1 0 0 1 -71.7318 -11.2877 cm q []0 d 0 J 0.3288 w 0 0.1644 m 239.1034 0.1644 l S Q 1 0 0 1 -317.0137 -572.5126 cm BT /F41 8.9664 Tf 317.0137 562.3497 Td[(Figur)18(e)-402(5.)]TJ/F42 8.9664 Tf 40.0542 0 Td[(A)-402(tree)-402(with)-402(tw)10(o)-403(trac)1(es,)-403(a)-402(trunk)-402(trace)-402(and)-402(one)-403(branch)]TJ -40.0542 -9.9626 Td[(trace.)-245(The)-244(trunk)-245(trace)-245(contains)-244(a)-245(guard)-244(to)-245(which)-245(a)-244(branch)-245(trace)-245(w)10(as)]TJ 0 -9.9627 Td[(attached.)-231(The)-232(branch)-231(trace)-232(contain)-231(a)-232(guard)-231(that)-231(may)-232(f)10(ail)-231(and)-232(trigger)]TJ 0 -9.9626 Td[(a)-222(side)-221(e)15(xit.)-222(Both)-222(the)-221(trunk)-222(and)-222(the)-222(branch)-221(trace)-222(loop)-222(back)-221(to)-222(the)-222(tree)]TJ 0 -9.9626 Td[(anchor)40(,)-250(which)-250(is)-250(the)-250(be)15(ginning)-250(of)-250(the)-250(trace)-250(tree.)]TJ ET 1 0 0 1 352.8796 315.1907 cm q 0.46622 0 0 0.46622 0 0 cm q 1 0 0 1 0 0 cm /Im3 Do Q Q 1 0 0 1 -35.8659 -11.2877 cm q []0 d 0 J 0.3288 w 0 0.1644 m 239.1034 0.1644 l S Q 1 0 0 1 -317.0137 -303.903 cm BT /F41 8.9664 Tf 317.0137 293.7402 Td[(Figur)18(e)-436(6.)]TJ/F42 8.9664 Tf 40.3573 0 Td[(W)80(e)-436(handle)-436(type-unstable)-436(loops)-436(by)-436(allo)25(wing)-436(traces)-436(to)]TJ -40.3573 -9.9627 Td[(compile)-385(that)-386(cannot)-385(loop)-386(back)-385(to)-386(themselv)15(es)-385(due)-385(to)-386(a)-385(type)-386(mis-)]TJ 0 -9.9626 Td[(match.)-223(As)-223(such)-222(traces)-223(accumulate,)-223(we)-223(attempt)-222(to)-223(connect)-223(their)-223(loop)]TJ 0 -9.9626 Td[(edges)-237(to)-238(form)-237(groups)-238(of)-237(trace)-238(trees)-237(that)-237(can)-238(e)15(x)15(ecute)-237(without)-238(ha)20(ving)]TJ 0 -9.9627 Td[(to)-309(side-e)15(xit)-309(to)-309(the)-309(interpreter)-309(to)-309(co)15(v)15(er)-309(odd)-309(type)-310(case)1(s.)-310(This)-309(is)-309(par)20(-)]TJ 0 -9.9626 Td[(ticularly)-223(important)-223(for)-223(nested)-222(trace)-223(trees)-223(where)-223(an)-223(outer)-223(tree)-223(tries)-223(to)]TJ 0 -9.9627 Td[(call)-245(an)-244(inner)-245(tree)-244(\050or)-245(in)-245(this)-244(case)-245(a)-245(forest)-244(of)-245(inner)-244(trees\051,)-245(since)-245(inner)]TJ 0 -9.9626 Td[(loops)-244(frequently)-244(ha)20(v)15(e)-244(initially)-244(unde\002ned)-244(v)25(alues)-244(which)-245(change)-244(type)]TJ 0 -9.9626 Td[(to)-250(a)-250(concrete)-250(v)25(alue)-250(after)-250(the)-250(\002rst)-250(iteration.)]TJ 0 -26.0441 Td[(through)-406(the)-406(inner)-407(l)1(oop,)]TJ/F31 8.9664 Tf 90.0285 0 Td[(f)]TJ/F29 8.9664 Tf 4.6077 0 Td[(i)]TJ/F28 5.9776 Tf 3.1534 -0.9962 Td[(2)]TJ/F29 8.9664 Tf 4.151 0.9962 Td[(;)-172(i)]TJ/F28 5.9776 Tf 7.2491 -0.9962 Td[(3)]TJ/F29 8.9664 Tf 4.151 0.9962 Td[(;)-172(i)]TJ/F28 5.9776 Tf 7.2491 -0.9962 Td[(5)]TJ/F29 8.9664 Tf 4.1511 0.9962 Td[(;)-172(\013)]TJ/F31 8.9664 Tf 10.0085 0 Td[(g)]TJ/F42 8.9664 Tf 4.6077 0 Td[(.)-406(The)]TJ/F29 8.9664 Tf 23.4683 0 Td[(\013)]TJ/F42 8.9664 Tf 9.5549 0 Td[(symbol)-406(is)-406(used)-406(to)]TJ -172.3803 -9.9626 Td[(indicate)-250(that)-250(the)-250(trace)-250(loops)-250(back)-250(the)-250(tree)-250(anchor)55(.)]TJ 11.9552 -9.9627 Td[(When)-261(e)15(x)15(ecution)-260(lea)20(v)15(es)-261(the)-261(inner)-261(loop,)-260(the)-261(basic)-261(design)-261(has)-260(tw)10(o)]TJ -11.9552 -9.9626 Td[(choices.)-211(First,)-211(the)-211(system)-210(can)-211(stop)-211(tracing)-211(and)-211(gi)25(v)15(e)-211(up)-211(on)-211(compiling)]TJ 0 -9.9627 Td[(the)-273(outer)-272(loop,)-273(clearly)-273(an)-272(undesirable)-273(solution.)-273(The)-272(other)-273(choice)-273(is)]TJ 0 -9.9626 Td[(to)-320(continue)-320(tracing,)-319(compiling)-320(traces)-320(for)-320(the)-319(outer)-320(loop)-320(inside)-320(the)]TJ 0 -9.9626 Td[(inner)-250(loop')55(s)-250(trace)-250(tree.)]TJ 11.9552 -9.9627 Td[(F)15(or)-292(e)15(xample,)-291(the)-292(program)-291(might)-292(e)15(xit)-292(at)]TJ/F29 8.9664 Tf 145.1588 0 Td[(i)]TJ/F28 5.9776 Tf 3.1533 -0.9962 Td[(5)]TJ/F42 8.9664 Tf 6.7659 0.9962 Td[(and)-292(record)-291(a)-292(branch)]TJ -167.0332 -9.9626 Td[(trace)-564(that)-563(incorporates)-564(the)-564(outer)-563(loop:)]TJ/F31 8.9664 Tf 153.3327 0 Td[(f)]TJ/F29 8.9664 Tf 4.6077 0 Td[(i)]TJ/F28 5.9776 Tf 3.1534 -0.9963 Td[(5)]TJ/F29 8.9664 Tf 4.151 0.9963 Td[(;)-172(i)]TJ/F28 5.9776 Tf 7.2491 -0.9963 Td[(7)]TJ/F29 8.9664 Tf 4.151 0.9963 Td[(;)-172(i)]TJ/F28 5.9776 Tf 7.2491 -0.9963 Td[(1)]TJ/F29 8.9664 Tf 4.1511 0.9963 Td[(;)-172(i)]TJ/F28 5.9776 Tf 7.2491 -0.9963 Td[(6)]TJ/F29 8.9664 Tf 4.151 0.9963 Td[(;)-172(i)]TJ/F28 5.9776 Tf 7.2491 -0.9963 Td[(7)]TJ/F29 8.9664 Tf 4.151 0.9963 Td[(;)-172(i)]TJ/F28 5.9776 Tf 7.2491 -0.9963 Td[(1)]TJ/F29 8.9664 Tf 4.1511 0.9963 Td[(;)-172(\013)]TJ/F31 8.9664 Tf 10.0085 0 Td[(g)]TJ/F42 8.9664 Tf 4.6077 0 Td[(.)]TJ -236.8617 -9.9627 Td[(Later)40(,)-459(the)-458(program)-459(might)-459(tak)10(e)-459(the)-458(other)-459(branch)-459(at)]TJ/F29 8.9664 Tf 195.185 0 Td[(i)]TJ/F28 5.9776 Tf 3.1533 -0.9962 Td[(2)]TJ/F42 8.9664 Tf 8.2644 0.9962 Td[(and)-459(then)]TJ -206.6027 -9.9626 Td[(e)15(xit,)-339(recording)-340(another)-339(branch)-340(trace)-339(incorporating)-340(the)-339(outer)-340(loop:)]TJ/F31 8.9664 Tf 0 -9.9626 Td[(f)]TJ/F29 8.9664 Tf 4.6077 0 Td[(i)]TJ/F28 5.9776 Tf 3.1534 -0.9963 Td[(2)]TJ/F29 8.9664 Tf 4.151 0.9963 Td[(;)-172(i)]TJ/F28 5.9776 Tf 7.2491 -0.9963 Td[(4)]TJ/F29 8.9664 Tf 4.151 0.9963 Td[(;)-172(i)]TJ/F28 5.9776 Tf 7.2491 -0.9963 Td[(5)]TJ/F29 8.9664 Tf 4.1511 0.9963 Td[(;)-172(i)]TJ/F28 5.9776 Tf 7.2491 -0.9963 Td[(7)]TJ/F29 8.9664 Tf 4.151 0.9963 Td[(;)-172(i)]TJ/F28 5.9776 Tf 7.2491 -0.9963 Td[(1)]TJ/F29 8.9664 Tf 4.151 0.9963 Td[(;)-172(i)]TJ/F28 5.9776 Tf 7.2491 -0.9963 Td[(6)]TJ/F29 8.9664 Tf 4.1511 0.9963 Td[(;)-172(i)]TJ/F28 5.9776 Tf 7.2491 -0.9963 Td[(7)]TJ/F29 8.9664 Tf 4.151 0.9963 Td[(;)-172(i)]TJ/F28 5.9776 Tf 7.2491 -0.9963 Td[(1)]TJ/F29 8.9664 Tf 4.151 0.9963 Td[(;)-172(\013)]TJ/F31 8.9664 Tf 10.0086 0 Td[(g)]TJ/F42 8.9664 Tf 4.6077 0 Td[(.)-235(Thus,)-235(the)-235(outer)-234(loop)-235(is)-235(recorded)-235(and)]TJ -106.3293 -9.9627 Td[(compiled)-197(twice,)-198(and)-198(both)-197(copies)-198(must)-197(be)-198(retained)-197(in)-198(the)-197(trace)-198(cache.)]TJ ET