HISE Logo Forum
    • Categories
    • Register
    • Login

    Simple copy protection done right :)

    Scheduled Pinned Locked Moved Presets / Scripts / Ideas
    151 Posts 25 Posters 17.9k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • NatanN
      Natan @Natan
      last edited by

      @Natan But EveryTime I Get undefinedundefinedundefinedundefined :) LOL

      1 Reply Last reply Reply Quote 0
      • NatanN
        Natan
        last edited by

        Okey, I Managed To Find My Way With This :)

        In Case Anyone Wants To Generate Serial Codes With 4 Fixed Digits At First, Check This Out

        /** This namespace contains the logic to create a new list of serials. 
            
            Feel free to remove this when not needed. */
        namespace SerialGenerator
        {
            inline function getNewRandomChar()
            {
                // ASCII, fuck yeah!
                local a = String.fromCharCode(Math.randInt(65, 90));
                local b = String.fromCharCode(Math.randInt(48, 57));
                
                return Math.random() > 0.5 ? a : b;
            }
        
            inline function createNewSerial()
            {
                local s = "HISE-";   /// Change This With Whatever You Want
                
                s += getNewRandomChar();
                s += getNewRandomChar();
                s += getNewRandomChar();
                s += getNewRandomChar();
                s += "-";
                s += getNewRandomChar();
                s += getNewRandomChar();
                s += getNewRandomChar();
                s += getNewRandomChar();
                s += "-";
                s += getNewRandomChar();
                s += getNewRandomChar();
                s += getNewRandomChar();
                s += getNewRandomChar();
            
                return s;
            }
        
            const var NUM_SERIALS = 1;
        
            inline function createNewSerials()
            {
                local d = [];
                d.reserve(NUM_SERIALS);
            
                for(i = 0; i < NUM_SERIALS; i++)
                {
                    d.push(createNewSerial());
                }
            
                local obj = { "Data": d };
            
                Engine.dumpAsJSON(obj, "../Serials.js");
            }
        
            // Uncomment this line to regenerate serials.
             //createNewSerials();
        }
        
        1 Reply Last reply Reply Quote 1
        • NatanN
          Natan
          last edited by

          Anyone Has Scripted a Volume Muter And Attached To The Serial Protection?
          I Need This For Demo Purpose! So Users Can Use The demo And Register It Anytime They Get A Serial Number.

          Thank You

          LindonL 1 Reply Last reply Reply Quote 0
          • LindonL
            Lindon @Natan
            last edited by

            @Natan said in Simple copy protection done right :):

            Anyone Has Scripted a Volume Muter And Attached To The Serial Protection?
            I Need This For Demo Purpose! So Users Can Use The demo And Register It Anytime They Get A Serial Number.

            Thank You

            yes its pretty easy to do - replace the MIDI Muter with a simple gain in the master effect chain (lets call it MuterGain). Set its gain level to -100dB, bypass it, and then in your authorisation refer to it instead of the midi muter.

            HISE Development for hire.
            www.channelrobot.com

            1 Reply Last reply Reply Quote 0
            • S
              Sawer
              last edited by

              Is it normal that every time I open the plugin, it asking me to insert the serial key. Is there any solution so that after the first time, this won’t happen again? Thanks

              ? ulrikU 2 Replies Last reply Reply Quote 0
              • ?
                A Former User @Sawer
                last edited by A Former User

                @nesta99 As far as I can tell that is not normal. I implemented this into our plugin just recently and I see that it checks for the serial in the console. It creates a file called RegistrationInfo.js in the plugin root folder (or app data folder in the compiled plugin) and stores the serial in there upon successful registration. So that file should hold your entered serial number! The script should see that running the checkOnLoad() function. Maybe check if that function is alright and not tampered with... 😉 Go check the read.me file as well...

                1 Reply Last reply Reply Quote 0
                • ulrikU
                  ulrik @Sawer
                  last edited by

                  @nesta99 is this happening in a compiled plugin?
                  It sounds like the plugin doesn't save the serial to disk, or to wrong location.
                  What happens in your script when the serial is confirmed?

                  this is where I store the confirmed serial number

                  // Stores the file to the hard drive. In HISE it will be the project folder
                              // but in the compiled plugin it will use the parent directory to the 
                              // user preset directory (which is usually the app data folder).
                              Engine.dumpAsJSON(data, "../RegUdu.js");
                              
                  

                  Hise Develop branch
                  MacOs 15.3.1, Xcode 16.2
                  http://musikboden.se

                  Y S 2 Replies Last reply Reply Quote 0
                  • Y
                    yall @ulrik
                    last edited by

                    @ulrik normally at the first activation, you have a registration.js file which is created in app data ... which avoids reactivation each time the vst is opened. try to create a note with .... "your license number" and name this file registration.js it should work and from there you may understand the problem

                    ulrikU S 2 Replies Last reply Reply Quote 0
                    • ulrikU
                      ulrik @yall
                      last edited by

                      @yall I know

                      Hise Develop branch
                      MacOs 15.3.1, Xcode 16.2
                      http://musikboden.se

                      1 Reply Last reply Reply Quote 0
                      • S
                        Sawer
                        last edited by

                        Alright Everyone... will check that and try again. Thanks a lot!

                        1 Reply Last reply Reply Quote 0
                        • S
                          Sawer @ulrik
                          last edited by

                          @ulrik yeah, When I open it on logic pro it happens

                          S 1 Reply Last reply Reply Quote 0
                          • S
                            Sawer @Sawer
                            last edited by

                            @nesta99 I think I dont have the Registration.js file. Let me create it

                            ? 1 Reply Last reply Reply Quote 0
                            • ?
                              A Former User @Sawer
                              last edited by

                              @nesta99 said in Simple copy protection done right :):

                              @nesta99 I think I dont have the Registration.js file. Let me create it

                              It should be created automatically! If it’s not being created I’d venture a guess and say that something with the script isn’t as it should be?!

                              S 1 Reply Last reply Reply Quote 0
                              • S
                                Sawer @A Former User
                                last edited by

                                @UrsBollhalder
                                I’ll send you a snippet then.. thanks

                                1 Reply Last reply Reply Quote 0
                                • S
                                  Sawer @yall
                                  last edited by

                                  @yall So If I got it Right, should I rename "RegistrationInfo.js" into something else?

                                  ? 1 Reply Last reply Reply Quote 0
                                  • S
                                    Sawer
                                    last edited by Sawer

                                    @UrsBollhalder
                                    @yall
                                    Is it Right?

                                    //Authorisation Instance
                                    namespace Authorisation
                                    
                                    
                                    
                                    {
                                        const var SerialInput = Content.getComponent("SerialInput");
                                        const var Description = Content.getComponent("Description");
                                        const var GlobalMute = Synth.getMidiProcessor("GlobalMute");
                                        const var SubmitButton = Content.getComponent("SubmitButton");
                                        const var AuthoPage = Content.getComponent("AuthoPage");
                                        const var Gui = Content.getComponent("Gui");
                                    
                                    
                                    
                                    
                                    
                                    
                                        /** Checks if the serial input is valid and stores the result if successful. */
                                        inline function onSubmitButtonControl(component, value)
                                        {
                                            if(!value) // Just execute once
                                                return;
                                        
                                            local v = SerialInput.getValue();
                                            Console.print(v);
                                            
                                            if(SingleProductSerials.Data.contains(v))
                                            {
                                                Console.print("Serial number found");
                                            
                                                local data = 
                                                {
                                                    "Serial": v
                                                };
                                            
                                                // Stores the file to the hard drive. In HISE it will be the project folder
                                                // but in the compiled plugin it will use the parent directory to the 
                                                // user preset directory (which is usually the app data folder).
                                                Engine.dumpAsJSON(data, "../KeyReg.js");
                                                
                                                setValidLicense(true);
                                            }
                                            else
                                            {
                                                Console.print("Invalid serial number");
                                                Description.set("text", "INVALID SERIAL");
                                                
                                                setValidLicense(false);
                                            }
                                        };
                                    
                                        Content.getComponent("SubmitButton").setControlCallback(onSubmitButtonControl);
                                    
                                    
                                        inline function setValidLicense(isValid)
                                        {
                                            // Do whatever you want to do here. I suggest a MIDI muter...
                                            GlobalMute.setAttribute(0, 1 - isValid);
                                        
                                            if(isValid)
                                            {
                                                Gui.showControl(1);
                                                AuthoPage.showControl(0);
                                            }
                                            else
                                            {
                                               Gui.showControl(1);
                                               AuthoPage.showControl(1); 
                                            }
                                        }
                                    
                                        inline function checkOnLoad()
                                        {
                                            // Clear the input
                                            SerialInput.set("text", "");
                                            
                                            // Load the serial from the stored file
                                            local pData = Engine.loadFromJSON("../KeyReg.js");
                                            Console.print("Checking serial");
                                        
                                            if(pData)    
                                            {
                                                local v = pData.Serial;
                                                Gui.showControl(1);
                                                AuthoPage.showControl(0);
                                             
                                              Console.print("Restored serial: " + v);
                                              if(SingleProductSerials.Data.contains)
                                                {
                                                    setValidLicense(true);
                                                    return;
                                                }
                                            }
                                        
                                            setValidLicense(false);
                                        }
                                    
                                        // Call this on startup
                                        checkOnLoad();
                                    
                                    }
                                    
                                    
                                    
                                    //SerialGenerator Instance
                                    
                                    /** This namespace contains the logic to create a new list of serials. 
                                        
                                        Feel free to remove this when not needed. */
                                    namespace SerialGenerator
                                    {
                                        inline function getNewRandomChar()
                                        {
                                            // ASCII, fuck yeah!
                                            local a = String.fromCharCode(Math.randInt(65, 90));
                                            local b = String.fromCharCode(Math.randInt(48, 57));
                                        
                                            return Math.random() > 0.5 ? a : b;
                                        }
                                    
                                        inline function createNewSerial()
                                        {
                                            local s = "";
                                        
                                            s += getNewRandomChar();
                                            s += getNewRandomChar();
                                            s += getNewRandomChar();
                                            s += getNewRandomChar();
                                            s += "-";
                                            s += getNewRandomChar();
                                            s += getNewRandomChar();
                                            s += getNewRandomChar();
                                            s += getNewRandomChar();
                                            s += "-";
                                            s += getNewRandomChar();
                                            s += getNewRandomChar();
                                            s += getNewRandomChar();
                                            s += getNewRandomChar();
                                            s += "-";
                                            s += getNewRandomChar();
                                            s += getNewRandomChar();
                                            s += getNewRandomChar();
                                            s += getNewRandomChar();
                                        
                                            return s;
                                        }
                                    
                                        const var NUM_SERIALS = 1000;
                                    
                                        inline function createNewSerials()
                                        {
                                            local d = [];
                                            d.reserve(NUM_SERIALS);
                                        
                                            for(i = 0; i < NUM_SERIALS; i++)
                                            {
                                                d.push(createNewSerial());
                                            }
                                        
                                            local obj = { "Data": d };
                                        
                                            Engine.dumpAsJSON(obj, "../Serials.js");
                                        }
                                    
                                        // Uncomment this line to regenerate serials.
                                        //createNewSerials();
                                    }
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                    
                                    //Serials Instance
                                    const var SingleProductSerials = {
                                      "Data": [
                                        "O83X-AT20-040F-8MJ5",
                                        "K0XE-06PP-31T0-5EUM",
                                        "8B6P-57Y5-8D1M-NYY7",
                                        "6BPO-6YAN-QE85-AH4M",
                                        "1HP8-6XKO-K3TS-WU2V",
                                        "L0Q5-T56B-7VHW-ED11",
                                        "S0G1-5677-0NSF-0388",
                                        "H48M-6C66-QPC0-G06V",
                                        "BO6W-4W00-HJ05-360D",
                                        "0875-72E7-0K45-8B0Q",
                                        "QDXX-U33O-A021-56D0",
                                        "7D45-DB07-ODX7-I8C5",
                                        "8TID-4827-85J8-68OF",
                                        "2UBC-RJOY-H523-X6HN",
                                        "R83L-30OH-611I-5U38",
                                        "B1HN-78EG-BA2Y-CJKU",
                                        "X880-I53S-HYQW-53H2",
                                        "A1W0-EKR4-85HR-3008",
                                        "3P1U-H5K1-332C-XA7L",
                                        "2T81-8ESJ-72I3-5H3J",
                                        "N20V-2118-22OP-BX3M",
                                        "1XLA-QE5Y-AJH7-1WCQ",
                                        "MKLG-5R1E-PO18-QT6P",
                                        "Q0LP-P7K8-534K-0HNT",
                                        "4852-8101-LCK2-02UJ",
                                        "MW7Y-MIR8-5D5Q-3Y8Y",
                                        "642B-73UK-XTJQ-1Q2G",
                                        "6473-2682-RXJ5-61P5",
                                        "PS6P-OUND-KU74-P8NL",
                                        "U6GT-3714-67BD-GC5A",
                                        "50UV-NOYC-7J22-8301",
                                        "261D-YF08-F0VM-J341",
                                        "A413-85GV-5H76-1887",
                                        "5VUF-ON0D-HL5X-U2SW",
                                        "K0PB-V05H-JQ4F-RQAK",
                                        "P38G-T6F7-GW2C-O233",
                                        "FYYU-4QOF-N57T-AB82",
                                        "03MN-4K2W-IMQ8-5OX7",
                                        "U8NN-0BBB-105B-J2YL",
                                        "QNJ4-LHLE-XX5H-3U1S",
                                        "8WMD-1I74-28MX-N0CE",
                                        "450V-4J2T-4F55-866L",
                                        "KB8Q-RC25-6RNP-7L6S",
                                        "6FVI-GBGB-PQ34-S127",
                                        "FG52-1C52-8F08-SNNE",
                                        "47HV-RBI6-2LS5-FYMY",
                                        "2CU7-8E7K-O5I1-24FH",
                                        "242O-K864-OSJS-5210",
                                        "75KC-XR5W-L0BI-I556",
                                        "26JR-3634-V63S-626P",
                                        "33L2-Q53B-2CFX-XO21",
                                        "0FWS-6PS7-AR30-6T2N",
                                        "38LX-UKH4-3IYA-RWFB",
                                        "EII5-4417-6RJ8-O20B",
                                        "3085-30DA-6D73-6T08",
                                        "E684-F47M-T540-1E5L",
                                        "5U4Q-62CS-E70F-LXTY",
                                        "PMFM-T8NS-CB5U-L6A8",
                                        "6020-58ON-BSI3-2328",
                                        "8JXC-7EM5-2JR7-86RX",
                                        "MF62-218P-IP0I-0508",
                                        "R6IK-337M-DM6T-S7JY",
                                        "U36Q-12IT-KA6M-770O",
                                        "0267-37QB-EP3U-I04N",
                                        "J11X-25MJ-50P7-70VW",
                                        "8KM1-R741-K337-H461",
                                        "D3C1-DN4J-0RO3-4U1G",
                                        "686P-H533-0MV7-UG81",
                                        "R1PH-SGL6-18T6-761B",
                                        "2VLR-0GLY-72G6-G074",
                                        "86P5-R7YT-5754-4I8L",
                                        "71NJ-SPIE-RYH8-7AF0",
                                        "PRN4-2207-SS5N-34VE",
                                        "4H84-Q3NI-064B-6YH2",
                                        "QQH6-EP8D-4XMC-N465",
                                        "B674-PBB3-HV3B-K5IS",
                                        "Q5O8-8GAJ-4RI4-J6VL",
                                        "K67M-7168-T503-0OV8",
                                        "Q70Q-MX06-28X0-G7K3",
                                        "S07M-J84E-R415-K57S",
                                        "I333-YO7L-2AKM-66TQ",
                                        "SO25-3QRV-207R-2AU3",
                                        "3VT5-T2Y6-C256-GQF6",
                                        "WV3V-FU51-8344-IS26",
                                        "TX56-6B10-XHLA-82O4",
                                        "IFB2-42QM-C40O-F4BM",
                                        "137L-RQ7W-N8R5-1BT0",
                                        "A210-8DMX-2P48-8172",
                                        "0463-44BX-VFS2-0X2F",
                                        "Y7J2-V831-S537-50BP",
                                        "47F7-U34L-C1CU-WACG",
                                        "PNF1-46VR-04RX-3XBE",
                                        "QD10-0IOC-OXK0-A786",
                                        "13O4-1V34-505E-1B5K",
                                        "C86K-J337-UXPK-68V7",
                                        "0IKO-43MF-4X16-245J",
                                        "G560-QKE6-44X6-YJJ6",
                                        "4026-1VB3-7H5Q-7J6D",
                                        "CPSL-00A5-28Y5-PS26",
                                        "E51O-01NK-E4O5-C540",
                                        "6FLJ-7OYY-84GK-J2E7",
                                        "VO3D-GI2R-58DJ-353Q",
                                        "1X53-S6VO-T5X1-A8LE",
                                        "QKOM-K123-HJDL-3OJD",
                                        "KGUT-4YU5-N6HB-SG88",
                                        "WB12-X8FC-20G5-A4L1",
                                        "35A7-D5T1-UB45-W6P3",
                                        "FL1M-U8B2-7VHK-2STF",
                                        "1EE3-R2S2-7N80-H440",
                                        "T08X-4VC8-0B6O-4025",
                                        "ML34-EI48-3858-LD4L",
                                        "06PW-0751-2M03-TLT4",
                                        "LEJ8-5048-AP4F-7TS2",
                                        "G514-88M0-VAI4-007Q",
                                        "0MF5-12IA-DQXC-B33Q",
                                        "ILD2-588O-8QG1-F88B",
                                        "646L-2V7S-78D8-T484",
                                        "M161-O020-166P-3P2G",
                                        "D18V-4278-PY1R-MQY5",
                                        "1V3V-G15W-3EHX-MS4H",
                                        "5Q04-5655-4300-85MH",
                                        "4N0F-K17Q-JW43-K8O4",
                                        "4I24-4KDM-FY2X-FF5X",
                                        "FBHC-Y77E-F86N-7XF1",
                                        "831R-G71G-EM7E-UV05",
                                        "TG0P-06S5-1FJ8-NN23",
                                        "V03I-TTJ7-WTMR-6KT8",
                                        "W2BG-K0DE-M3G2-8A04",
                                        "4281-742V-T6CX-BQ84",
                                        "123F-2053-7D73-M5F1",
                                        "36MO-6C70-RMIO-U6HR",
                                        "W22R-5J33-X321-L8TB",
                                        "LV1M-P8QF-66A8-55A0",
                                        "4V2E-MBHN-1417-03AM",
                                        "08DH-01Y2-C0Q3-4568",
                                        "N35Q-68GV-EW16-20UI",
                                        "J7TN-757N-53VO-F213",
                                        "5I18-3WA0-1J31-D55J",
                                        "FH86-02PQ-1F8L-K0AN",
                                        "BXUA-2665-75Q0-51W8",
                                        "SB32-J7CX-5OJN-T5AU",
                                        "B8LP-4L5H-4CL0-R1AQ",
                                        "4U22-I167-8VO1-80Y8",
                                        "YJB1-3IPB-B0D3-7DG1",
                                        "E7E2-KINB-2P24-6480",
                                        "X4HT-02UF-64EH-516J",
                                        "ONUN-76IT-LHQG-K2E3",
                                        "D23C-5BXP-8H8D-I4I3",
                                        "186W-5686-10O3-2S6E",
                                        "KU2O-14Q7-1E6X-06EI",
                                        "0608-0A02-816V-8MMY",
                                        "WE68-CP05-QFJJ-Y63V",
                                        "W0V5-E4M2-668J-7R86",
                                        "BLK1-4GR7-PK64-TY53",
                                        "AW8P-16HJ-R47C-58V2",
                                        "6GE7-5332-1WP3-MBAQ",
                                        "MW6H-7I67-J060-ALU7",
                                        "5U5E-DH18-IS8D-61NG",
                                        "UT1C-7B7E-802V-00T6",
                                        "CQ14-CUD5-F1D4-Q5OV",
                                        "KNPP-F5A2-4527-8E8N",
                                        "2Q5Y-JE7O-4C35-VO1T",
                                        "5Q3W-1AVI-7T73-NI78",
                                        "6T37-S7B2-0XA4-WG0Q",
                                        "63OS-Q3TE-UN56-33OW",
                                        "E80Q-T7I6-DDJM-E558",
                                        "C543-4KG7-1GMY-J45S",
                                        "SFOX-0C3J-VNL6-0C1P",
                                        "SBV7-3MBC-6CPE-O615",
                                        "Q436-14C5-I216-C02F",
                                        "8B6X-TW41-451R-BJM0",
                                        "T12U-4KR1-318B-DCP0",
                                        "8U6G-E0HQ-8333-XF70",
                                        "71F3-4254-72Q3-W1S7",
                                        "ACNI-JTAQ-KT53-JJ12",
                                        "8Y06-20I3-6ARW-2AF7",
                                        "L1SS-8422-L228-86MI",
                                        "7KND-6I2B-7AHV-576G",
                                        "1UN4-JNI3-IQ87-0MV5",
                                        "836F-C713-TMGV-AUXG",
                                        "5SIA-UBFC-1U25-786I",
                                        "F6J5-40R1-1XEL-6551",
                                        "5JJD-U0LC-8H8N-4M4J",
                                        "1N0H-GD27-O7EI-4B3T",
                                        "0VU8-G584-0E57-A3PK",
                                        "0GD0-324K-13OO-3F1D",
                                        "X03G-3225-2H7K-3U33",
                                        "T6SG-G8M2-6AYF-M1K6",
                                        "YBXW-VCCI-3Y2J-0C48",
                                        "VN77-6R0T-WW2Q-KHO5",
                                        "1028-N4EP-H442-3JVF",
                                        "1M8U-JJ18-307R-J8D3",
                                        "1N64-6AAI-05R3-NUV7",
                                        "65H6-2103-KL7N-0APU",
                                        "KA85-RR7Q-2M68-N355",
                                        "4JBX-0OW6-8D6T-2057",
                                        "8S57-16H3-Q2C5-6PA2",
                                        "HDDY-85WC-88B4-3667",
                                        "K30F-JE8Y-54XF-7XEH",
                                        "3B30-H301-VJ2R-MXE8",
                                        "26J8-84B0-TY61-42IG",
                                        "PNXQ-NN0T-14P8-3XP0",
                                        "3A37-YNF7-WHFQ-1N77",
                                        "01Q3-KT53-15A3-C65B",
                                        "6JD6-603A-JW4U-Q6I7",
                                        "DHPG-L236-KD82-RS00",
                                        "7YI4-YRSY-HP8R-6J88",
                                        "KP14-7ACA-2F57-42X2",
                                        "1D76-W583-GR27-0H4W",
                                        "P1Q2-V1G5-VF0G-10EQ",
                                        "N66R-VY82-DS5Q-BQ63",
                                        "616G-0YJ8-0A1R-82QQ",
                                        "01EC-JM5V-1A3B-OS7V",
                                        "T1KS-DQ80-E4TG-77QB",
                                        "675E-GAUV-BK41-1JF6",
                                        "63LA-6J30-2WC4-3M56",
                                        "46R5-QTYF-3GUY-YHBP",
                                        "6072-NVL1-QIY2-W4SF",
                                        "6B35-1B33-83AF-7N5G",
                                        "1FW3-Q6YL-4451-ND34",
                                        "860D-34PT-43P3-6ICB",
                                        "5255-WBR8-300V-255A",
                                        "BP8I-4NOU-T888-P1E5",
                                        "BYPD-AF34-73Y2-80ST",
                                        "31CA-1446-U50Y-TF22",
                                        "7OY8-U6KM-T106-062D",
                                        "JC7J-MQ4C-6SY7-K6RS",
                                        "XU70-51QG-E74S-VQTR",
                                        "VWLB-LQ64-Q175-T8RP",
                                        "P840-C8OG-0DU6-HS3I",
                                        "VOSS-8MMD-5XAV-767E",
                                        "6X8R-3J10-3200-GVWC",
                                        "3R4P-T270-L7E3-11G4",
                                        "35LR-JON7-818N-7W86",
                                        "K4LE-4I78-F7PB-K382",
                                        "2KIM-S101-DL04-6762",
                                        "3526-02MM-AMCY-73M1",
                                        "K4L0-X453-84C2-CYLD",
                                        "7763-EA0P-0758-TWE5",
                                        "F1KC-1DDE-40S2-4O8C",
                                        "04J1-Y5V5-WN82-W0JG",
                                        "W3SY-YS5J-82HL-VL3T",
                                        "1V85-JR63-85CU-O5YK",
                                        "81K8-7L38-752N-TGT0",
                                        "BFW4-44O7-84D8-137Q",
                                        "135A-Y251-7IN8-2JWO",
                                        "L5GT-8B57-AT7U-YS85",
                                        "BSGB-3NPW-N3X7-BE0V",
                                        "2052-4F7I-VP14-5633",
                                        "INWT-13U7-BEL3-T6V1",
                                        "45LL-B0M5-8MVQ-2ODM",
                                        "G1K8-0SMG-52OI-5326",
                                        "V0WE-8JE1-0LQQ-B32U",
                                        "GC63-D4F2-HK17-1040",
                                        "P6LR-85EA-L8DR-3Y65",
                                        "3A5P-G5J0-8I0C-3RB3",
                                        "6NF3-5RVG-6TXM-O773",
                                        "KPNI-3P77-4LG7-17K3",
                                        "257S-8U2C-M8A7-3HFX",
                                        "A4DO-2HUX-022C-K2WF",
                                        "71TT-56AW-1IA3-R776",
                                        "JM87-7B3K-O02W-E71J",
                                        "1C67-Q8VG-3E82-5N1E",
                                        "8QPX-HJQ5-3N2H-8Y6C",
                                        "5DWN-RW81-3H0N-7IY2",
                                        "06E3-1W4U-WP80-7R3L",
                                        "73J8-7034-5PY0-2R2L",
                                        "LYXG-M137-OX6P-SO8Y",
                                        "X2K2-6TJ5-0S20-54CN",
                                        "236O-62YM-32S3-3BP5",
                                        "J8P3-41IY-8SAB-SGER",
                                        "6CBF-V688-Q2AC-JPIV",
                                        "0YB8-6QK7-3J8G-XOG4",
                                        "X6WQ-8P3H-5CG1-865O",
                                        "DM11-7J27-J0UP-1A2L",
                                        "41H7-P70T-4R2D-6875",
                                        "P180-7QE2-CP5F-L0GN",
                                        "5AQV-3P2U-1KA5-1A2A",
                                        "XN5S-J8R3-A1V6-0DUN",
                                        "8G6H-TCIY-87XE-H62Q",
                                        "2U4T-4210-R5SN-MGD1",
                                        "1732-7JMS-16W3-Q843",
                                        "83Q0-4D63-0Q54-1372",
                                        "JT13-MYD1-4UAG-HC76",
                                        "345S-FG1W-1380-D3X0",
                                        "32K4-3YMA-8UYK-4XCM",
                                        "AHH2-01J6-8337-I07A",
                                        "OF80-O573-401K-GV4U",
                                        "1YN6-E8TX-LS6J-5U18",
                                        "RUMT-IWO0-3IB4-BXO4",
                                        "3YG3-K586-6XQ2-O615",
                                        "M1MX-H7M1-3KJS-BJ5D",
                                        "L78U-MG4N-B6X6-855A",
                                        "H4SM-4264-6CHT-5UJ4",
                                        "4JX0-32DX-5CHX-YN21",
                                        "5UU6-36D7-W6M0-Y808",
                                        "2RJ5-AGF3-SAWQ-KT76",
                                        "1W1J-8B0W-BVE5-D3J4",
                                        "C3BR-2Y8X-S6KF-7727",
                                        "3R1A-D67X-87CG-MSU7",
                                        "380E-1641-6DD0-X2RW",
                                        "F3W5-S70E-0NQI-5LKM",
                                        "3NC8-6WU7-08Q1-17RQ",
                                        "MD0R-I46X-45T8-58Q0",
                                        "4YM6-26DY-8W3B-65P5",
                                        "W1BE-BBQ2-BE70-YIT8",
                                        "LG2K-LX27-X1ND-022P",
                                        "2O51-R5GW-IC27-VRP4",
                                        "18YO-100H-6WK2-W808",
                                        "PJQ3-BRAX-P5G2-BUY1",
                                        "6757-08S3-7JK5-5Y47",
                                        "14Q2-3C7F-P621-3H53",
                                        "24X0-J5Q8-6S28-X616",
                                        "UNJ2-88V8-058U-F7AQ",
                                        "5I10-J7D2-P14R-1XXO",
                                        "XPUK-73ON-AH77-Y713",
                                        "U6UA-T7Q3-LQ44-3ELP",
                                        "2SVM-P444-7513-P20X",
                                        "TK3Q-5M3S-NQ4K-G60P",
                                        "Q324-2CY2-5WG7-PVN0",
                                        "FXUW-N271-532A-7U1F",
                                        "MVID-UGJP-VH1L-06GJ",
                                        "7PT7-35C7-52N2-F4MY",
                                        "400G-5Q1H-0250-42XI",
                                        "7QWS-I385-285F-8UPY",
                                        "787G-R74J-284G-7OH7",
                                        "X527-JPSA-4T36-IN50",
                                        "85M0-2661-QVQ8-7CL0",
                                        "LD87-XLQI-07WL-5WJE",
                                        "04DX-4677-II5G-5N6K",
                                        "JBE3-124F-1U11-87OP",
                                        "7484-NR12-301E-QI31",
                                        "NUB1-XAS4-5475-1WA1",
                                        "PY8V-07PU-P5G6-E77P",
                                        "8HN2-01C5-8C5R-IABA",
                                        "5N8V-K780-3SP4-0J85",
                                        "UC8M-HIY7-7B01-DR10",
                                        "51EV-21FF-2Y1K-02R1",
                                        "27O3-5THE-78PJ-WAP0",
                                        "1J8D-V138-7717-V45P",
                                        "E4RQ-2R80-O83G-YWOL",
                                        "7P3I-67U2-EL25-B4WQ",
                                        "Y5L5-717S-10S6-A7K2",
                                        "1444-R420-S164-0P5T",
                                        "A10Y-7MN8-M08G-0545",
                                        "703P-1MX5-1V23-32D1",
                                        "770Y-OI7M-IWM8-KTNA",
                                        "54BX-I848-U7B5-3H2M",
                                        "UF47-BNYX-D3B1-0R8J",
                                        "HYG3-00W6-4360-254R",
                                        "5402-F150-UAJX-UM0C",
                                        "2271-07YR-W6XJ-1P7W",
                                        "EGPD-43U3-U806-I3R4",
                                        "H37C-KXR1-83NV-O02G",
                                        "U24E-1J67-07TI-NB37",
                                        "WME3-J78S-V735-W5SP",
                                        "E0XP-FQ62-2Y3B-G5U3",
                                        "8TI2-A6H6-H75K-TXOX",
                                        "P314-8471-7IIK-0245",
                                        "H7P5-WC74-TQKS-LUD5",
                                        "U6PE-W17O-8TB4-S533",
                                        "6781-83CI-I856-440C",
                                        "O038-P2FQ-JY25-1226",
                                        "5Q0A-VST8-828H-3J64",
                                        "S555-65IY-7XK0-FF67",
                                        "73K1-CWNE-88GY-2P8S",
                                        "M6G4-R83G-3MKT-37V0",
                                        "0AXN-XK00-UBM4-16M5",
                                        "6888-16NA-HU7K-NT5M",
                                        "S242-QIF1-A3J8-07Y7",
                                        "NW54-3R5B-K32K-X34E",
                                        "OI22-15J7-1O6M-X3FO",
                                        "4SY6-5H40-3RGD-GIM5",
                                        "4TNW-30YV-U4CX-M7FU",
                                        "324F-1JMD-AJ72-8733",
                                        "16LT-6368-1K00-PWAI",
                                        "POXP-2PS4-VJYF-1E74",
                                        "IQGN-131A-05GY-Y1C2",
                                        "83R7-I884-47HV-6T5J",
                                        "HGMT-317V-PN8T-YN4G",
                                        "DS86-12DG-5M42-C8NL",
                                        "4O1D-B7A7-DQAT-DX0S",
                                        "1520-7K44-XPO5-73A1",
                                        "S61H-DDW5-VPQ5-40WN",
                                        "I54W-47G5-01H3-5Q8U",
                                        "D7I2-6O5Y-ILJ1-VI3Y",
                                        "636O-Y86I-X62S-GQ15",
                                        "VEH7-13P0-7B55-0S5K",
                                        "1AC0-21Y6-U668-J558",
                                        "H5ON-71W6-EP35-TN12",
                                        "8L3S-I7K2-RD6P-0577",
                                        "33GX-3Y7F-JBP8-4HQ4",
                                        "CAOM-570M-HX87-4C6W",
                                        "5EHM-DK5P-55F1-S3B2",
                                        "L273-80BY-8WN6-DOB3",
                                        "0NA1-PW33-LH11-M563",
                                        "N2E8-K8U3-31TC-FPXO",
                                        "5824-FS4F-K2YL-4S75",
                                        "575I-6L4R-KS68-QY50",
                                        "6W45-1N0U-2H1P-FLYH",
                                        "63F6-CL6B-60M6-3S1Y",
                                        "4E81-LL2F-5X3L-0B0S",
                                        "M51L-15B2-285H-87SI",
                                        "OB5I-1F84-W4AB-0764",
                                        "53K2-4243-BXEP-5XV6",
                                        "T63T-S4X8-HPB7-ROJ7",
                                        "YSWN-CSWS-2RI1-45L2",
                                        "6D3Y-OP11-7L3B-03RE",
                                        "1A6N-R818-MIG0-MFA6",
                                        "515H-2B34-T23R-PJL2",
                                        "2TI0-4272-BP2A-001J",
                                        "6384-0C50-512M-85O3",
                                        "C1Q5-837Q-6570-2P48",
                                        "7OT4-3648-856L-T50W",
                                        "E040-6X3J-NH5W-718L",
                                        "NXPR-LJU1-BY87-17W3",
                                        "7E31-1R8E-I4XB-87O5",
                                        "PV4W-638L-C5W7-1MJX",
                                        "3UT8-80P6-8H45-0QN7",
                                        "5E3P-0HQ0-V737-006B",
                                        "02XL-2ENE-E6S4-3MT3",
                                        "556N-0X1O-1JPC-X7JG",
                                        "8700-W60H-1PJS-6231",
                                        "23IV-S013-4D6J-14RQ",
                                        "GHD1-4R24-C34F-F238",
                                        "7HI4-C6HP-F638-6UD4",
                                        "I8X1-V56C-I521-Y00K",
                                        "4T35-3L0T-00W5-0155",
                                        "NHX6-W0X8-2658-10BP",
                                        "F3B8-70BE-87BN-087F",
                                        "XO32-DEP8-V765-5CIQ",
                                        "3C47-6Q4A-I666-1B7A",
                                        "I55N-3HS0-TAD5-J7HB",
                                        "T1G2-X300-X8KS-7522",
                                        "8348-2134-0VWD-4IBG",
                                        "4842-PU01-077V-6D41",
                                        "60MO-880N-1704-NT8N",
                                        "0466-5FSM-PC51-RAE4",
                                        "AUHG-7TRH-L561-T5K8",
                                        "EDN5-W1CU-T4W5-G123",
                                        "U015-27UC-1N1U-0O78",
                                        "HOM5-U685-V05Y-R0YU",
                                        "3WQ3-YGTR-7BOR-16FN",
                                        "DRM1-Y3L8-DLDF-TWHU",
                                        "K4YS-3SML-688E-5T81",
                                        "LUUR-26KE-GH2T-DHST",
                                        "C1V3-5L37-04BS-EHI8",
                                        "18DB-16QP-XD73-8C0M",
                                        "C2X0-PXSD-TIOG-Y4KW",
                                        "Y5JO-2740-HTGM-4BF6",
                                        "B080-1034-6Q84-ED6T",
                                        "WN48-X442-MWUX-WH11",
                                        "7603-5D8N-0Y12-1K8O",
                                        "IGXX-6RM2-5532-7LIM",
                                        "J516-23M0-1IR0-KTFN",
                                        "ALST-U28D-11XU-D0FC",
                                        "T78B-146X-2EG5-4514",
                                        "E871-J45M-RRUP-6S30",
                                        "AU0K-1Y24-AY15-3FS1",
                                        "338C-773T-6Q5W-D5GM",
                                        "7C6F-56G0-VT5O-L057",
                                        "3Y2X-3T74-Q2S1-NC27",
                                        "W6WD-41P3-122O-7426",
                                        "Q57C-08BW-EX58-BY02",
                                        "8J10-2508-P522-35VI",
                                        "VWVE-750O-T47J-5SMD",
                                        "4VV8-NJA1-XI0A-331R",
                                        "82QK-L1X2-4O41-0FDG",
                                        "LRR8-L507-8M43-T400",
                                        "8F5B-CPGI-RI63-36O7",
                                        "R4E2-AOX0-701U-6SO2",
                                        "0TM3-2378-X7A2-85Y3",
                                        "5MGC-3TIR-I4M1-P1B3",
                                        "3410-82QT-7866-0PQQ",
                                        "BL0J-V7N8-53SF-F5TC",
                                        "855R-P4K2-M151-J557",
                                        "N6Y8-5513-8GSL-V703",
                                        "04M8-LH7D-5AQI-IH87",
                                        "033K-7217-XJK4-50QP",
                                        "QO6Y-8S5K-AG6N-71TA",
                                        "BV20-0Y44-VGB0-KSW0",
                                        "658O-T01X-6VEU-12D6",
                                        "1F67-278F-8HUY-BY33",
                                        "MW63-XR2E-C482-WXU8",
                                        "UU14-P41Q-KY41-4F43",
                                        "M750-4L66-YKG8-P7SX",
                                        "6278-K453-DBWR-57R8",
                                        "I64Y-5TY0-5G1E-VW3M",
                                        "606Y-T83M-5G6J-26DP",
                                        "O4AR-X16O-7DO2-K828",
                                        "8LY1-047S-D033-TOQ1",
                                        "3122-2FF4-4Y67-D4RU",
                                        "5024-27Y1-2XO0-PQNH",
                                        "F535-WDDF-11N6-V37M",
                                        "21FC-QMIA-DJO2-3V0L",
                                        "1285-F100-7MU4-7Q6I",
                                        "4KEX-TMW7-E604-JI2G",
                                        "N757-F0C8-JT8L-516X",
                                        "CVL7-C28V-3884-5420",
                                        "1J0A-QDY7-3ET1-ABB8",
                                        "I27D-KLVW-JI8Y-N3BY",
                                        "T2Q2-CYW4-4P4P-3PT8",
                                        "08U7-7Q5V-KP7P-705G",
                                        "62F4-OX4I-WN10-A2VP",
                                        "5542-II72-MPY4-87JE",
                                        "6FG3-87C4-2476-10QD",
                                        "H428-6F10-L3DY-5A1C",
                                        "3EWY-O08B-8U11-0KM3",
                                        "K44X-JRY1-J02B-CC3U",
                                        "833F-P8Q3-SR6T-21AR",
                                        "3V36-8T1M-0667-522O",
                                        "8410-C28R-0KX8-2LB0",
                                        "857A-AJC8-GQ36-30O6",
                                        "V18B-137I-842Y-6OYP",
                                        "57LJ-3L0H-0QPC-Q42G",
                                        "4342-GC83-J5UU-AP8Y",
                                        "QI2C-T5X5-I6H3-2ELD",
                                        "HHY3-2GD4-RH88-4655",
                                        "3JQ7-424K-TQ77-63X5",
                                        "K35E-XK1O-07O6-P64J",
                                        "7O41-52M8-5L66-DIK0",
                                        "4163-1FGM-8Q13-6T2W",
                                        "HW33-6M7L-84M2-XK66",
                                        "XYUT-A508-I2Q6-RY34",
                                        "LP76-BH64-5717-EE3B",
                                        "226R-L2KD-LL44-G81A",
                                        "5030-6U2Y-S7S6-F4G7",
                                        "0DT2-TO6G-240W-2G7I",
                                        "C7E4-382H-3S4F-O562",
                                        "7XU1-WD3T-ANC3-5S65",
                                        "M32K-GL08-803L-V71I",
                                        "2CR2-4222-1J37-71O0",
                                        "KVA8-3721-5W67-00TW",
                                        "8U52-NN05-3II8-5537",
                                        "4G4T-XYS5-8G4Q-B366",
                                        "7LW1-8TD3-518J-V282",
                                        "RMC5-8IAD-1225-11S7",
                                        "385I-VNLD-3H5L-3Q02",
                                        "6E3N-A2BC-M230-8Y1G",
                                        "IPMG-JC2W-060N-2624",
                                        "4M27-2OVV-MA38-LKB5",
                                        "4U84-44M6-NN07-Y75S",
                                        "2OWE-87WW-NI4L-NV22",
                                        "UR04-V770-G43Q-56E5",
                                        "8MI6-87H2-6JMH-2326",
                                        "8037-8751-5L42-XW73",
                                        "7YSG-246U-M0BM-111I",
                                        "D100-3XN5-8048-C1QU",
                                        "O048-JJY0-472K-BN16",
                                        "CE2F-T23H-W13D-UI36",
                                        "S012-67R8-Y850-0ML1",
                                        "RP1Q-55W1-FHNS-1Q8U",
                                        "6H18-168S-6633-A7WO",
                                        "FAJ8-5C2F-87EE-10EH",
                                        "547G-84C8-4AO1-VR58",
                                        "0E26-7633-BIKM-I07C",
                                        "XL6Y-262B-5272-D0MM",
                                        "D11M-8X6P-4LGX-4FH8",
                                        "WK4S-R01B-M055-5Q70",
                                        "B0G3-PJ4O-A55O-V62L",
                                        "2HXI-82EB-TQMW-Q155",
                                        "3511-DK10-B8W5-3A8C",
                                        "8GIN-6T6J-4381-M406",
                                        "I517-B5CF-CM0F-05A7",
                                        "51V5-WQGF-HTV5-E76F",
                                        "V743-3W72-R24U-TMBT",
                                        "P1VP-F82J-473N-QLQU",
                                        "AS78-D3PF-2000-F1H2",
                                        "WY8G-LUA1-4BY7-IX7O",
                                        "64AI-52S1-6E71-W224",
                                        "ID2F-18MA-255S-OFCE",
                                        "8EE1-807F-TRDP-L5YT",
                                        "0PS0-GR48-5WN3-2R11",
                                        "AD47-530P-PWC5-U7T3",
                                        "VD6A-N6Q0-KFR5-40BJ",
                                        "HM6F-2475-TPAV-MX0K",
                                        "IS58-F62O-1GOU-I5N3",
                                        "71F3-10U0-FU0H-6825",
                                        "C862-4744-QK5T-81B1",
                                        "D24O-33GB-FY08-8O1H",
                                        "7D66-2YVR-60LU-1L0W",
                                        "357N-IX31-6R67-A64Y",
                                        "QS18-82T4-TP30-EG62",
                                        "5ED1-MK8O-VPOJ-W8NT",
                                        "SJR1-EKD1-VW87-B7HO",
                                        "S4VJ-PQ0V-861H-I336",
                                        "4J43-B560-G382-E1AM",
                                        "85SY-6N48-L3L5-7S86",
                                        "53B8-6G70-2KC6-J0M2",
                                        "SE4H-40LI-74RK-BK7X",
                                        "JSB0-00VI-3V1J-53W3",
                                        "X3O0-VMF5-KRQ4-76A4",
                                        "ES55-TJ67-G77D-44KD",
                                        "O08E-DA53-V773-U8U2",
                                        "67J0-174D-0J16-2PLY",
                                        "5VBX-60GU-3YE6-2543",
                                        "P440-368B-335G-62HJ",
                                        "V5TX-NAJ7-I4IY-0IMR",
                                        "U4N8-O0I5-3U03-X502",
                                        "BDG1-476F-52U6-62I4",
                                        "T733-OBWX-I2RK-82H2",
                                        "1TH7-PM00-JQ86-1G77",
                                        "NAE8-7U67-1W80-N3M3",
                                        "VDG1-W1GK-2J31-5OQ4",
                                        "WKX3-3013-234W-J2QX",
                                        "XB63-0D23-OG47-7084",
                                        "65X6-APU3-5387-0100",
                                        "KMV0-L1JK-5SJ8-P657",
                                        "W0Y3-85D0-JLQM-22WX",
                                        "10OJ-801Y-0536-46YJ",
                                        "L665-2V6Y-2HLQ-D252",
                                        "G10H-8DE8-3672-5K07",
                                        "0R6C-AY2G-1J7Q-G8MH",
                                        "11EL-3476-T058-UN28",
                                        "0W58-JOW5-HLS2-H21J",
                                        "210C-1RJV-16QW-28K6",
                                        "K50O-IC8H-6EL6-O688",
                                        "68HR-7IQW-JAX8-X4UY",
                                        "E55W-642V-4JTO-185A",
                                        "T4BH-1A8X-213G-6O60",
                                        "ES3J-3544-BK2X-27E8",
                                        "3LK0-NQ61-C4G4-0620",
                                        "7P4Q-A11D-6T0D-L7L1",
                                        "DSFF-YF58-1T05-MT4K",
                                        "XF35-1R41-02R1-2D4V",
                                        "4KX4-1KPR-XBV3-585O",
                                        "4613-8L20-5PCY-SV0C",
                                        "8G26-UH81-L037-HB14",
                                        "0KET-6188-RS4P-S7QN",
                                        "6243-75SJ-W78R-N014",
                                        "5U1Q-670P-52PU-7AB7",
                                        "02GA-W136-L153-3R5T",
                                        "A065-R36P-XRGY-IGKX",
                                        "77M8-7FN8-N4M7-5BY7",
                                        "357U-C676-36N1-15J6",
                                        "34YP-EXGA-CI3F-QO86",
                                        "AL60-GEWU-UPE4-G23N",
                                        "C8LL-PQ31-BH32-S476",
                                        "HB2A-2C37-41B7-MRND",
                                        "L74X-13K2-VD35-610E",
                                        "6Q74-WY5B-SFX5-67OX",
                                        "U2YJ-1574-15YX-SA15",
                                        "8578-X5TV-H4IV-1B38",
                                        "77J3-5C4L-KBY7-G153",
                                        "M716-L38B-IA75-47K7",
                                        "12KO-W5C5-4F8R-TPAG",
                                        "55WW-W18W-4A27-DX4J",
                                        "L0VE-E8L4-8GIC-2R45",
                                        "U4K7-2DJL-727X-NE74",
                                        "6217-0C3A-0556-8B0J",
                                        "080H-5A48-P43D-WYX8",
                                        "0P5L-458P-GK4J-7MYX",
                                        "811Y-2H08-G744-5GKF",
                                        "33Q0-YBP4-WBU2-J2LT",
                                        "21XJ-CLQ5-XJ3C-MNBO",
                                        "RJL6-T1YI-4MO5-L507",
                                        "3P1G-87FJ-R2C1-UVW5",
                                        "753U-GRY8-1HWW-128C",
                                        "Y710-D4B0-JP5F-DQ25",
                                        "O55W-74N4-755G-RU2H",
                                        "R0C2-3M2P-386U-02M7",
                                        "1R5M-7OHG-T2MH-5E25",
                                        "BOHJ-AR72-7P8J-8W4C",
                                        "SY5G-QKJ2-32V4-WX1L",
                                        "020V-6CN0-5QU1-J636",
                                        "17I5-RBN0-34YV-5616",
                                        "NIB5-58G4-X8W2-8602",
                                        "YO31-L6KW-M6C3-3011",
                                        "55CL-3FIC-22N0-B7IX",
                                        "3L03-VR65-U4KV-D304",
                                        "2R52-67LY-RW87-7EOV",
                                        "G63B-U1D8-66YA-O3S7",
                                        "L0AT-1G60-E41P-FT58",
                                        "FM22-HVG4-XCC4-56W7",
                                        "333F-BQ28-0OTY-L04U",
                                        "H0N3-82C2-7EQ7-MJ8U",
                                        "FT65-ER35-B54E-331N",
                                        "INM2-O7O0-2A03-E0LF",
                                        "C5NW-F2XQ-IXHY-BH30",
                                        "2208-033Y-H44S-312S",
                                        "LHD6-I8RS-K03Y-V851",
                                        "O477-OED4-2671-TYK3",
                                        "707H-WFQ4-FOT3-8H43",
                                        "4FBH-6D43-J052-XL6P",
                                        "BI03-OR0G-7O0X-8188",
                                        "0S6N-1D85-T228-4L7A",
                                        "MGU2-O5W3-57JQ-LE4M",
                                        "H845-HKVK-X86B-47G5",
                                        "8L5E-GL3P-785M-D83O",
                                        "XAX3-4DJ5-8I60-AGS2",
                                        "17D6-YU63-N7MR-0S2X",
                                        "3305-GV76-XF0T-B2RC",
                                        "J877-F20R-43D8-11O5",
                                        "4L8F-G4T3-M1LX-3M10",
                                        "ILIM-23Q1-1I32-B328",
                                        "U6HD-6P65-2A7P-XTX3",
                                        "JRR5-JM51-A1DL-WRW2",
                                        "OB43-FN33-SESI-YRY7",
                                        "E7B3-3058-J43H-YU01",
                                        "14F4-021E-N55F-M170",
                                        "ME41-4WX4-3L3R-A5RU",
                                        "TDUN-NP02-8225-NJVA",
                                        "U6AC-A418-64QT-3RY1",
                                        "6RJL-2S64-25HF-6LK2",
                                        "WPBW-7CA6-UT5F-O3F2",
                                        "4475-4014-CIGN-62R7",
                                        "CI26-3D3E-GGV2-L52N",
                                        "67W6-N563-418G-72R4",
                                        "8L7V-2N1N-D4S4-6V7T",
                                        "D5F6-68J2-576B-08J3",
                                        "306J-5G5T-1WBB-74K4",
                                        "8XX5-1E0Q-52L7-67NN",
                                        "08OC-XXE4-V1H1-4I3D",
                                        "JKMR-HF27-JR82-3L84",
                                        "R8M6-4WVM-VXHM-52SK",
                                        "5K87-7CIN-8J16-60U6",
                                        "477F-33Y0-RFDV-2D3T",
                                        "2M14-AHL8-YU1K-CM72",
                                        "08PS-I4G6-6HC5-OK58",
                                        "2UB4-5I86-PU4N-2OFJ",
                                        "PV3I-22HY-R54L-7CW6",
                                        "GDVP-Y5SS-Y5H4-W742",
                                        "427G-XX4U-8OAP-C286",
                                        "5600-FTYP-4L8N-0GMW",
                                        "31C6-AOPA-6BN0-F2XN",
                                        "80C8-AXOQ-22L6-DC48",
                                        "T38B-4754-Y078-I2Q6",
                                        "IML4-807R-V5UX-W6E3",
                                        "U0VT-CV8V-03I0-1W06",
                                        "GNS0-57UU-S8AO-SR2M",
                                        "42R6-8EB7-QE8L-GLL2",
                                        "AD04-7868-U27P-4QY1",
                                        "H064-GMPP-O13L-H053",
                                        "P0R8-L505-I054-3OY8",
                                        "3F6Q-4187-0Y08-VM20",
                                        "GL01-S427-BY24-Y325",
                                        "RU8D-M116-5500-3NVA",
                                        "EWTY-K1C0-7Q8O-T32X",
                                        "8HJ4-3GLI-6AD5-80Q7",
                                        "5437-556L-IQVS-8D88",
                                        "M0KX-2CRI-QBHR-28UI",
                                        "8XG5-143R-4FX2-OO78",
                                        "J26E-4S60-LT44-EVUS",
                                        "LF4H-20RV-48DQ-30PA",
                                        "8O5P-RKX5-2MQD-5F03",
                                        "5H0V-1622-83A4-0K57",
                                        "TL78-2RM2-0XOH-5AAT",
                                        "8UX5-3N62-0W8F-BXQ4",
                                        "B883-R5JM-1K48-S65W",
                                        "33T0-878K-XSVP-F05M",
                                        "5CE5-71RS-700W-XUG3",
                                        "1602-501I-60T1-PUCT",
                                        "3PP0-3Q6T-4855-W856",
                                        "3HU5-7A3B-7E87-AWV5",
                                        "0246-OV0R-X47F-1G3X",
                                        "75S7-VM2P-E6D0-AMRA",
                                        "5G70-132Y-T1TI-8S6X",
                                        "55A6-338J-754J-72V6",
                                        "65EQ-JVMW-JIQW-2SJD",
                                        "81H0-11BX-5J7H-F5U6",
                                        "1L15-B2NS-4B7R-NP4E",
                                        "B2LB-1BTE-211H-BH76",
                                        "78YX-D2UY-OTQ5-0K2N",
                                        "JU33-SJ72-5GGC-747N",
                                        "JGBH-KSCK-0TXC-S723",
                                        "063D-U772-XG28-2878",
                                        "0G23-UO73-GLR0-38AL",
                                        "BC0L-1P22-7C04-0T30",
                                        "N625-1T4T-0452-D5G1",
                                        "C11D-4JKQ-RWL4-3I11",
                                        "53E3-0DBV-M852-04C4",
                                        "7M3L-5ADQ-4I8A-DG28",
                                        "XIBI-7LQU-8L44-T5T7",
                                        "27J1-M57V-4760-7P4K",
                                        "R5B4-EEQN-4OP6-JT1Y",
                                        "GE4M-TY31-61U2-OLP8",
                                        "5TUU-H87S-SW7A-677Y",
                                        "HJ32-T4FS-E01U-6QT6",
                                        "2Y25-GN07-1PL7-62Q7",
                                        "1141-JCAO-1RL2-6V71",
                                        "7X7U-TY5O-U203-CEIC",
                                        "H231-B4QF-4YD1-G8E7",
                                        "072V-3BX7-4D8I-J2G7",
                                        "YAIM-O6T5-1DQ8-4C0H",
                                        "C3V4-A7F3-280J-8P6L",
                                        "MW6F-I3A0-0R0R-GA28",
                                        "61DS-4IB7-Q562-76N0",
                                        "I7GS-J68X-LH1W-A3DM",
                                        "3PR7-01J6-05PY-68JT",
                                        "Y2E8-7EJ5-N55S-7TPH",
                                        "Y648-83G7-AP51-E5Q2",
                                        "Y6SX-853H-XA24-11Y4",
                                        "G414-DCR2-W2N7-J05T",
                                        "66GK-QYHL-8YD8-WJLL",
                                        "Y53U-42CC-8U31-FK52",
                                        "QBK4-F4N1-I7X2-00C2",
                                        "Y726-1SU0-N2I2-DF26",
                                        "L502-5537-M47E-6S30",
                                        "63F8-XSMG-6860-YHD6",
                                        "R48C-7WU7-0821-CBK4",
                                        "0E4U-6H3E-WE33-XSQB",
                                        "6E5Y-15N8-1BL2-210S",
                                        "24RY-3782-3VTB-SFW5",
                                        "41JX-X476-ECW7-7K10",
                                        "T8D6-Y6BQ-45NF-23A6",
                                        "6I08-3AR8-T3C8-C214",
                                        "88V3-4JT0-J237-RLN6",
                                        "82O5-8D78-1JF2-YIS8",
                                        "338L-WPJE-O30W-38X5",
                                        "Q570-256C-0UNV-5X8T",
                                        "0T65-JW03-HBH2-HW1I",
                                        "I3I8-M3S6-F2Y7-PO00",
                                        "V407-08OX-R2JH-X4CF",
                                        "6C03-L5I4-32O6-47JM",
                                        "3FQF-8A6B-G0V2-828T",
                                        "518R-V45E-S63G-A87K",
                                        "ONTW-QGUG-0723-56EC",
                                        "NCBC-6VC8-0G63-7QLA",
                                        "R71K-U668-6J1O-43B0",
                                        "0N6F-K7N7-VP05-7C1E",
                                        "86DN-5E1K-7ADE-C3M4",
                                        "G18H-LLSF-RKY3-5IWI",
                                        "3472-XRDS-KHWN-E127",
                                        "6BQK-S1V7-1JEI-2810",
                                        "433O-1QRS-8052-6O5J",
                                        "F0P6-A8YH-GB1I-2N1U",
                                        "3446-BTQ0-KM2S-2WA7",
                                        "LQ03-M86B-34HL-02WU",
                                        "S21O-PXUB-51H7-BKE8",
                                        "1D6P-Y224-72N7-D2A0",
                                        "Q0HT-47R5-I655-J70S",
                                        "XS22-6QRL-NPT6-2T0R",
                                        "48V2-460F-T4Q3-M83K",
                                        "QEOV-75TE-K012-N6PR",
                                        "I4XS-1U7G-HI5G-611D",
                                        "83OX-P3G7-E3CL-6XU0",
                                        "KQLY-6RU1-X6I5-581D",
                                        "2UFI-0A6L-R7Y6-F0X2",
                                        "810K-40B4-LNN1-0B65",
                                        "M6J8-H041-U012-KOI2",
                                        "1JBT-TJ25-2A11-1PR2",
                                        "N8K8-38K2-3P3D-I4P8",
                                        "X4NV-RM88-RP12-X474",
                                        "K665-303Y-UY0V-1O1D",
                                        "7060-15OF-844K-2KJV",
                                        "DUA3-4A0Q-X86S-B15M",
                                        "R3D8-3612-K8QV-65N6",
                                        "N3L2-J48J-N2Q4-BTRJ",
                                        "OMGG-IP56-2210-273H",
                                        "7M26-57MC-E17B-04MW",
                                        "BBV7-EOW3-KNL4-MBH0",
                                        "VX14-VY2F-3YTC-0865",
                                        "56O3-S17Y-GP8Q-4SW3",
                                        "WO82-Y8DE-N3W0-Q536",
                                        "2HKH-111Y-871W-458P",
                                        "YPVE-MBI1-MXKT-5402",
                                        "6227-V488-DK00-6328",
                                        "Q55E-BJD5-B8Y3-2IYJ",
                                        "XT64-03B2-E2JF-5555",
                                        "6A8J-HYF6-P4T4-541I",
                                        "0452-2GYB-R5RP-4FON",
                                        "NOYW-U236-WR81-F40F",
                                        "0P10-FTKC-YIP1-I2S2",
                                        "04DC-8C8I-IJXS-KY22",
                                        "M667-MQ03-5WGQ-HU5Q",
                                        "8VL1-M3DG-6RS7-2T11",
                                        "4LU5-NU8C-AQ01-M1P2",
                                        "1154-0HJA-4XB6-A1T5",
                                        "3H15-8P87-0QEW-X607",
                                        "2X08-HB1X-8481-1K16",
                                        "3YWA-7RWL-W7KO-BM54",
                                        "SWX5-N48A-U8LI-GD5A",
                                        "IMNP-SJD5-0BGK-282L",
                                        "4R34-5O87-PH67-L0SE",
                                        "18G1-Y4O6-I4L4-K6WK",
                                        "2460-J63H-8DK1-R3BP",
                                        "86TR-HVM6-6Y4W-35JJ",
                                        "678W-M1QX-U60P-ADWC",
                                        "X603-25JB-T411-R40Q",
                                        "OEG7-5G3Q-DJU5-IIOF",
                                        "R10N-41CA-QVY5-F652",
                                        "BN6G-0Q5V-PN03-ORSD",
                                        "1K54-SY43-00TY-26B8",
                                        "2WEN-XI17-B7EE-N4M3",
                                        "WF12-MF77-A7S4-1N3O",
                                        "4200-6XM3-1588-43XK",
                                        "7D8F-3O8B-7807-1140",
                                        "I467-VEC4-B0Y5-6Y34",
                                        "LJA3-3AFO-6A0B-25P3",
                                        "4005-30US-PE6X-2G1I",
                                        "L1CF-J6M8-7P7O-5AGM",
                                        "M58A-16KN-654G-YWG2",
                                        "2V0I-A518-BYXD-6XB7",
                                        "11J7-Y168-GI43-47HR",
                                        "W0U4-MJ2M-32GS-D145",
                                        "0BU2-K12P-5024-UQXO",
                                        "Q6ED-VN7N-GOS0-1H3G",
                                        "27R7-S0HF-082C-3742",
                                        "5882-143B-45TC-EIA5",
                                        "2KOO-RVKQ-3026-MNT5",
                                        "Q3M6-W1HB-2100-6640",
                                        "8022-I7N8-WYWT-M617",
                                        "CSLU-H6K2-N8LA-QSPY",
                                        "V21R-CLBI-Q713-OCM7",
                                        "O2K8-S147-GN3X-52C6",
                                        "RQM6-W851-VXO2-2O3R",
                                        "7655-5ON4-32SG-SWG7",
                                        "3W32-IM0J-N536-3NP7",
                                        "2080-B51C-A7P4-K73X",
                                        "66R8-AS0T-ROY3-EE2Y",
                                        "VH5B-0463-D4MB-7TUT",
                                        "E546-T0NM-P76N-8JN8",
                                        "GC6M-G01D-X27J-2I5P",
                                        "DE2I-BN2D-GA0Q-14J3",
                                        "5O2W-06GH-15C6-O3G0",
                                        "8F66-7Q4Q-7ON4-43Q7",
                                        "000I-SRG4-XG07-K130",
                                        "2877-4N0L-MW13-RIBK",
                                        "L2D6-R25R-3B00-FUT2",
                                        "5373-B5GS-8560-1XA5",
                                        "7PHT-56A2-5UQ4-W81O",
                                        "43FQ-V146-I8L0-5Q7R",
                                        "47N3-OO2G-P8E6-OD0T",
                                        "2V6U-42U0-LR06-W780",
                                        "PF06-6R28-QA82-Y5OP",
                                        "GQ14-G4YQ-22I5-SOXI",
                                        "414R-FKB5-46SO-XNVK",
                                        "C3W7-UQ1L-1KL7-22A4",
                                        "72HG-7UAC-V13W-BM36",
                                        "3TXC-466S-Q461-2SOL",
                                        "3O8U-58J2-J603-16T2",
                                        "SSQM-GFOK-P6V4-C611",
                                        "V01V-FGOH-F3IG-Q4U7",
                                        "L4F6-BIHT-8JEE-S83B",
                                        "UHE7-0117-H3P7-S504",
                                        "HXKY-V3X3-Q1UA-6GTW",
                                        "N54Q-E8PB-NA1F-1X64",
                                        "4M05-E2HN-1XW7-J632",
                                        "4687-2OA3-Q54E-472Q",
                                        "4RH5-0422-161K-8T4O",
                                        "GUQ3-6U6F-S4H8-J747",
                                        "88T8-CKNS-6WL7-O61P",
                                        "JM08-6W2E-612E-4HJ5",
                                        "O04L-UIC5-D558-R36J",
                                        "BI3H-0DOF-GCYI-7EP3",
                                        "K4AU-8573-KEC7-731P",
                                        "OS37-RGGC-Y10A-P8BM",
                                        "55DC-S267-C7D0-6C17",
                                        "3030-8PUS-P242-446P",
                                        "DOC0-7PL8-1W7B-1I5I",
                                        "01DV-421W-G6YJ-JI16",
                                        "QFPL-RQW2-XH08-HAT7",
                                        "ONCV-MV6V-7JD8-O8VK",
                                        "1VSO-R443-7N88-V7ME",
                                        "W62G-3226-N4W7-BT2C",
                                        "4JU0-1Q31-QGO2-WV20",
                                        "IQ88-E65N-O037-1T1R",
                                        "DP21-580D-66W4-7XH8",
                                        "608I-T34J-D6M8-868N",
                                        "72T4-TBJ2-UU7I-710N",
                                        "12A4-03KY-N567-X1H1",
                                        "66QC-G707-0L01-ABM0",
                                        "EW2F-KMO7-JV67-JLR3",
                                        "FK17-88VL-8RE7-K3A2",
                                        "3735-8IJR-0QL2-RB0V",
                                        "C58M-81F4-5466-J1WH",
                                        "52OD-0LM7-3456-E88K",
                                        "XDRX-C06W-H554-AJB7",
                                        "X87Y-22E6-334S-DJJC",
                                        "6324-L7O0-4TD0-45L0",
                                        "E4T7-NV0C-5R8W-54UV",
                                        "40V5-MGP5-0ACN-3W34",
                                        "E0XT-K05G-QFCL-513M",
                                        "RAX7-2X6O-727K-H86E",
                                        "51EN-3B77-RA8O-G4KA",
                                        "711F-708G-VQV6-8065",
                                        "41N2-CSAL-F354-1DMG",
                                        "EKA5-5220-0G1G-AS10",
                                        "N54Y-38V5-7AF5-0MUO",
                                        "4H7N-O34M-BLQI-7140",
                                        "0E2O-X27F-71PE-4B4G",
                                        "JQ12-443S-JBHF-1T8A",
                                        "B747-30BA-QC5R-4S7N",
                                        "1E66-QW6P-D7CC-O256",
                                        "B358-50V7-5MF1-BWDS",
                                        "H870-L53C-PHS8-0003",
                                        "6A41-C0RY-461F-MX6Y",
                                        "5RTH-4K56-0XL2-R6K6",
                                        "8Q83-3UO1-AIX2-2XXO",
                                        "2325-CLL6-FKNJ-U776",
                                        "AA2C-W6GI-53QM-W8OO",
                                        "0H5X-ATR3-I3KW-B7OJ",
                                        "64C4-N330-Y0L3-2U3O",
                                        "WAJT-Y327-303M-W75P",
                                        "53D0-21KC-80F6-2C21",
                                        "3307-8FX7-4SD0-17FX",
                                        "C4PX-VM27-8AG0-3T8B",
                                        "S10S-2365-D338-CX3J",
                                        "4EEB-64SD-WQIM-RJXI",
                                        "0R3B-0Q66-7281-4C0N"
                                      ]
                                    };
                                    
                                    ? 1 Reply Last reply Reply Quote 0
                                    • ?
                                      A Former User @Sawer
                                      last edited by A Former User

                                      @nesta99 said in Simple copy protection done right :):

                                      @yall So If I got it Right, should I rename "RegistrationInfo.js" into something else?

                                      Well yes, since you renamed it into KeyReg.js in the script! But this file should get created automatically!

                                      (Are you on my macOS?? Thinking about files and folder access restrictions, admin authorization in Catalina and stuff. I remember a case with Digital Performer by MOTU, where I couldn't save presets because of something like this...)

                                      1 Reply Last reply Reply Quote 0
                                      • ?
                                        A Former User @Christoph Hart
                                        last edited by

                                        This post is deleted!
                                        1 Reply Last reply Reply Quote 0
                                        • ?
                                          A Former User @Sawer
                                          last edited by

                                          @nesta99 I think apart from you changing names of variables and scripts, it looks about the same as the original. I personally find the renaming a bit confusing and in general leave it as is, until I really understand what goes into what and where and why... 🤪

                                          I'd put the three namespaces in 3 separate js-files and include them onInit. Serials.js, Authorisation.js, and while needed the Serial Generator.js...

                                          That being said, you probably want to declare the serial variable (containing all the serial numbers) before the authorization script!

                                          When you enter one of the serials of your serials list, and the registration is successful, the RegistrationInfo.js gets created automatically in your project folder. In your case, that should be KeyReg.js!

                                          Let me know how it goes.

                                          1 Reply Last reply Reply Quote 0
                                          • ?
                                            A Former User @orange
                                            last edited by

                                            @orange said in Simple copy protection done right :):

                                            @staiff in
                                            Use the latest (updated today) HISE version.
                                            Use Authorisation.js code with Content.makeFrontInterface like below. Also don't forget to include("Serials.js") to make the function check. All of the UI elements will be activated. I tried and compiled a plugin, it works likea charm. It creates "RegistrationInfo.js" in User presets main folder. Interface code example is this;

                                            Content.makeFrontInterface(600, 500);
                                            
                                            
                                            include("Serials.js");
                                            
                                            
                                            
                                            namespace Authorisation
                                            {
                                                const var SerialInput = Content.getComponent("SerialInput");
                                                const var Description = Content.getComponent("Description");
                                                const var SerialStateLabel = Content.getComponent("SerialStateLabel");
                                                const var AuthorisationDialogue = Content.getComponent("AuthorisationDialogue");
                                                const var GlobalMute = Synth.getMidiProcessor("GlobalMute");
                                                
                                                /** Checks if the serial input is valid and stores the result if successful. */
                                                inline function onSubmitButtonControl(component, value)
                                                {
                                                    if(!value) // Just execute once
                                                        return;
                                                
                                                    local v = SerialInput.getValue();
                                                    Console.print(v);
                                            	
                                                    // Checks if it's in the input
                                                    if(serials.Data.contains(v))
                                                    {
                                                        Console.print("Serial number found");
                                                    
                                                        local data = 
                                                        {
                                                            "Serial": v
                                                        };
                                                    
                                                        // Stores the file to the hard drive. In HISE it will be the project folder
                                                        // but in the compiled plugin it will use the parent directory to the 
                                                        // user preset directory (which is usually the app data folder).
                                                        Engine.dumpAsJSON(data, "../RegistrationInfo.js");
                                                        
                                                        setValidLicense(true);
                                                    }
                                                    else
                                                    {
                                                        Console.print("Invalid serial number");
                                                        Description.set("text", "Invalid serial number. The number you supplied does not match");
                                                        
                                                        setValidLicense(false);
                                                    }
                                                };
                                            
                                                Content.getComponent("SubmitButton").setControlCallback(onSubmitButtonControl);
                                            
                                            
                                                inline function setValidLicense(isValid)
                                                {
                                                    // Do whatever you want to do here. I suggest a MIDI muter...
                                                    GlobalMute.setAttribute(0, 1 - isValid);
                                                
                                                    if(isValid)
                                                    {
                                                        // Change this to any other visual indication...
                                                        SerialStateLabel.set("bgColour", Colours.greenyellow);
                                                        AuthorisationDialogue.set("visible", false);
                                                    }
                                                    else
                                                    {
                                                        SerialStateLabel.set("bgColour", Colours.red);
                                                        AuthorisationDialogue.set("visible", true);
                                                    }
                                                }
                                            
                                                inline function checkOnLoad()
                                                {
                                                    // Clear the input
                                                    SerialInput.set("text", "");
                                                    
                                                    // Load the serial from the stored file
                                                    local pData = Engine.loadFromJSON("../RegistrationInfo.js");
                                                    Console.print("Checking serial");
                                                
                                                    if(pData)    
                                                    {
                                                        local v = pData.Serial;
                                                        Console.print("Restored serial: " + v);
                                                    
                                                        if(serials.Data.contains(v))
                                                        {
                                                            setValidLicense(true);
                                                            return;
                                                        }
                                                    }
                                                
                                                    setValidLicense(false);
                                                }
                                            
                                                // Call this on startup
                                                checkOnLoad();
                                            
                                            }
                                            

                                            @nesta99

                                            1 Reply Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            13

                                            Online

                                            1.7k

                                            Users

                                            11.8k

                                            Topics

                                            102.6k

                                            Posts