package Ġorg . jetbrains . research . k ex . asm . analysis Ċ Ċ import Ġcom . abd ull in . k the l per . algorithm . Graph Traversal Ċ import Ġorg . jetbrains . research . k fg . ir . BasicBlock Ċ import Ġorg . jetbrains . research . k fg . ir . Method Ċ Ċ interface ĠSearch Strategy Ġ: ĠIterable < BasicBlock > Ġ{ ĊĠĠĠ Ġval Ġmethod : ĠMethod Ċ } Ċ Ċ class ĠTop ological Strategy ( override Ġval Ġmethod : ĠMethod ) Ġ: ĠSearch Strategy Ġ{ ĊĠĠĠ Ġval Ġorder Ġ= ĠGraph Traversal ( method ). topo logical Sort () ĊĊĠĠĠ Ġoverride Ġfun Ġiterator () Ġ= Ġorder . iterator () Ċ } Ċ Ċ class ĠB fs Strategy ( override Ġval Ġmethod : ĠMethod ) Ġ: ĠSearch Strategy Ġ{ ĊĠĠĠ Ġval Ġb fs Search Ġ= ĠGraph Traversal ( method ). b fs () ĊĊĠĠĠ Ġoverride Ġfun Ġiterator () Ġ= Ġb fs Search . iterator () Ċ } Ċ Ċ class ĠD fs Strategy ( override Ġval Ġmethod : ĠMethod ) Ġ: ĠSearch Strategy Ġ{ ĊĠĠĠ Ġval Ġdfs Search Ġ= ĠGraph Traversal ( method ). dfs () ĊĊĠĠĠ Ġoverride Ġfun Ġiterator () Ġ= Ġdfs Search . iterator () Ċ } Ċ