CrackMe.apk
Download file
package com.google.common.collect;
import com.google.common.collect.ImmutableMultiset;
import com.google.common.collect.Multiset;
import com.google.common.primitives.Ints;
import com.google.errorprone.annotations.concurrent.LazyInit;
import java.io.Serializable;
import javax.annotation.CheckForNull;
@ElementTypesAreNonnullByDefault
class RegularImmutableMultiset<E> extends ImmutableMultiset<E> {
static final RegularImmutableMultiset<Object> EMPTY = new RegularImmutableMultiset<>(ObjectCountHashMap.create());
final transient ObjectCountHashMap<E> contents;
@CheckForNull
@LazyInit
private transient ImmutableSet<E> elementSet;
private final transient int size;
/* access modifiers changed from: package-private */
public boolean isPartialView() {
return false;
}
RegularImmutableMultiset(ObjectCountHashMap<E> objectCountHashMap) {
this.contents = objectCountHashMap;
long j = 0;
for (int i = 0; i < objectCountHashMap.size(); i++) {
j += (long) objectCountHashMap.getValue(i);
}
this.size = Ints.saturatedCast(j);
}
public int count(@CheckForNull Object obj) {
return this.contents.get(obj);
}
public int size() {
return this.size;
}
public ImmutableSet<E> elementSet() {
ImmutableSet<E> immutableSet = this.elementSet;
if (immutableSet != null) {
return immutableSet;
}
ElementSet elementSet2 = new ElementSet();
this.elementSet = elementSet2;
return elementSet2;
}
private final class ElementSet extends IndexedImmutableSet<E> {
/* access modifiers changed from: package-private */
public boolean isPartialView() {
return true;
}
private ElementSet() {
}
/* access modifiers changed from: package-private */
public E get(int i) {
return RegularImmutableMultiset.this.contents.getKey(i);
}
public boolean contains(@CheckForNull Object obj) {
return RegularImmutableMultiset.this.contains(obj);
}
public int size() {
return RegularImmutableMultiset.this.contents.size();
}
}
/* access modifiers changed from: package-private */
public Multiset.Entry<E> getEntry(int i) {
return this.contents.getEntry(i);
}
private static class SerializedForm implements Serializable {
private static final long serialVersionUID = 0;
final int[] counts;
final Object[] elements;
SerializedForm(Multiset<? extends Object> multiset) {
int size = multiset.entrySet().size();
this.elements = new Object[size];
this.counts = new int[size];
int i = 0;
for (Multiset.Entry next : multiset.entrySet()) {
this.elements[i] = next.getElement();
this.counts[i] = next.getCount();
i++;
}
}
/* access modifiers changed from: package-private */
public Object readResolve() {
ImmutableMultiset.Builder builder = new ImmutableMultiset.Builder(this.elements.length);
int i = 0;
while (true) {
Object[] objArr = this.elements;
if (i >= objArr.length) {
return builder.build();
}
builder.addCopies(objArr[i], this.counts[i]);
i++;
}
}
}
/* access modifiers changed from: package-private */
public Object writeReplace() {
return new SerializedForm(this);
}
}
Download file