// Path: redux-core/src/main/java/me/tatarka/redux/SimpleStore.java
// public class SimpleStore<S> implements Store<S> {
// 
//     private volatile S state;
//     private final CopyOnWriteArrayList<Listener<S>> listeners = new CopyOnWriteArrayList<>();
// 
//     public SimpleStore(S initialState) {
//         setState(initialState);
//     }
// 
//     @Override
//     public S getState() {
//         return state;
//     }
// 
//     @Override
//     public void setState(S newState) {
//         if (!equals(state, newState)) {
//             state = newState;
//             for (Listener<S> listener : listeners) {
//                 listener.onNewState(state);
//             }
//         }
//     }
// 
//     /**
//      * Registers as listener to receive state changes. The current state will be delivered
//      * immediately.
//      */
//     public void addListener(Listener<S> listener) {
//         listeners.add(listener);
//         listener.onNewState(state);
//     }
// 
//     /**
//      * Removes the listener so it no longer receives state changes.
//      */
//     public void removeListener(Listener<S> listener) {
//         listeners.remove(listener);
//     }
// 
//     public interface Listener<S> {
//         /**
//          * Called when a new state is set. This is called on the same thread as  or {@link #setState(Object)}.
//          */
//         void onNewState(S state);
//     }
// 
//     private static boolean equals(Object var0, Object var1) {
//         return var0 == var1 || var0 != null && var0.equals(var1);
//     }
// }


import androidx.lifecycle.LiveData;
import android.os.Looper;
import androidx.annotation.Nullable;
import me.tatarka.redux.SimpleStore;
            setValue(store.getState());
        }

        @Override
        protected void onActive() {
            store.addListener(this);
        }

        @Override
        protected void onInactive() {
            store.removeListener(this);
        }

        @Override
        protected void setValue(S value) {
            if (debug && exception != null) {
                try {
                    super.setValue(value);
                } catch (Exception e) {
                    appendStacktrace(e, exception);
                    throw e;
                }
                exception = null;
            } else {
                super.setValue(value);
            }
        }

        @Override
        public void onNewState(S state) {
// Path: redux-core/src/main/java/me/tatarka/redux/SimpleStore.java
// public class SimpleStore<S> implements Store<S> {
// 
//     private volatile S state;
//     private final CopyOnWriteArrayList<Listener<S>> listeners = new CopyOnWriteArrayList<>();
// 
//     public SimpleStore(S initialState) {
//         setState(initialState);
//     }
// 
//     @Override
//     public S getState() {
//         return state;
//     }
// 
//     @Override
//     public void setState(S newState) {
//         if (!equals(state, newState)) {
//             state = newState;
//             for (Listener<S> listener : listeners) {
//                 listener.onNewState(state);
//             }
//         }
//     }
// 
//     /**
//      * Registers as listener to receive state changes. The current state will be delivered
//      * immediately.
//      */
//     public void addListener(Listener<S> listener) {
//         listeners.add(listener);
//         listener.onNewState(state);
//     }
// 
//     /**
//      * Removes the listener so it no longer receives state changes.
//      */
//     public void removeListener(Listener<S> listener) {
//         listeners.remove(listener);
//     }
// 
//     public interface Listener<S> {
//         /**
//          * Called when a new state is set. This is called on the same thread as  or {@link #setState(Object)}.
//          */
//         void onNewState(S state);
//     }
// 
//     private static boolean equals(Object var0, Object var1) {
//         return var0 == var1 || var0 != null && var0.equals(var1);
//     }
// }


// Path: redux-android-lifecycle/src/main/java/me/tatarka/redux/android/lifecycle/LiveDataAdapter.java
import androidx.lifecycle.LiveData;
import android.os.Looper;
import androidx.annotation.Nullable;
import me.tatarka.redux.SimpleStore;

            setValue(store.getState());
        }

        @Override
        protected void onActive() {
            store.addListener(this);
        }

        @Override
        protected void onInactive() {
            store.removeListener(this);
        }

        @Override
        protected void setValue(S value) {
            if (debug && exception != null) {
                try {
                    super.setValue(value);
                } catch (Exception e) {
                    appendStacktrace(e, exception);
                    throw e;
                }
                exception = null;
            } else {
                super.setValue(value);
            }
        }

        @Override
        public void onNewState(S state) {
            if (isMainThread()) {