i.smali
.class public final Lcom/subgraph/orchid/directory/consensus/i;
.super Lcom/subgraph/orchid/directory/consensus/c;
.source "RouterStatusSectionParser.java"
# instance fields
.field private bJo:Lcom/subgraph/orchid/directory/consensus/h;
# direct methods
.method constructor <init>(Lcom/subgraph/orchid/directory/a/b;Lcom/subgraph/orchid/directory/consensus/b;)V
.registers 4
.prologue
.line 15
invoke-direct {p0, p1, p2}, Lcom/subgraph/orchid/directory/consensus/c;-><init>(Lcom/subgraph/orchid/directory/a/b;Lcom/subgraph/orchid/directory/consensus/b;)V
.line 12
const/4 v0, 0x0
iput-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;
.line 16
return-void
.end method
.method private NB()V
.registers 3
.prologue
.line 47
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;
if-nez v0, :cond_c
.line 48
new-instance v0, Lcom/subgraph/orchid/TorParsingException;
const-string v1, "Router status entry must begin with an \'r\' line"
invoke-direct {v0, v1}, Lcom/subgraph/orchid/TorParsingException;-><init>(Ljava/lang/String;)V
throw v0
.line 49
:cond_c
return-void
.end method
.method private NC()V
.registers 3
.prologue
.line 52
invoke-direct {p0}, Lcom/subgraph/orchid/directory/consensus/i;->NB()V
.line 53
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bIX:Lcom/subgraph/orchid/directory/consensus/b;
iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;
.line 10120
iget-object v0, v0, Lcom/subgraph/orchid/directory/consensus/b;->bIO:Ljava/util/List;
invoke-interface {v0, v1}, Ljava/util/List;->add(Ljava/lang/Object;)Z
.line 54
const/4 v0, 0x0
iput-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;
.line 55
return-void
.end method
.method private ND()Lcom/subgraph/orchid/d/c;
.registers 2
.prologue
.line 73
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;
invoke-interface {v0}, Lcom/subgraph/orchid/directory/a/b;->MW()[B
move-result-object v0
invoke-static {v0}, Lcom/subgraph/orchid/d/c;->ar([B)Lcom/subgraph/orchid/d/c;
move-result-object v0
return-object v0
.end method
# virtual methods
.method final Nx()Ljava/lang/String;
.registers 2
.prologue
.line 129
const-string v0, "directory-footer"
return-object v0
.end method
.method final Ny()Lcom/subgraph/orchid/directory/consensus/ConsensusDocumentParser$DocumentSection;
.registers 2
.prologue
.line 138
sget-object v0, Lcom/subgraph/orchid/directory/consensus/ConsensusDocumentParser$DocumentSection;->FOOTER:Lcom/subgraph/orchid/directory/consensus/ConsensusDocumentParser$DocumentSection;
return-object v0
.end method
.method final a(Lcom/subgraph/orchid/directory/consensus/DocumentKeyword;)V
.registers 6
.prologue
const/4 v3, 0x1
.line 20
sget-object v0, Lcom/subgraph/orchid/directory/consensus/DocumentKeyword;->R:Lcom/subgraph/orchid/directory/consensus/DocumentKeyword;
invoke-virtual {p1, v0}, Lcom/subgraph/orchid/directory/consensus/DocumentKeyword;->equals(Ljava/lang/Object;)Z
move-result v0
if-nez v0, :cond_c
.line 21
invoke-direct {p0}, Lcom/subgraph/orchid/directory/consensus/i;->NB()V
.line 22
:cond_c
sget-object v0, Lcom/subgraph/orchid/directory/consensus/i$1;->bID:[I
invoke-virtual {p1}, Lcom/subgraph/orchid/directory/consensus/DocumentKeyword;->ordinal()I
move-result v1
aget v0, v0, v1
packed-switch v0, :pswitch_data_166
.line 44
:cond_17
:goto_17
return-void
.line 1058
:pswitch_18
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;
if-eqz v0, :cond_24
.line 1059
new-instance v0, Lcom/subgraph/orchid/TorParsingException;
const-string v1, "Unterminated router status entry."
invoke-direct {v0, v1}, Lcom/subgraph/orchid/TorParsingException;-><init>(Ljava/lang/String;)V
throw v0
.line 1060
:cond_24
new-instance v0, Lcom/subgraph/orchid/directory/consensus/h;
invoke-direct {v0}, Lcom/subgraph/orchid/directory/consensus/h;-><init>()V
iput-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;
.line 1061
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;
iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;
invoke-interface {v1}, Lcom/subgraph/orchid/directory/a/b;->MI()Ljava/lang/String;
move-result-object v1
.line 2029
iput-object v1, v0, Lcom/subgraph/orchid/directory/consensus/h;->bHl:Ljava/lang/String;
.line 1062
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;
invoke-direct {p0}, Lcom/subgraph/orchid/directory/consensus/i;->ND()Lcom/subgraph/orchid/d/c;
move-result-object v1
.line 2030
iput-object v1, v0, Lcom/subgraph/orchid/directory/consensus/h;->bDD:Lcom/subgraph/orchid/d/c;
.line 1063
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bIX:Lcom/subgraph/orchid/directory/consensus/b;
.line 2124
iget-object v0, v0, Lcom/subgraph/orchid/directory/consensus/b;->bIE:Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;
.line 1063
sget-object v1, Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;->MICRODESC:Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;
if-eq v0, v1, :cond_4d
.line 1064
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;
invoke-direct {p0}, Lcom/subgraph/orchid/directory/consensus/i;->ND()Lcom/subgraph/orchid/d/c;
move-result-object v1
.line 3031
iput-object v1, v0, Lcom/subgraph/orchid/directory/consensus/h;->bJj:Lcom/subgraph/orchid/d/c;
.line 1066
:cond_4d
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;
iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;
invoke-interface {v1}, Lcom/subgraph/orchid/directory/a/b;->MS()Lcom/subgraph/orchid/d/f;
move-result-object v1
.line 3033
iput-object v1, v0, Lcom/subgraph/orchid/directory/consensus/h;->bEf:Lcom/subgraph/orchid/d/f;
.line 1067
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;
iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;
invoke-interface {v1}, Lcom/subgraph/orchid/directory/a/b;->MX()Lcom/subgraph/orchid/d/d;
move-result-object v1
.line 3034
iput-object v1, v0, Lcom/subgraph/orchid/directory/consensus/h;->bCT:Lcom/subgraph/orchid/d/d;
.line 1068
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;
iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;
invoke-interface {v1}, Lcom/subgraph/orchid/directory/a/b;->MR()I
move-result v1
.line 3035
iput v1, v0, Lcom/subgraph/orchid/directory/consensus/h;->bHm:I
.line 1069
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;
iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;
invoke-interface {v1}, Lcom/subgraph/orchid/directory/a/b;->MR()I
move-result v1
.line 3036
iput v1, v0, Lcom/subgraph/orchid/directory/consensus/h;->bHn:I
goto :goto_17
.line 3077
:goto_76
:pswitch_76
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;
invoke-interface {v0}, Lcom/subgraph/orchid/directory/a/b;->ML()I
move-result v0
if-lez v0, :cond_17
.line 3078
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;
iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;
invoke-interface {v1}, Lcom/subgraph/orchid/directory/a/b;->MJ()Ljava/lang/String;
move-result-object v1
.line 4037
iget-object v0, v0, Lcom/subgraph/orchid/directory/consensus/h;->bHo:Ljava/util/Set;
invoke-interface {v0, v1}, Ljava/util/Set;->add(Ljava/lang/Object;)Z
goto :goto_76
.line 4082
:pswitch_8c
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;
iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;
invoke-interface {v1}, Lcom/subgraph/orchid/directory/a/b;->MN()Ljava/lang/String;
move-result-object v1
.line 5038
iput-object v1, v0, Lcom/subgraph/orchid/directory/consensus/h;->version:Ljava/lang/String;
goto :goto_17
.line 5086
:cond_97
:goto_97
:pswitch_97
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;
invoke-interface {v0}, Lcom/subgraph/orchid/directory/a/b;->ML()I
move-result v0
if-lez v0, :cond_cf
.line 5087
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;
invoke-interface {v0}, Lcom/subgraph/orchid/directory/a/b;->MJ()Ljava/lang/String;
move-result-object v0
const-string v1, "="
invoke-virtual {v0, v1}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
.line 5088
array-length v1, v0
const/4 v2, 0x2
if-ne v1, v2, :cond_97
.line 5089
const/4 v1, 0x0
aget-object v1, v0, v1
iget-object v2, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;
aget-object v0, v0, v3
invoke-interface {v2, v0}, Lcom/subgraph/orchid/directory/a/b;->ha(Ljava/lang/String;)I
move-result v0
.line 5097
const-string v2, "Bandwidth"
invoke-virtual {v1, v2}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v2
if-eqz v2, :cond_c9
.line 5098
iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;
.line 6039
iput v0, v1, Lcom/subgraph/orchid/directory/consensus/h;->bJl:I
iput-boolean v3, v1, Lcom/subgraph/orchid/directory/consensus/h;->bJm:Z
goto :goto_97
.line 5099
:cond_c9
const-string v0, "Measured"
invoke-virtual {v1, v0}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
goto :goto_97
.line 5091
:cond_cf
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bIX:Lcom/subgraph/orchid/directory/consensus/b;
.line 6124
iget-object v0, v0, Lcom/subgraph/orchid/directory/consensus/b;->bIE:Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;
.line 5091
sget-object v1, Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;->MICRODESC:Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;
if-ne v0, v1, :cond_17
.line 5092
invoke-direct {p0}, Lcom/subgraph/orchid/directory/consensus/i;->NC()V
goto/16 :goto_17
.line 7104
:pswitch_dc
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bIX:Lcom/subgraph/orchid/directory/consensus/b;
.line 7124
iget-object v0, v0, Lcom/subgraph/orchid/directory/consensus/b;->bIE:Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;
.line 7104
sget-object v1, Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;->MICRODESC:Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;
if-ne v0, v1, :cond_ec
.line 7105
new-instance v0, Lcom/subgraph/orchid/TorParsingException;
const-string v1, "\'p\' line does not appear in consensus flavor \'microdesc\'"
invoke-direct {v0, v1}, Lcom/subgraph/orchid/TorParsingException;-><init>(Ljava/lang/String;)V
throw v0
.line 7107
:cond_ec
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;
invoke-interface {v0}, Lcom/subgraph/orchid/directory/a/b;->MJ()Ljava/lang/String;
move-result-object v0
.line 7108
const-string v1, "accept"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v1
if-eqz v1, :cond_10d
.line 7109
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;
iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;
invoke-interface {v1}, Lcom/subgraph/orchid/directory/a/b;->MJ()Ljava/lang/String;
move-result-object v1
.line 8041
invoke-static {v1}, Lcom/subgraph/orchid/d/a/b;->gS(Ljava/lang/String;)Lcom/subgraph/orchid/d/a/b;
move-result-object v1
iput-object v1, v0, Lcom/subgraph/orchid/directory/consensus/h;->bJn:Lcom/subgraph/orchid/d/a/b;
.line 7113
:cond_108
:goto_108
invoke-direct {p0}, Lcom/subgraph/orchid/directory/consensus/i;->NC()V
goto/16 :goto_17
.line 7110
:cond_10d
const-string v1, "reject"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_108
.line 7111
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;
iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;
invoke-interface {v1}, Lcom/subgraph/orchid/directory/a/b;->MJ()Ljava/lang/String;
move-result-object v1
.line 8042
invoke-static {v1}, Lcom/subgraph/orchid/d/a/b;->gT(Ljava/lang/String;)Lcom/subgraph/orchid/d/a/b;
move-result-object v1
iput-object v1, v0, Lcom/subgraph/orchid/directory/consensus/h;->bJn:Lcom/subgraph/orchid/d/a/b;
goto :goto_108
.line 8117
:pswitch_124
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bIX:Lcom/subgraph/orchid/directory/consensus/b;
.line 9124
iget-object v0, v0, Lcom/subgraph/orchid/directory/consensus/b;->bIE:Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;
.line 8117
sget-object v1, Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;->MICRODESC:Lcom/subgraph/orchid/ConsensusDocument$ConsensusFlavor;
if-eq v0, v1, :cond_134
.line 8118
new-instance v0, Lcom/subgraph/orchid/TorParsingException;
const-string v1, "\'m\' line is invalid unless consensus flavor is microdesc"
invoke-direct {v0, v1}, Lcom/subgraph/orchid/TorParsingException;-><init>(Ljava/lang/String;)V
throw v0
.line 8120
:cond_134
iget-object v0, p0, Lcom/subgraph/orchid/directory/consensus/i;->bEr:Lcom/subgraph/orchid/directory/a/b;
invoke-interface {v0}, Lcom/subgraph/orchid/directory/a/b;->MW()[B
move-result-object v0
.line 8121
array-length v1, v0
const/16 v2, 0x20
if-eq v1, v2, :cond_15b
.line 8122
new-instance v1, Lcom/subgraph/orchid/TorParsingException;
new-instance v2, Ljava/lang/StringBuilder;
const-string v3, "\'m\' line has incorrect digest size "
invoke-direct {v2, v3}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
array-length v0, v0
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, " != 32"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Lcom/subgraph/orchid/TorParsingException;-><init>(Ljava/lang/String;)V
throw v1
.line 8124
:cond_15b
iget-object v1, p0, Lcom/subgraph/orchid/directory/consensus/i;->bJo:Lcom/subgraph/orchid/directory/consensus/h;
invoke-static {v0}, Lcom/subgraph/orchid/d/c;->ar([B)Lcom/subgraph/orchid/d/c;
move-result-object v0
.line 10032
iput-object v0, v1, Lcom/subgraph/orchid/directory/consensus/h;->bJk:Lcom/subgraph/orchid/d/c;
goto/16 :goto_17
.line 22
nop
:pswitch_data_166
.packed-switch 0x1
:pswitch_18
:pswitch_76
:pswitch_8c
:pswitch_97
:pswitch_dc
:pswitch_124
.end packed-switch
.end method
.method final getSection()Lcom/subgraph/orchid/directory/consensus/ConsensusDocumentParser$DocumentSection;
.registers 2
.prologue
.line 134
sget-object v0, Lcom/subgraph/orchid/directory/consensus/ConsensusDocumentParser$DocumentSection;->ROUTER_STATUS:Lcom/subgraph/orchid/directory/consensus/ConsensusDocumentParser$DocumentSection;
return-object v0
.end method